GMV Max

Create a GMV Max campaign

Create 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.). 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 and echoes the exact TikTok payload without calling TikTok.

post/gmv-max/campaigns

Headers

Idempotency-Keystring nullable
X-Dry-Runstring nullable
X-Created-Viastring nullable

Request body

campaign_namestring required

Human-readable campaign name shown in Seller Center / the portal.

campaign_type'product' | 'live'

product (Product GMV Max) or live (LIVE GMV Max). Maps to TikTok shopping_ads_type PRODUCT / LIVE.

product_selection'all' | 'customized' required

all promotes every eligible product; customized restricts to the products in item_group_ids. Maps to TikTok product_specific_type ALL / CUSTOMIZED_PRODUCTS.

item_group_idsstring[] nullable

Product (SPU / item_group_id) IDs to promote. Required and non-empty when product_selection is customized; must be omitted when product_selection is all.

target_roasnumber required

Target ROAS. Required — TikTok GMV Max create always needs a target ROI: maps to TikTok roas_bid with deep_bid_type=VO_MIN_ROAS.

daily_budgetnumber required

Daily budget in the shop's currency. Maps to TikTok budget.

schedule_type'from_now' | 'start_end' required

from_now starts immediately with no end (TikTok SCHEDULE_FROM_NOW); start_end runs between schedule_start_time and schedule_end_time (TikTok SCHEDULE_START_END).

schedule_start_timestring required

Campaign start time, TikTok format YYYY-MM-DD HH:MM:SS. Required for both from_now and start_end (TikTok always requires it).

schedule_end_timestring nullable

Campaign end time, TikTok format YYYY-MM-DD HH:MM:SS. Required when schedule_type is start_end.

promotion_daysinteger nullable

Optional number of promotion days (LIVE GMV Max scheduling hint).

auto_budget_enabledboolean nullable

Optional: let TikTok auto-manage the budget.

affiliate_posts_enabledboolean nullable

Optional: allow affiliate creator posts to be used as creatives.

Response

Dry-run echo (no campaign created).

Changes