GMV Max

Update a GMV Max campaign

Changed on

Patch the mutable subset of a GMV Max campaign — daily budget, target ROAS, name, pause/resume (operation_status), product set (item_group_ids), end time (schedule_end_time / schedule_type), promotion days, auto budget and its increase settings (an increase setting left out keeps the campaign's current value), affiliate posts, and the posts of a campaign that picks its own (posts, replacing the list; each post is looked up on TikTok). Requires read_write scope. PATCH semantics — fields the caller omits are left unchanged; at least one field must be provided. Use gmv_max_bid_recommendation for TikTok's suggested target ROAS and budget.

A TikTok rejection returns 422 TIKTOK_REJECTED with TikTok's own message (retrying will not help); a transient TikTok failure returns 502 and is safe to retry.

The shop must be connected to TikTok Business / GMV Max (400 INVALID_REQUEST otherwise). Idempotent via the Idempotency-Key header. X-Dry-Run: true echoes the mapped TikTok patch without changing anything; it still reads the campaign from TikTok to check it is on this shop's store, and looks up any posts. Single shop only.

patch/gmv-max/campaigns/{campaign_id}

Request

  • Base URL
    https://api.reacherapp.com/public/v1
  • URL
    https://api.reacherapp.com/public/v1/gmv-max/campaigns/{campaign_id}
  • Auth
    API key in header x-api-key and API key in header x-shop-id

Path parameters

campaign_idstring required

Headers

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

Request body

campaign_namestring nullable
daily_budgetnumber nullable

New daily budget. Maps to TikTok budget.

target_roasnumber nullable

New target ROAS. Maps to TikTok roas_bid.

operation_status'ENABLE' | 'DISABLE' nullable

Pause (DISABLE) or resume (ENABLE) the campaign. Maps to TikTok operation_status.

auto_budget_enabledboolean nullable
auto_budget_increase_percentageinteger nullable

Each automatic budget increase, in percent. Left out, the campaign's current value is kept and resent; a dry run shows it.

auto_budget_increase_limitinteger nullable

Most automatic budget increases per day. Left out, the campaign's current value is kept and resent; a dry run shows it.

item_group_idsstring[] nullable

Replace the product set of a customized-products campaign with these SPU IDs (at most 50). Use gmv_max_store_products for eligible ones.

schedule_type'from_now' | 'start_end' nullable

from_now runs with no end; start_end runs until schedule_end_time, which it requires.

schedule_end_timestring nullable

New end time, YYYY-MM-DD HH:MM:SS in UTC. Implies schedule_type: start_end.

affiliate_posts_enabledboolean nullable

Use affiliate creators' posts. Product campaigns with automatic post selection only.

Response

Campaign updated (or dry-run echo).

campaign_idstring nullable

The campaign written.

operation_status'ENABLE' | 'DISABLE' nullable

The pause/resume state set by this request, if any.

dry_runboolean nullable

True when nothing was sent to TikTok.

would_set_status'ENABLE' | 'DISABLE' nullable

Dry run only: the pause/resume that would be sent.

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 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

    • breaking

      removed subschema #1 from the request property anyOf list

    • 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 to the request property anyOf list

    • info

      added to the response property anyOf list for the response status

    • info

      removed subschema #1 from the response property anyOf list for the response status