Create a GMV Max Campaign
POST/campaign/gmv_max/create/Via 360: POST https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/
Write endpoint — changes data on TikTok Business. The key must be created with "Allow write API calls" ticked, otherwise you get 403 write_not_allowed. Every call is logged.
Description
Use this endpoint to create a GMV Max Campaign.
Request
Endpoint
POST https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 7000000000000000001 | Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| request_id | body | string | Yes | Request ID that supports idempotency to prevent you from sending the same request twice.
If you retry requests with the same request ID multiple times within the 10-second cache time, then only one request will succeed. If a duplicate request with the expired request ID is received after the cache time, the server will treat it as a new request and process it accordingly.
The ID is different from the request_id returned in the response parameters, which is used to uniquely identify an HTTP request.
The value should be a string representation of a 64-bit integer.
Example: "123456789". | |
| store_id | body | string | Yes | The ID of the TikTok Shop.
To obtain a TikTok Shop that is available for GMV Max Campaigns, use /gmv_max/store/list/ and confirm that the returned is_gmv_max_available is true. | |
| store_authorized_bc_id | body | string | Yes | ID of the Business Center that is authorized to access the TikTok Shop (store_id). | |
| shopping_ads_type | body | string | Yes | The type of the GMV Max Campaign.
Enum values:
- PRODUCT: Product GMV Max Campaign.
- LIVE: Live GMV Max Campaign.
To learn about how to create such campaigns, see Create Product GMV Max Campaigns and Create LIVE GMV Max Campaigns. | |
| product_specific_type | body | string | No | Valid only when shopping_ads_type is PRODUCT.
Different dimensions to choose products.
Enum values:
- ALL: Allow TikTok to dynamically choose from all products within the TikTok Shop.
- CUSTOMIZED_PRODUCTS: Specify a customized number of products within the TikTok Shop.
To confirm whether you can promote all products in the TikTok Shop, call /gmv_max/store/shop_ad_usage_check/ and check the returned promote_all_products_allowed. | |
| item_group_ids | body | string[] | No | Required when shopping_ads_type is PRODUCT and product_specific_type is CUSTOMIZED_PRODUCTS.
Product SPU (standard product unit) IDs.
Max size: 50.
To obtain the list of SPU IDs for products within a TikTok Shop, use /store/product/get/. Set ad_creation_eligible to GMV_MAX and select item_group_id values where status is AVAILABLE and gmv_max_ads_status is UNOCCUPIED. | |
| optimization_goal | body | string | Yes | Optimization goal.
Enum value:
- VALUE: Gross revenue. | |
| deep_bid_type | body | string | Yes | Bid strategy.
Enum value:
- VO_MIN_ROAS: Minimum ROAS. Bid with an ROI target. | |
| roas_bid | body | number | No | Required only when deep_bid_type is VO_MIN_ROAS.
ROI target, kept to up to one decimal place.
Examples: 3.2, 3.
To obtain the recommended ROI target, use /gmv_max/bid/recommend/ and check the returned roas_bid. | |
| budget | body | number | Yes | Daily budget.
To obtain the recommended budget, use /gmv_max/bid/recommend/ and check the returned budget. | |
| promotion_days | body | object | No | The promotion days setting details.
Note: To customize the percentage and the maximum times the budget can increase per day within your promotion days settings, use budget_increase_percentage and increase_limitwithin this object. | |
| auto_budget | body | object | No | The details of the automatic budget settings during non-promotion days. | |
| auto_budget_enabled | body | boolean | No | Whether to enable automatic budget increase.
When your achieved ROI reaches at least 90% of the target and 80% or more of your budget has been used, your daily campaign budget may automatically increase by up to 10 times to capture more sales. Your budget will reset to its original amount each day.
- When is_enabled within the object promotion_days is true andauto_budget_enabled is false, your ROI target will decrease and your daily budget will automatically increase during TikTok Shop promotion days (when auto_schedule_enabled is true) and custom promotion days as defined by custom_schedule_list. Your daily budget will reset to its original amount every day. During standard days, your ROI target and budget won't change.
- When is_enabled within the object promotion_days is true andauto_budget_enabled is true, auto budget increase will be turned on during TikTok Shop promotion days (when auto_schedule_enabled is true), custom promotion days as defined by custom_schedule_list, and standard days. Your daily budget will reset to its original amount every day. During TikTok Shop promotion days and custom promotion days as defined by custom_schedule_list, your ROI target will decrease. During standard days, your ROI target won't change.
- When is_enabled within the object promotion_days is false andauto_budget_enabled is true, your ROI won't change, your daily campaign budget may automatically increase up to 10 times to optimize gross revenue. Your daily budget will reset to its original amount every day.
- However, if you specify auto_budget_enabled and auto_budget at the same time, auto_budget_enabled will be ignored.
Supported values: true, false.
Default value: false.
Note: When you use this parameter, the automatic budget increase settings for GMV Max Campaigns are fixed in terms of percentage and maximum frequency. If you want to customize the percentage and the maximum times the budget can increase per day during non-promotion days, use auto_budget instead. | |
| schedule_type | body | string | Yes | Schedule type.
Enum values:
- SCHEDULE_FROM_NOW: To run the campaign continuously after the scheduled start time.
- SCHEDULE_START_END: To run the campaign between the scheduled start time and end time. | |
| schedule_start_time | body | string | Yes | Campaign delivery start time, in the format of YYYY-MM-DD HH:MM:SS (UTC+0).
The start time can be up to 12 hours earlier than the current time, but cannot be later than 2028-01-01 00:00:00. | |
| schedule_end_time | body | string | No | - Required when schedule_type is SCHEDULE_START_END.
- Not supported when schedule_type is SCHEDULE_FROM_NOW.
Campaign delivery end time, in the format of YYYY-MM-DD HH:MM:SS (UTC+0).
The end time cannot be later than 2038-01-01 00:00:00. | |
| product_video_specific_type | body | string | No | Required when shopping_ads_type is PRODUCT.
The video selection mode.
Enum values:
- AUTO_SELECTION: To autoselect videos. You need to specify identity_list simultaneously.
- CUSTOM_SELECTION: To manually select videos. You need to specify item_list simultaneously. | |
| identity_list | body | object[] | No | - Required when shopping_ads_type is LIVE.
- Optional when shopping_ads_type is PRODUCT and product_video_specific_type is AUTO_SELECTION.
The list of identities (TikTok accounts) to associate with the GMV Max Campaign.
- When shopping_ads_type is PRODUCT and product_video_specific_type is AUTO_SELECTION, specify 0-20 identities as the source of video creatives via this field.
- To obtain a list of identities available for a Product GMV Max Campaign using the same TikTok Shop, use /gmv_max/identity/get/ and select identities with product_gmv_max_available as true.
- When no identities are specified through identity_list, the product images will be used as ad creatives.
- When shopping_ads_type is LIVE, specify one identity as the LIVE source via this field.
- To obtain an identity that is available for LIVE GMV Max Campaigns, call /gmv_max/identity/get/ and select identities with live_gmv_max_available as true. | |
| affiliate_posts_enabled | body | boolean | No | This field is valid and defaults to true when the following conditions are both met:
- shopping_ads_type is PRODUCT
- product_video_specific_type is AUTO_SELECTIONWhether to enable affiliate posts for your Product GMV Max Campaign.
Affiliate posts are TikTok posts created by affiliates (creators participating in the TikTok Shop Affiliate Program) and authorized for use in TikTok Shop Ads. Learn more about affiliate creatives for TikTok Shop Ads.
Supported values: true, false. | |
| item_list | body | object[] | No | Required when shopping_ads_type is PRODUCT and product_video_specific_type is CUSTOM_SELECTION.
The list of authorized TikTok posts or customized TikTok posts to associate with the Product GMV Max campaign.
- Authorized TikTok posts are existing posts featuring your selected products from your TikTok accounts or authorized using video codes.
- If you want to manually select authorized TikTok posts only for the Product GMV Max campaign, include their details using item_list and do not specify custom_anchor_video_list.
- Customized TikTok posts are created by adding customized product links to your videos. You can use two types of customized posts: campaign-level and shop-level.
- Campaign-level customized posts are generated specifically for a campaign by adding customized product links to selected videos at the campaign level. These posts are exclusive to the Product GMV Max campaign in which they are created.
- To manually select campaign-level customized posts for a Product GMV Max campaign, provide the video details in the item_list parameter and specify the custom_anchor_video_list parameter simultaneously.
- Shop-level customized posts are generated for a specific TikTok Shop by adding customized product links to selected videos at the shop level. These posts are automatically included in a Product GMV Max campaign if their linked products are part of that active campaign.
- To manually select shop-level customized TikTok posts for a Product GMV Max campaign, provide their details in the item_list parameter, but do not specify the custom_anchor_video_list parameter.
- To retrieve shop-level customized TikTok posts, use /gmv_max/creation/custom_anchor_video_list/get/ and leave the campaign_id filter unspecified.
Max size: 50.
To obtain a list of TikTok posts available for a Product GMV Max Campaign using the same TikTok Shop, use /gmv_max/video/get/.
Important: The campaign-level customized posts feature will be deprecated in the upcoming API version. To ensure a seamless integration, create shop-level customized posts using /gmv_max/creation/custom_anchor_video_list/create/ and retrieve the details of videos used in customized posts using /gmv_max/creation/custom_anchor_video_list/get/ and /gmv_max/creation/shop_video/video_anchors/. | |
| custom_anchor_video_list | body | object[] | No | The list of customized TikTok posts to associate with the Product GMV Max campaign.
Customized TikTok posts are posts created during campaign setup by adding customized product links for your products (spu_id_list within custom_anchor_video_list) to specified videos (item_id within custom_anchor_video_list). These posts will be exclusive to this Product GMV Max campaign.
- For manual selection: When shopping_ads_type is PRODUCT and product_video_specific_type is CUSTOM_SELECTION, specify the videos to be used in customized posts using this field.
- For auto selection: When shopping_ads_type is PRODUCT and product_video_specific_type is AUTO_SELECTION, specify the videos to be auto-selected for customized posts using this field.
Max size: 200.
Important: This field will be deprecated along with the campaign-level customized posts feature in the next API version. To ensure a seamless integration, create shop-level customized posts using /gmv_max/creation/custom_anchor_video_list/create/ and retrieve the details of videos used in customized posts using /gmv_max/creation/custom_anchor_video_list/get/ and /gmv_max/creation/shop_video/video_anchors/.
Note: Although you can add a maximum number of 200 customized posts during campaign creation, one Product GMV Max campaign can eventually include up to 2,000 customized posts. If you want to specify more than 200 customized posts for a Product GMV Max Campaign, you can update the custom_anchor_video_list of the campaign incrementally using /campaign/gmv_max/update/, with updates limited to 200 additional posts per request. | |
| campaign_name | body | string | Yes | The name of the GMV Max Campaign. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"request_id":"","store_id":"","store_authorized_bc_id":"","shopping_ads_type":"","optimization_goal":"","deep_bid_type":"","budget":0,"promotion_days":{},"auto_budget":{},"schedule_type":"","schedule_start_time":"","identity_list":[{}],"item_list":[{}],"custom_anchor_video_list":[{}],"campaign_name":""}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/",
params={},
json={
"request_id": "",
"store_id": "",
"store_authorized_bc_id": "",
"shopping_ads_type": "",
"optimization_goal": "",
"deep_bid_type": "",
"budget": 0,
"promotion_days": {},
"auto_budget": {},
"schedule_type": "",
"schedule_start_time": "",
"identity_list": [
{}
],
"item_list": [
{}
],
"custom_anchor_video_list": [
{}
],
"campaign_name": ""
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"request_id":"","store_id":"","store_authorized_bc_id":"","shopping_ads_type":"","optimization_goal":"","deep_bid_type":"","budget":0,"promotion_days":{},"auto_budget":{},"schedule_type":"","schedule_start_time":"","identity_list":[{}],"item_list":[{}],"custom_anchor_video_list":[{}],"campaign_name":""}),
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/tiktok_business/campaign/gmv_max/create/' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"request_id":"","store_id":"","store_authorized_bc_id":"","shopping_ads_type":"","optimization_goal":"","deep_bid_type":"","budget":0,"promotion_days":{},"auto_budget":{},"schedule_type":"","schedule_start_time":"","identity_list":[{}],"item_list":[{}],"custom_anchor_video_list":[{}],"campaign_name":""}');
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;Response
Response fields (as returned by TikTok Business)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | number | Response code. For the complete list of response codes and descriptions, see Appendix-Return Code. | |
| message | string | Response message. For details, see Appendix - Return Codes. | |
| request_id | string | The log ID of a request, which uniquely identifies the request. | |
| data | object | Returned data. | |
| advertiser_id | string | Advertiser ID. | |
| operation_status | string | The status of the GMV Max Campaign. Enum values: - `DISABLE`: Disabled. - `ENABLE`: Enabled. | |
| campaign_id | string | The ID of the GMV Max Campaign. | |
| campaign_name | string | The name of the GMV Max Campaign. | |
| store_id | string | The ID of the TikTok Shop. | |
| store_authorized_bc_id | string | ID of the Business Center that is authorized to access the TikTok Shop (`store_id`). | |
| shopping_ads_type | string | The type of the GMV Max Campaign. Enum values: - `PRODUCT`: Product GMV Max Campaign. - `LIVE`: Live GMV Max Campaign. | |
| product_specific_type | string | Different dimensions to choose products. Enum values: - `ALL`: Allow TikTok to dynamically choose from all products within the TikTok Shop. - `CUSTOMIZED_PRODUCTS`: Specify a customized number of products within the TikTok Shop. - `UNSET`: Unset. | |
| item_group_ids | string[] | Returned only when `shopping_ads_type` is `PRODUCT` and `product_specific_type` is `CUSTOMIZED_PRODUCTS`. Product SPU (standard product unit) IDs. | |
| optimization_goal | string | Optimization goal. Enum value: - `VALUE`: Gross revenue. | |
| roi_protection_enabled | boolean | Whether the campaign is eligible for ROI protection. ROI protection is a feature that automatically issues ad credits when the return on investment (ROI) for your campaign falls below a certain threshold despite following GMV Max guidelines and best practices. To learn about the eligibility criteria for ROI protection and scenarios where the campaign is ineligible for ROI protection, see About ROI protection for GMV Max campaigns. Supported values: `true`, `false`. | |
| deep_bid_type | string | Bid strategy. Enum value: - `VO_MIN_ROAS`: Minimum ROAS. Bid with an ROI target. | |
| roas_bid | number | Returned only when `deep_bid_type` is `VO_MIN_ROAS`. ROI target. | |
| budget | number | Daily budget. | |
| promotion_days | object | The promotion days setting details. | |
| is_enabled | boolean | Whether to enable promotion days to automatically optimize your campaign for higher GMV during high-intent shopping dates in regions where your ads are delivering. When promotion days are active for this campaign, your ad credits will be calculated for your promotion days target ROI setting. Supported values: `true`, `false`. | |
| auto_schedule_enabled | boolean | Whether to use TikTok Shop promotion days schedule. Supported values: `true`, `false`. | |
| custom_schedule_list | object[] | Details of the custom promotion day schedules. | |
| start_date | string | The start date of the custom promotion day schedule, in the format of `YYYY-MM-DD` (ad account time zone). | |
| end_date | string | The end date of the custom promotion day schedule, in the format of `YYYY-MM-DD` (ad account time zone). | |
| roas_bid_multiplier | number | The target ROI index. Changes to your target ROI will be in effect during promotion days and may drive higher GMV for this campaign. Enum values: - `90`: -10%. To decrease your target ROI by 10% during promotion days. - `80`: -20%. To decrease your target ROI by 20% during promotion days. - `70`: -30%. To decrease your target ROI by 30% during promotion days. | |
| adjusted_roas_bid | number | Promotion days target ROI. | |
| budget_increase_percentage | integer | The increase percentage for the budget during promotion days. A value of 50 means a 50% budget increase when the automatic budget increase is triggered. | |
| increase_limit | integer | The increase limit for the daily budget during promotion days. A value of 10 means allows up to 10 budget increases per day when the automatic budget increases are triggered. | |
| current_budget | number | The specified campaign daily budget (`budget`). | |
| next_increase | number | The increase in budget compared with your specified campaign daily budget (`budget`). Formula: `next_increase` = `current_budget` x `budget_increase_percentage`. For example, if `budget` is 300 USD and `budget_increase_percentage` is 50, `next_increase` will be 150 USD, indicating a daily budget increase of 150 USD. | |
| remained_times | number | The remaining times of automatic budget increases. | |
| maximum_budget | number | The maximum possible budget. Formula: `maximum_budget` = `current_budget` + `current_budget` x `budget_increase_percentage` x `remained_times`. For example, if `current_budget` is 200 USD, `budget_increase_percentage` is 50, and `remained_times` is 10, your `maximum_budget` will be 1200 USD, as the increase can occur up to 10 times daily. | |
| estimated_gross_revenue_increase | string | The estimated percentage increase in gross revenue due to the ROI change during promotion days. Example: `24%`. | |
| auto_budget | object | The details of the automatic budget settings during non-promotion days. | |
| auto_budget_enabled | boolean | Whether to enable automatic budget increase during non-promotion days. Enabling automatic budget increase will allow your daily budget to be automatically increased to optimize your campaign for more sales on days when your campaign has reached at least 90% of your ROI target and at least 80% of your budget has been used. Your daily budget will reset to its original amount each day. Supported values: `true`, `false`. | |
| budget_increase_percentage | integer | The increase percentage for the budget during non-promotion days. A value of 50 means a 50% budget increase when the automatic budget increase is triggered. | |
| increase_limit | integer | The increase limit for the daily budget during non-promotion days. A value of 10 means allows up to 10 budget increases per day when the automatic budget increases are triggered. | |
| current_budget | number | The specified campaign daily budget (`budget`). | |
| next_increase | number | The increase in budget compared with your specified campaign daily budget (`budget`). Formula: `next_increase` = `current_budget` x `budget_increase_percentage`. For example, if `budget` is 300 USD and `budget_increase_percentage` is 50, `next_increase` will be 150 USD, indicating a daily budget increase of 150 USD. | |
| remained_times | number | The remaining times of automatic budget increases. | |
| maximum_budget | number | The maximum possible budget. Formula: `maximum_budget` = `current_budget` + `current_budget` x `budget_increase_percentage` x `remained_times`. For example, if `current_budget` is 200 USD, `budget_increase_percentage` is 50, and `remained_times` is 10, your `maximum_budget` will be 1200 USD, as the increase can occur up to 10 times daily. | |
| auto_budget_enabled | boolean | Whether to enable automatic budget increase. When your achieved ROI reaches at least 90% of the target and 80% or more of your budget has been used, your daily campaign budget may automatically increase by up to 10 times to capture more sales. Your budget will reset to its original amount each day. - When `is_enabled` within the object `promotion_days` is `true` and`auto_budget_enabled` is `false`, your ROI target will decrease and your daily budget will automatically increase during TikTok Shop promotion days (when `auto_schedule_enabled` is `true`) and custom promotion days as defined by `custom_schedule_list`. Your daily budget will reset to its original amount every day. During standard days, your ROI target and budget won't change. - When `is_enabled` within the object `promotion_days` is `true` and`auto_budget_enabled` is `true`, auto budget increase will be turned on during TikTok Shop promotion days (when `auto_schedule_enabled` is `true`), custom promotion days as defined by `custom_schedule_list`, and standard days. Your daily budget will reset to its original amount every day. During TikTok Shop promotion days and custom promotion days as defined by `custom_schedule_list`, your ROI target will decrease. During standard days, your ROI target won't change. - When `is_enabled` within the object `promotion_days` is `false` and`auto_budget_enabled` is `true`, your ROI won't change, your daily campaign budget may automatically increase up to 10 times to optimize gross revenue. Your daily budget will reset to its original amount every day. Supported values: `true`, `false`. | |
| schedule_type | string | Schedule type. Enum values: - `SCHEDULE_FROM_NOW`: To run the campaign continuously after the scheduled start time. - `SCHEDULE_START_END`: To run the campaign between the scheduled start time and end time. | |
| schedule_start_time | string | Campaign delivery start time, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| schedule_end_time | string | Campaign delivery end time, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| placements | string[] | Placements. The apps where you want to deliver your campaign. Enum values: - `PLACEMENT_TIKTOK`: TikTok. - `PLACEMENT_PANGLE`: Pangle. Note: - Product GMV Max Campaigns automatically explore and choose from the most extensive audience scope across TikTok and Pangle. Learn more about Pangle. - If you want to opt out of the Pangle placement for your Product GMV Max Campaigns, contact your TikTok representative. | |
| location_ids | string[] | The IDs of the targeted locations. To learn about the corresponding location for a location ID, see Location IDs. | |
| age_groups | string[] | The targeted age groups. For enum values, see Enumeration - Age Group. | |
| product_video_specific_type | string | The video selection mode. Enum values: - `AUTO_SELECTION`: To autoselect videos. - `CUSTOM_SELECTION`: To manually select videos. - `UNSET`: Unset. | |
| identity_list | object[] | The list of identities (TikTok accounts) associated with the GMV Max Campaign. | |
| identity_id | string | Identity ID. | |
| identity_type | string | Identity type. Enum values: - `AUTH_CODE`: Authorized User. This type of identity is created when you use the authorization code to access a TikTok account or a TikTok post. - `TT_USER`: TikTok User. This type of identity is created when you bind your TikTok For Business account with your TikTok Business Account, or when you bind your TikTok For Business account with your regular TikTok account and then upgrade the account to Business Account. - `BC_AUTH_TT`: TikTok Account User in Business Center. This type of identity is created when you add a TikTok account to your Business Center, and the TikTok account owner approves your request. - `TTS_TT`: TikTok Account User for TikTok Shop. This type of identity is created when you set an official TikTok account for the TikTok Shop. | |
| identity_authorized_bc_id | string | Returned only when `identity_type` is `BC_AUTH_TT`. The ID of the Business Center that a TikTok Account User in Business Center identity is associated with. | |
| identity_authorized_shop_id | string | Returned for some `BC_AUTH_TT` identities. The ID of the TikTok Shop that the TikTok Account User in Business Center identity is associated with. | |
| store_id | string | Returned only when `identity_type` is `TTS_TT`. The ID of the TikTok Shop that a TikTok Account User for TikTok Shop identity is associated with. | |
| affiliate_posts_enabled | boolean | Whether to enable affiliate posts for your Product GMV Max Campaign. Affiliate posts are TikTok posts created by affiliates (creators participating in the TikTok Shop Affiliate Program) and authorized for use in TikTok Shop Ads. Learn more about affiliate creatives for TikTok Shop Ads. Supported values: `true`, `false`. | |
| item_list | object[] | The list of authorized TikTok posts associated with the GMV Max campaign. Authorized TikTok posts are existing posts featuring your selected products from your TikTok accounts or authorized using video codes. | |
| item_id | string | The ID of the TikTok post. | |
| text | string | The caption of the TikTok post. | |
| spu_id_list | string[] | The list of Product SPU IDs that the TikTok post is associated with. | |
| identity_info | object | Information about the identity associated with the TikTok post. | |
| identity_id | string | Identity ID. | |
| identity_type | string | Identity type. Enum values: - `AUTH_CODE`: Authorized User. This type of identity is created when you use the authorization code to access a TikTok account or a TikTok post. - `TT_USER`: TikTok User. This type of identity is created when you bind your TikTok For Business account with your TikTok Business Account, or when you bind your TikTok For Business account with your regular TikTok account and then upgrade the account to Business Account. - `BC_AUTH_TT`: TikTok Account User in Business Center. This type of identity is created when you add a TikTok account to your Business Center, and the TikTok account owner approves your request. - `TTS_TT`: TikTok Account User for TikTok Shop. This type of identity is created when you set an official TikTok account for the TikTok Shop. | |
| identity_authorized_bc_id | string | Returned only when `identity_type` is `BC_AUTH_TT`. The ID of the Business Center that a TikTok Account User in Business Center identity is associated with. | |
| identity_authorized_shop_id | string | Returned for some `BC_AUTH_TT` identities. The ID of the TikTok Shop that the TikTok Account User in Business Center identity is associated with. | |
| store_id | string | Returned only when `identity_type` is `TTS_TT`. The ID of the TikTok Shop that a TikTok Account User for TikTok Shop identity is associated with. | |
| profile_image | string | Temporary profile image URL for the TikTok account that is associated with the identity. Validity period: around 48 hours. The expiration time is included in the URL after the `x-expires` parameter, in the format of an Epoch/Unix timestamp in seconds. Once the URL expires, you need to call /campaign/gmv_max/info/ to obtain a new URL. | |
| user_name | string | The username of the TikTok account that is associated with the identity. | |
| video_info | object | Details of the video in the post. | |
| video_id | string | The ID of the video. | |
| video_cover_url | string | Temporary URL for the video cover. Validity period: around 24 hours. The expiration time is included in the URL after the `x-expires` parameter, in the format of an Epoch/Unix timestamp in seconds. Once the URL expires, you need to call /campaign/gmv_max/info/ to obtain a new URL. | |
| preview_url | string | Temporary preview URL for the video. Validity period: six hours. Once the URL expires, you need to call /campaign/gmv_max/info/ to obtain a new URL. | |
| height | number | The height of the video in pixels. Example: 1920. | |
| width | number | The width of the video in pixels. Example: 1080. | |
| bit_rate | number | The bit rate of the video in bps. Example: 8500323. | |
| duration | number | The duration of the video in seconds. Example: 3.669. | |
| size | number | The size of the video in bytes. Example: 3898461. | |
| signature | string | The MD5 of the video. Example: `ab1cd2345e678fghi91jkl23b456m7no`. | |
| format | string | The format of the video. Example: `mp4`. | |
| definition | string | The definition of the video. Example: `1080p`. | |
| fps | number | The frames per second (FPS) of the video. Example: 27. | |
| campaign_custom_anchor_video_id | string | The ID of the collection of customized posts created in the Product GMV Max Campaign. You can pass this field to /gmv_max/custom_anchor_video_list/get/ to obtain the details of the customized posts within the collection. Important: This field will be deprecated in the next API version. To ensure a seamless integration, retrieve the details of videos used in customized posts using /gmv_max/creation/custom_anchor_video_list/get/ and /gmv_max/creation/shop_video/video_anchors/. | |
| custom_anchor_video_list | object[] | The list of customized TikTok posts associated with the GMV Max campaign. Customized TikTok posts are posts with custom product links. Important: This field will be deprecated in the next API version. To ensure a seamless integration, retrieve the details of videos used in customized posts using /gmv_max/creation/custom_anchor_video_list/get/ and /gmv_max/creation/shop_video/video_anchors/. | |
| item_id | string | The ID of the TikTok post. | |
| spu_id_list | string[] | The list of Product SPU IDs that the TikTok post is associated with. | |
| identity_info | object | Information about the identity associated with the TikTok post. | |
| identity_id | string | Identity ID. | |
| identity_type | string | Identity type. Enum values: - `AUTH_CODE`: Authorized User. This type of identity is created when you use the authorization code to access a TikTok account or a TikTok post. - `TT_USER`: TikTok User. This type of identity is created when you bind your TikTok For Business account with your TikTok Business Account, or when you bind your TikTok For Business account with your regular TikTok account and then upgrade the account to Business Account. - `BC_AUTH_TT`: TikTok Account User in Business Center. This type of identity is created when you add a TikTok account to your Business Center, and the TikTok account owner approves your request. - `TTS_TT`: TikTok Account User for TikTok Shop. This type of identity is created when you set an official TikTok account for the TikTok Shop. | |
| identity_authorized_bc_id | string | Returned only when `identity_type` is `BC_AUTH_TT`. The ID of the Business Center that a TikTok Account User in Business Center identity is associated with. | |
| identity_authorized_shop_id | string | Returned for some `BC_AUTH_TT` identities. The ID of the TikTok Shop that the TikTok Account User in Business Center identity is associated with. | |
| store_id | string | Returned only when `identity_type` is `TTS_TT`. The ID of the TikTok Shop that a TikTok Account User for TikTok Shop identity is associated with. |
Response sample
HTTPS/1.1 200 OK
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"advertiser_id": "{{advertiser_id}}",
"age_groups": [
"AGE_18_24",
"AGE_25_34",
"AGE_35_44",
"AGE_45_54",
"AGE_55_100"
],
"budget": {{budget}},
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"custom_anchor_video_list": [],
"deep_bid_type": "VO_MIN_ROAS",
"identity_list": [
{
"identity_id": "{{identity_id}}",
"identity_type": "TTS_TT",
"store_id": "{{store_id}}"
},
{
"identity_id": "{{identity_id}}",
"identity_type": "TT_USER"
},
{
"identity_authorized_bc_id": "{{identity_authorized_bc_id}}",
"identity_id": "{{identity_id}}",
"identity_type": "BC_AUTH_TT"
}
],
"item_list": [],
"location_ids": [
"1562822"
],
"operation_status": "ENABLE",
"optimization_goal": "VALUE",
"placements": [
"PLACEMENT_TIKTOK"
],
"product_specific_type": "ALL",
"product_video_specific_type": "AUTO_SELECTION",
"affiliate_posts_enabled": true,
"roas_bid": {{roas_bid}},
"schedule_end_time": "{{schedule_end_time}}",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_type": "SCHEDULE_START_END",
"shopping_ads_type": "PRODUCT",
"store_authorized_bc_id": "{{store_authorized_bc_id}}",
"store_id": "{{store_id}}"
}
}
Get started
- Sign up for Partner
- Enable a data type of the Ads (Marketing API) group on the platform page
- Create an API key (tick the TikTok Business channel)
- Call it as in the examples above