Create Campaign
POST/marketplaces/:marketplaceID/campaigns
Create a campaign using external advertiser and product IDs.
Prerequisites — these entities must already exist before the campaign create call, otherwise the request fails with Object not found: Advertiser (404) or Wrong Type product not found (400):
- The advertiser (via
POST /integration/advertisers) - The products (via
POST /integration/products).external_product_idsaccepts the sameidvalues you used during product integration. - Any keywords/categories/devices/segments/regions referenced in the campaign must exist on the marketplace.
Validation rules (selected — service returns 400 with the exact message shown):
placements(legacy enum) andad_placements(Ad Placement IDs) are mutually exclusive; exactly one of them must be supplied.- Either
external_advertiser_idoradvertiser_idis required; without either you get400 "AdvertiserID or ExternalAdvertiserID". - Budget conditionals:
DAILY→daily_budgetrequired;TOTAL→total_budgetrequired;FLEXIBLE→ both required anddaily_budget ≤ total_budget. max_acos(andbid_type = MAX_ACOS) are not allowed forDISPLAY*andVIDEO*ad types.targeting_type = DEVICEis only valid forIN_STORE_VIDEOandIN_STORE_DISPLAY; sending it on PRODUCT/DISPLAY/VIDEO/SPONSORED_BRAND returns400 "invalid targeting type".SEARCHtargeting (andSTANDARDdynamic bid) →keywordsrequired (1-100).CATEGORYtargeting (and dynamic bid) →categoriesrequired (1-100).- A keyword cannot appear in both
keywordsandnegative_keywords. - For
DISPLAY*,VIDEO*andDISPLAY_SPONSORED_BRANDad types, eitherredirectorredirectsis required. DISPLAY_SPONSORED_BRAND:connected_with_productsmust betrue,productslength must be 3-250, exactly 1creativesentry.IN_STORE_VIDEO/IN_STORE_DISPLAY:targeting_type∈ {AUTO,DEVICE};AUTO⇒ nodevices;DEVICE⇒devicesrequired and nofixed_bid; exactly 1creativesentry; eachdevices[].bid≥ marketplace minimum bid.dayparting:all_week = true⇒ neitherall_daynorschedulemay be sent; otherwise at least one day/hour must be active. Eachschedule[<day>]must have exactly 24 booleans, day names are case-insensitive but must be valid, and a day cannot appear in bothall_dayandschedule. Up to 7 days per map.
external_product_ids vs products: when both are sent, external_product_ids is resolved to internal products and the value you provided in products is silently overwritten. Use external_product_ids (your integration IDs) — products is a legacy internal-ID field.
Request
Responses
- 201
- 400
- 401
- 403
- 404
- 500
Campaign Created
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error