POST/ad_campaign/{campaign_id}/bulk_create_ads_by_listing_id
This method adds multiple listings to an existing Promoted Listings campaign using listingId values generated by the Trading API or Inventory API, or using values generated by an ad group ID.
For general strategy campaigns using the Cost Per Sale (CPS) funding model, bulk ads may be directly created for the listing.
For each listing ID specified in the request, this method:
- Creates an ad for the listing.
- Sets the bid percentage (also known as the ad rate) for the ad.
- Associates the ad with the specified campaign.
To create an ad for a listing, specify its listingId, plus the bidPercentage for the ad in the payload of the request. Specify the campaign to associate the ads with using the campaign_id path parameter. Listing IDs are generated by eBay when a seller creates listings with the Trading API.
You can specify a maximum of 500 listings per call and each campaign can have ads for a maximum of 50,000 items. Be aware when using this call that each variation in a multiple-variation listing creates an individual ad.
For manual targeting priority strategy campaigns using the Cost Per Click (CPC) funding model, an ad group must be created first. If no ad group has been created for the campaign, ads cannot be created.
Note: Ad groups are not required when adding listings to a smart targeting campaign.
For the ad group specified in the request, this method associates the ad with the specified ad group.
To create an ad for an ad group, specify the name of the ad group plus the defaultBid for the ad in the payload of the request. Specify the campaign to associate the ads with using the campaign_id path parameter. Ad groups are generated using the createAdGroup method.
You can specify one or more ad groups per campaign.
Use createCampaign to create a new campaign and use getCampaigns to get a list of existing campaigns.
Input
Resource URI
This method is supported in Sandbox environment. To access the endpoint, just replace the api.ebay.com
root URI with api.sandbox.ebay.com
URI parameters
Parameter | Type | Description |
---|---|---|
campaign_id | string | This path parameter specifies the unique eBay-assigned identifier of the ad campaign for which to associated the ads being created. Use the getCampaigns method to retrieve campaign IDs. Occurrence: Required |
HTTP request headers
All requests made to eBay REST operations require you to provide the Authorization
HTTP header for authentication authorization.
The table below shows additional HTTP request headers that are either required, conditionally required, or strongly recommended for this method. Other standard HTTP request headers- opens rest request components page (not in this table) can also be used, but they are optional.
Header | Type | Description |
---|---|---|
Content-Type | string | This header indicates the format of the request body provided by the client. Its value should be set to application/json. For more information, refer to HTTP request headers. Occurrence: Required |
OAuth scope
This request requires an access token created with the authorization code grant flow, using one or more scopes from the following list (please check your Application Keys page for a list of OAuth scopes available to your application):
https://api.ebay.com/oauth/api_scope/sell.marketing
See OAuth access tokens for more information.
Request payload
Copy complete valid JSON to clipboardRequest fields
Input container/field | Type | Description |
---|---|---|
requests | array of CreateAdRequest | An array of listing IDs and their associated bid percentages, which the request uses to create ads in bulk. This request accepts both listing IDs, as generated by the Inventory API, and an item IDs, as used in the eBay Traditional API set (e.g., the Trading and Finding APIs). Occurrence: Required |
requests.adGroupId | string | A unique eBay-assigned identifier for an ad group in a campaign that uses the Cost Per Click (CPC) funding model. Occurrence: Conditional |
requests.bidPercentage | string | The user-defined bid percentage (also known as the ad rate) sets the level that eBay increases the visibility in search results for the associated listing. The higher the bidPercentage value, the more eBay promotes the listing.
If a bid percentage is not provided for an ad, eBay uses the default bid percentage of the associated campaign. Note: This field has a minimum value of 2.0 and a maximum value of 100.0 . Occurrence: Conditional |
requests.listingId | string | A unique identifier of an eBay listing. Occurrence: Required |
Output
HTTP response headers
This call has no response headers.
Response payload
Response fields
Output container/field | Type | Description |
---|---|---|
responses | array of AdResponse | This array displays the list of ads that were successfully created. For any ads that were not created successfully, the errors array may provide more detail about why creation of one or more ads failed. Occurrence: Always |
responses.adGroupId | string | A unique eBay-assigned ID for an ad group in a priority strategy campaign that uses the Cost Per Click (CPC) funding model.Note: This field will always be returned for campaigns that use the CPC funding model. It will not be returned for campaigns that use the Cost Per Sale (CPS) funding model. Occurrence: Conditional |
responses.adId | string | A unique eBay-assigned ID for an ad. This ID is generated when an ad is created.Note:This field is only returned when an ad is successfully created for the corresponding listing. Occurrence: Conditional |
responses.errors | array of ErrorDetailV3 | An array of errors associated with the request. Occurrence: Conditional |
responses.errors.category | string | The category type for this error or warning. It takes an ErrorCategory object which can have one of three values:
Occurrence: Conditional |
responses.errors.domain | string | Name of the domain containing the service or application. Occurrence: Conditional |
responses.errors.errorId | integer | A positive integer that uniquely identifies the specific error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms. Occurrence: Conditional |
responses.errors.inputRefIds | array of string | Identifies specific request elements associated with the error, if any. inputRefId's response is format specific. For JSON, use JSONPath notation. Occurrence: Conditional |
responses.errors.longMessage | string | An expanded version of message that should be around 100-200 characters long, but is not required to be such. Occurrence: Conditional |
responses.errors.message | string | An end user and app developer friendly device agnostic message. It explains what the error or warning is, and how to fix it (in a general sense). Its value is at most 50 characters long. If applicable, the value is localized in the end user's requested locale. Occurrence: Conditional |
responses.errors.outputRefIds | array of string | Identifies specific response elements associated with the error, if any. Path format is the same as Occurrence: Conditional |
responses.errors.parameters | array of ErrorParameterV3 | This optional complex field type contains a list of one or more context-specific Occurrence: Conditional |
responses.errors.parameters.name | string | Name of the entity that threw the error. Occurrence: Conditional |
responses.errors.parameters.value | string | A description of the error. Occurrence: Conditional |
responses.errors.subdomain | string | Name of the domain's subsystem or subdivision. For example, checkout is a subdomain in the buying domain. Occurrence: Conditional |
responses.href | string | The getAd URI that points to the ad.Note:This field is only returned when an ad is successfully created for the corresponding listing. Occurrence: Conditional |
responses.listingId | string | A unique eBay-assigned ID for a listing that is generated when the listing is created. Occurrence: Always |
responses.statusCode | integer | An HTTP status code indicating if the corresponding ad was successfully created or not. Occurrence: Always |
HTTP status codes
This call can return one of the following HTTP status codes. For an overview of the status codes, see HTTP status codes in Using eBay RESTful APIs.
Status | Meaning |
---|---|
200 | Success |
207 | Multi Status |
400 | Bad Request |
404 | Not Found |
409 | Business error |
500 | Internal Server error |
Error codes
For more on errors, plus the codes of other common errors, see Handling errors.
Code | Domain | Category | Meaning |
---|---|---|---|
35001 | API_MARKETING | APPLICATION | There was a problem with an eBay internal system or process. Contact eBay Developer Technical Support for assistance. |
35002 | API_MARKETING | APPLICATION | Internal error. Please wait a few minutes and try the call again. |
35007 | API_MARKETING | REQUEST | The 'bidPercentage' {bidPercentage} is not valid. The bid percentage should be a single precision value. Minimum value: {minBidPercent} , Maximum value:{maxBidPercent}. |
35010 | API_MARKETING | REQUEST | The bidPercentage should not be provided when selected adRateStrategy is DYNAMIC for the campaign. |
35010 | API_MARKETING | REQUEST | The bidPercentage should not be provided when selected adRateStrategy is DYNAMIC for the campaign. |
35013 | API_MARKETING | REQUEST | The listing ID {listingId} is not valid. |
35014 | API_MARKETING | REQUEST | The listing Id is required for this call. |
35018 | API_MARKETING | REQUEST | There are duplicate listing IDs or inventoryReference IDs in this request. You must remove the duplicate. |
35033 | API_MARKETING | REQUEST | At least one request is required for bulk requests. |
35035 | API_MARKETING | REQUEST | The campaign with campaign id {campaign_id} has ended. |
35036 | API_MARKETING | REQUEST | An ad for listing ID {listingId} already exists. |
35045 | API_MARKETING | REQUEST | No campaign found for campaign id {campaign_id}. |
35048 | API_MARKETING | REQUEST | The listing ID {listingId} is invalid or has ended. |
35052 | API_MARKETING | BUSINESS | The category {categoryId} is not supported by the Promoted Listing service for multi-quantity listings. |
35054 | API_MARKETING | BUSINESS | The listing ID {listingId} was created on a different marketplace than the campaign. The listing and campaign must reside on the same marketplace. |
35057 | API_MARKETING | BUSINESS | The listing ID {listingId} does not belong to the seller making this call. |
35058 | API_MARKETING | BUSINESS | The listing ID {listingId} is not a fixed price item. This is a requirement for a promoted listing. |
35059 | API_MARKETING | BUSINESS | The listing ID {listingId} is not a multi-quantity item. This is a requirement for a promoted listing. |
35061 | API_MARKETING | BUSINESS | The campaign with 'campaign_id' {campaign_id} is being synced to match the specifications of the campaign. Please wait a few minutes and try the call again. |
35063 | API_MARKETING | BUSINESS | The campaign with 'campaign_id' {campaign_id} is ending soon. No update operations are allowed on this campaign until it ends. |
35064 | API_MARKETING | BUSINESS | This operation is only supported for key based campaigns. |
35068 | API_MARKETING | BUSINESS | You have exceeded the maximum number of listing Ids. Only {maxSupportedNumber} listings are supported per call. |
35071 | API_MARKETING | BUSINESS | You have exceeded the maximum number of listing IDs or inventory reference IDs. Only {maxSupportedNumber} IDs are supported per call. |
35075 | API_MARKETING | BUSINESS | The category {categoryId} is not supported by the Promoted Listing service for single-quantity listings. |
35077 | API_MARKETING | BUSINESS | To use Promoted Listings, you need to improve your seller level to Top Rated or Above Standard and have enough recent sales activity. |
35078 | API_MARKETING | BUSINESS | To gain access to Promoted Listings, you must be in good standing with recent sales activity. |
35080 | API_MARKETING | REQUEST | The 'bidPercentage' is not supported for CPC funding model. |
35089 | API_MARKETING | BUSINESS | We are currently testing a premium ads product with a small invite-only group. We will share more information when we are ready to expand. |
36106 | API_MARKETING | REQUEST | The 'adGroupId' is not supported for CPS funding model. |
36108 | API_MARKETING | REQUEST | The 'adGroupId' is required for CPC funding model. |
36152 | API_MARKETING | BUSINESS | The 'bidPercentage' is not supported for CPC funding model. |
36210 | API_MARKETING | REQUEST | No ad group found for ad group id {ad_group_id}. |
36221 | API_MARKETING | BUSINESS | You have exceeded the maximum number of ads supported in a ad group with this request. Only {maxItemsLimit} ads are allowed per ad group. |
36412 | API_MARKETING | REQUEST | Campaigns where the 'campaignTargetingType' is 'SMART' do not support ad groups. Please remove the {adGroupFieldName} and try again. |
Warnings
This call has no warnings.
Samples
New to making API calls? Please see Making a Call.
Note: Identifiers, such as order IDs or user IDs, and personal data in these samples might be anonymized or may no longer be active on eBay. If necessary, substitute current, relevant eBay data in your requests.
Sample 1: Create Ad in Bulk by Listing ID
This sample creates two ads with the bid percentage of 10, and adds them to the specified campaign.
Input
The inputs for this sample are a list of listingId and bidPercentage pairs. Specify a campaign using the campaign_id URI parameter.
POSThttps://api.ebay.com/sell/marketing/v1/ad_campaign/1********4/bulk_create_ads_by_listing_id
Output
The output is the statusCode, listingId, adId, and the href for each created ad.