Get Upgraded Smart+ Campaigns
GET/smart_plus/campaign/get/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/get/
Description
Use this endpoint to retrieve Upgraded Smart+ Campaigns within an ad account.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/get/
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 |
|---|---|---|---|---|---|
| fields | query | string[] | No | Fields that you want to get.
When not specified, all fields are returned by default.
For allowed fields, see the fields under list in the Response section. | |
| page | query | integer | No | Current page number. Default value: 1. Value range: ≥ 1. | |
| page_size | query | integer | No | Page size. Default value: 10. Value range: 1-1,000. | |
| include_effective_status | query | boolean | No | Whether to include the parameter effective_status in the response.
Supported values: true, false.
Default value: false. | |
| filtering | query | object | No | Filtering conditions.
Example: filtering={"objective_type":"APP_PROMOTION"} |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/get/" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok_business/smart_plus/campaign/get/",
params={},
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/get/');
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: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
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/get/' . '?' . http_build_query([]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $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 Codes. | |
| 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. | |
| list | object[] | A list of Upgraded Smart+ Campaigns. | |
| advertiser_id | string | Advertiser ID. | |
| campaign_id | string | Campaign ID. | |
| create_time | string | The time when the campaign was created, in the format of `YYYY-MM-DD HH:MM:SS` (UTC time) | |
| modify_time | string | The time when the campaign was last modified, in the format of `YYYY-MM-DD HH:MM:SS` (UTC time) | |
| objective_type | string | Advertising objective. For enum values, see Enumeration-Advertising Objective. | |
| app_promotion_type | string | App promotion type. Enum value: - `APP_INSTALL`: App install. Get new users to install your app. - `APP_RETARGETING`: App retargeting. Re-engage existing app users to take action in your app. - `MINIS`: TikTok Mini or Series. Promote your Series, mini series, or mini game by optimizing for organic and ads traffic. | |
| sales_destination | string | Sales destination, the destination where you want to drive your sales. Enum values: - `WEBSITE`: Website. Drive sales on your website. - `APP`: App. Drive sales on your app (product catalog required). - `WEB_AND_APP`: Website and app. Drive sales on both your website and your app. | |
| campaign_type | string | Campaign type. Currently, we support `REGULAR_CAMPAIGN` and `IOS14_CAMPAIGN`. | |
| app_id | string | The App ID of the app to promote. To get a list of App IDs, use /app/list/. | |
| gaming_ad_compliance_agreement | string | Whether to agree to the Compliance Assurance Policy for Gaming Advertisers on TikTok. The policy is as follows: Yo confirms and attest that any gaming application, product or service (game) you desire to advertise on TikTok, including any associated URL(s), (a) complies with all applicable laws and regulations of the jurisdictions where the game can be accessed or played, and upon request, can provide supporting documentation as evidence of why the game is not considered illegal gambling or lottery; and (b) has not been and is not part of any investigation or lawsuit regarding the game's legality or regulatory compliance. Enum values: - `ON`: To agree to the policy. - `OFF`: To leave the policy not accepted. | |
| is_advanced_dedicated_campaign | boolean | Whether the campaign is an Advanced Dedicated Campaign. Advanced Dedicated Campaigns leverage advanced delivery models that benefit from real-time signals. Supported values: `true`, `false`. By default, Upgraded Smart+ App Campaigns with iOS 14 dedicated campaign setting enabled are all Advanced Dedicated Campaigns. | |
| disable_skan_campaign | boolean | Whether to disable SKAN (SKAdNetwork) attribution, Apple's conversion attribution solution for iOS campaigns. Enum values: - `true`: To disable SKAN attribution. The campaign will not be bound by Dedicated Campaign quota limits and you will be able to retrieve Self Attribution Network (SAN) metrics for the campaign. However, you cannot retrieve SKAN reporting metrics for the campaign. Learn more about SAN integration. - `false`: To enable SKAN attribution. The campaign will be bound by Dedicated Campaign quota limits and you will be able to retrieve SKAN metrics for the campaign. | |
| bid_align_type | string | The attribution type for the Dedicated Campaign. The type determines which attribution network the target CPA (`conversion_bid_price`) or ROAS (`roas_bid`) at the ad group level is based on. Enum values: - `SAN`: SAN. - `SKAN`: SKAN. | |
| campaign_app_profile_page_state | string | Indicates the status of the App Profile Page. Enum values: `ON`, `OFF`. | |
| is_search_campaign | boolean | Whether the campaign is a Search Ads Campaign. With Search Ads Campaigns, you set up your campaign to target ads in TikTok search results. Search Ads Campaigns reach those in your audience actively looking for products or information related to your brand. You'll use relevant keywords and search terms to help guide audiences to your ads. Supported values: `true`, `false`. | |
| catalog_enabled | boolean | Whether to use your catalog to automatically advertise relevant products or services to people based on their unique interests, intent and actions. Supported values: `true`, `false`. | |
| catalog_type | string | The type of catalog. Enum values: - `ECOMMERCE`: e-commerce - `TRAVEL_ENTERTAINMENT`: travel and entertainment. - `MINI_SERIES`: mini series. - `GENERIC`: generic. - `ONLINE_TO_OFFLINE`: online-to-offline. | |
| campaign_name | string | Campaign name. | |
| special_industries | string[] | Ad categories. Enum values: - `HOUSING`: Ads for real estate listings, homeowners insurance, mortgage loans or other related opportunities. - `EMPLOYMENT`: Ads for job offers, internships, professional certification programs or other related opportunities. - `CREDIT`: Ads for credit card offers, auto loans, long-term financing or other related opportunities. | |
| budget_optimize_on | boolean | Whether CBO is enabled. Supported value: `true` (enabled), `false` (disabled). | |
| budget_mode | string | Budget mode. - When `budget_optimize_on` is `true` or not specified, the enum values are: - `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`: Dynamic daily campaign budget. It is the average daily budget over a week. Daily costs will not exceed 125% of the average daily budget. Weekly costs will not exceed the average daily budget * 7. - `BUDGET_MODE_TOTAL`: Lifetime campaign budget. - When `budget_optimize_on` is `false`, the enum values are: - `BUDGET_MODE_INFINITE`: No limit for all ad groups under this campaign. - `BUDGET_MODE_DAY`: Daily budget limit for all ad groups under this campaign. - `BUDGET_MODE_TOTAL`: Total budget limit for all ad groups under this campaign. | |
| budget_auto_adjust_strategy | string | Returned only when the following conditions are all met: - `budget_optimize_on` is `true` or not specified. - `budget_mode` is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`. - `app_promotion_type` is not `MINIS`. The campaign budget strategy for automatic daily campaign budget. Enum values: - `AUTO_BUDGET_INCREASE`: To enable Goal-based budget increase. Allow your budget to automatically increase when your ads are performing well and target CPA, Day 0 target ROAS, and budget requirements are met. - When `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`, the specified `budget` will be the initial daily budget. Your daily budget will be allowed to automatically increase by 20%, up to 10 times per day, when your budget utilization reaches 90% or more. Your daily budget will reset to your original daily budget each day. - `UNSET`: To disable Goal-based budget increase. | |
| budget | float | - When `budget_optimize_on` is `true` or not specified, this field represents fixed campaign budget or initial campaign budget. - When `budget_auto_adjust_strategy` is `UNSET`, this field represents your fixed campaign budget. - When `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`, this field represents your initial campaign budget. To retrieve the current campaign budget, check the returned `current_budget`. - When `budget_optimize_on` is `false`, this field represents the limit for all ad groups under this campaign. - When `budget_mode` is `BUDGET_MODE_DAY`, this field represents the daily limit for all ad groups under this campaign. - When `budget_mode` is `BUDGET_MODE_TOTAL`, this field represents the total limit for all ad groups under this campaign. | |
| current_budget | float | Returned only when `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`. Current campaign budget for a campaign with Goal-based budget increase enabled. | |
| operation_status | string | Operation status. Enum values: - `ENABLE` : The campaign is enabled (in 'ON' status). - `DISABLE`: The campaign is disabled (in 'OFF' status). | |
| effective_status | string | Returned only when `effective_status` is `true` in the request. The status of the campaign. Enum values: - `UNDER_REVIEW`: Under review. - `NOT_DELIVERED`: Not delivered. - `SCHEDULED`: Scheduled. - `PARTIAL_DELIVERY`: Partial delivery. - `ACTIVE`: Active. - `ENDED`: Ended. - `PAUSED`: Paused. - `DELETED`: Deleted. | |
| secondary_status | string | Campaign secondary status. For enum values, see Enumeration- Campaign Status - Secondary Status. | |
| smart_plus_adgroup_mode | string | The ad group mode for the campaign. Enum values: - `SINGLE`: You can only create one single ad group within the campaign. - `MULTIPLE`: You can only create multiple ad groups within the campaign. | |
| 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 correspond 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 correspond 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. 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. | |
| po_number | string | PO (purchase order) number. PO numbers are useful for invoice tracking and reconciliation. Learn more about PO numbers on monthly invoices. | |
| is_promotional_campaign | boolean | Whether to use promotion campaign settings. Enable this feature to activate specialized campaign setup flows and optimization for new releases, event-driven campaigns, theatrical releases, streaming service promotions, events, or time-bound offers. Supported values: `true`, `false`. | |
| rta_id | string | Realtime API (RTA) ID, the RTA strategy identifier. | |
| rta_bid_enabled | boolean | Whether to use RTA bid. Supported values: - `true`: enabled. - `false`: not enabled. | |
| rta_product_selection_enabled | boolean | Whether to use RTA to automatically select products. Enum values: - `true`: enabled. - `false`: not enabled. | |
| page_info | object | Pagination information. | |
| page | number | Current page number. | |
| page_size | number | Page size. | |
| total_number | number | Total number of results. | |
| total_page | number | Total pages of results. |
Response sample
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"list": [
{
"advertiser_id": "{{advertiser_id}}",
"budget": {{budget}},
"budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
"budget_optimize_on": true,
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"catalog_enabled": false,
"create_time": "{{create_time}}",
"modify_time": "{{modify_time}}",
"objective_type": "LEAD_GENERATION",
"operation_status": "ENABLE",
"secondary_status": "CAMPAIGN_STATUS_ENABLE",
"smart_plus_adgroup_mode": "MULTIPLE"
},
{
"advertiser_id": "{{advertiser_id}}",
"budget": {{budget}},
"budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
"budget_optimize_on": true,
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"campaign_type": "REGULAR_CAMPAIGN",
"create_time": "{{create_time}}",
"modify_time": "{{modify_time}}",
"objective_type": "WEB_CONVERSIONS",
"operation_status": "ENABLE",
"sales_destination": "WEBSITE",
"secondary_status": "CAMPAIGN_STATUS_ENABLE",
"smart_plus_adgroup_mode": "MULTIPLE"
},
{
"advertiser_id": "{{advertiser_id}}",
"budget": {{budget}},
"budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
"budget_optimize_on": true,
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"campaign_type": "REGULAR_CAMPAIGN",
"catalog_enabled": true,
"catalog_type": "TRAVEL_ENTERTAINMENT",
"create_time": "{{create_time}}",
"modify_time": "{{modify_time}}",
"objective_type": "WEB_CONVERSIONS",
"operation_status": "ENABLE",
"sales_destination": "WEBSITE",
"secondary_status": "CAMPAIGN_STATUS_ENABLE",
"smart_plus_adgroup_mode": "MULTIPLE"
},
{
"advertiser_id": "{{advertiser_id}}",
"app_promotion_type": "APP_INSTALL",
"budget": {{budget}},
"budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
"budget_optimize_on": true,
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"campaign_type": "REGULAR_CAMPAIGN",
"create_time": "{{create_time}}",
"modify_time": "{{modify_time}}",
"objective_type": "APP_PROMOTION",
"operation_status": "ENABLE",
"secondary_status": "CAMPAIGN_STATUS_ENABLE",
"smart_plus_adgroup_mode": "SINGLE"
}
],
"page_info": {
"page": 1,
"page_size": 1000,
"total_number": 4,
"total_page": 1
}
}
}
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