Update the operation statuses of Upgraded Smart+ Campaigns
POST/smart_plus/campaign/status/update/Via 360: POST https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/status/update/
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 enable, pause, or delete Upgraded Smart+ Campaigns.
Request
Endpoint
POST https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/status/update/
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 |
|---|---|---|---|---|---|
| campaign_ids | body | string[] | Yes | The IDs of the campaigns to operate on. To obtain campaign IDs, use /smart_plus/campaign/get/. Size range: 1-20. | |
| operation_status | body | string | Yes | The operation to perform on the campaigns.
Enum values: DELETE (delete), DISABLE (pause), ENABLE (enable).
Note: The status of deleted campaigns cannot be modified. | |
| postback_window_mode | body | string | No | Valid only when the following conditions are all met:
- The campaigns (campaign_ids) are Dedicated Campaigns (campaign_type is IOS14_CAMPAIGN).
- You specify operation_status as DISABLE at the same time in the request.
- postback_window_mode has not been configured for the campaign.
- You have enabled SKAN 4.0 for your App.
The mode that defines which SKAN (SKAdNetwork) 4.0 postback you want to secure. Options with longer windows require more time to receive and, as a result, more time to release the campaign back to the available number.
Enum values:
- POSTBACK_WINDOW_MODE1: This option secures the first postback, which corresponds to the 0-2 day attribution window. The data can take up to 4 days to return, and the campaign will wait for 4 days to release the campaign quota.
- POSTBACK_WINDOW_MODE2: This mode secures the first two postbacks, which corresponds to the 3-7 day attribution window. The data can take up to 13 days to return, and the campaign will wait for 13 days to release the campaign quota.
- POSTBACK_WINDOW_MODE3: This mode secures all three postbacks, which corresponds to the 8-35 day attribution window. The data can take up to 41 days to return, and the campaign will wait for 41 days to release the campaign quota.
To learn more about SKAN 4.0 attribution window configuration and campaign quota, see Dedicated Campaigns.
Note:
- If you have set up Mobile Measurement Partner (MMP) Tracking with Adjust, Airbridge, Appsflyer, Branch, Kochava, or Singular for your App and your MMP SDK version is updated to a SKAN 4.0 supported SDK, you can transition your App to SKAN 4.0 on Events Manager. To learn about how to set up MMP tracking for your App, see How to Set Up App Attribution in TikTok Ads Manager. To learn more about how to transition your App to SKAN 4.0, see About SKAN 4.0 and TikTok and How to transition to SKAN 4.0.
- If operation_status is set to ENABLE or not passed, and you pass in this field at the same time, an error will occur.
- If you pass in this field when you have not enabled SKAN 4.0 for your App (app_id), an error will occur.
- If this field is not passed when campaign_type is set to IOS14_CAMPAIGN, operation_status is set to DISABLE, and you have enabled SKAN 4.0 for your App, this field will default to POSTBACK_WINDOW_MODE1.
- The postback window mode configuration can be partially successful. If you provide campaign_ids for non-Dedicated Campaigns, or Dedicated Campaigns for which postback_window_mode has been configured, those campaigns will be ignored and their postback_window_mode will not be modified. Only the Dedicated Campaigns that meet the conditions mentioned above will have their postback_window_mode configured.
- If you have enabled SKAN 4.0 for your App, ensure that you target devices running iOS 16.1 and later so that you can receive SKAN 4.0 postbacks. To only target iOS 16.1+ devices, set min_ios_version to 16.1 at the ad group level. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/status/update/" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"campaign_ids":[],"operation_status":""}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/status/update/",
params={},
json={
"campaign_ids": [],
"operation_status": ""
},
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/smart_plus/campaign/status/update/');
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({"campaign_ids":[],"operation_status":""}),
});
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/smart_plus/campaign/status/update/' . '?' . 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, '{"campaign_ids":[],"operation_status":""}');
$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. | |
| campaign_list | object[] | A list of campaigns for which the operation was successful. | |
| campaign_id | string | The ID of the campaign for which the operation was successful. | |
| status | string | The current status of the campaign for which the operation was successful. Enum values: `DISABLE` (paused), `ENABLE` (enabled), `DELETE` (deleted). | |
| postback_window_mode | string | The mode that determines which SKAN 4.0 postback you want to secure. Enum values: - `POSTBACK_WINDOW_MODE1`: This option secures the first postback, which corresponds to the 0-2 day attribution window. The data can take up to 4 days to return, and the campaign will wait for 4 days to release the campaign quota. - `POSTBACK_WINDOW_MODE2`: This mode secures the first two postbacks, which corresponds to the 3-7 day attribution window. The data can take up to 13 days to return, and the campaign will wait for 13 days to release the campaign quota. - `POSTBACK_WINDOW_MODE3`: This mode secures all three postbacks, which corresponds to the 8-35 day attribution window. The data can take up to 41 days to return, and the campaign will wait for 41 days to release the campaign quota. | |
| error_list | object[] | A list of errors and the corresponding failed campaigns. | |
| campaign_id | string | The ID of the campaign for which the operation failed. | |
| error_message | string | The error message associated with the failed campaign. |
Response sample
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"campaign_list": [
{
"campaign_id": "{{campaign_id}}",
"status": "DISABLE"
}
],
"error_list": []
}
}
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