Create a GMV Max campaign
Changed onCreate a new GMV Max (TikTok Smart+) campaign on the shop's connected TikTok Business ad account. Requires read_write scope. Single shop only — set x-shop-id to the owning shop.
The canonical body is mapped to TikTok's create payload server-side (daily_budget→budget, target_roas→ROAS bid, product_selection→ALL / CUSTOMIZED_PRODUCTS, etc.). A live campaign needs the one TikTok account that goes LIVE in identity_ids. A product campaign lets TikTok pick posts (post_selection: auto, optionally from identity_ids) or runs only posts (post_selection: custom); each post is looked up on TikTok first. Use gmv_max_identities and gmv_max_posts for both. The shop must already be connected to TikTok Business / GMV Max — an unconnected or incomplete connection returns 400 INVALID_REQUEST.
Idempotent via the Idempotency-Key header — replays of the same key + same body return the cached 201 without creating a duplicate. X-Dry-Run: true validates the body + connection, looks up any identity_ids / posts on TikTok (counted against the live-read cap, so it can return 429 LIVE_READ_CAP_REACHED), and echoes the exact TikTok payload without creating anything.
Request
- Base URLhttps://api.reacherapp.com/public/v1
- URLhttps://api.reacherapp.com/public/v1/gmv-max/campaigns
- AuthAPI key in header x-api-key and API key in header x-shop-id
Headers
Request body
Response
Dry-run echo (no campaign created).
Changes
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status
- info
- breaking
removed
subschema #1from therequest propertyanyOflist - info
added to the
request propertyanyOflist - info
added to the
response propertyanyOflist for the response status - info
removed
subschema #1from theresponse propertyanyOflist for the response status
- breaking