Get Upgraded Smart+ Ad Groups
GET/smart_plus/adgroup/get/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/get/
Description
Use this endpoint to retrieve Upgraded Smart+ Ad Groups within an ad account.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/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 this field is not specified, all fields are returned by default.
For allowed fields, see the fields under list in the Response section. | |
| 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"} | |
| page | query | number | No | Current page number. Default value: 1. Value range: ≥ 1. | |
| page_size | query | number | No | Page size. Default value: 10. Value range: 1-1,000. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/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/adgroup/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/adgroup/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/adgroup/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 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. | |
| list | object[] | A list of Upgraded Smart+ ad groups within an ad account. | |
| advertiser_id | string | Advertiser ID. | |
| campaign_id | string | Campaign ID. | |
| campaign_name | string | The name of the campaign that the ad group belongs to. | |
| adgroup_id | string | Ad group ID. | |
| adgroup_name | string | Ad group name. | |
| operation_status | string | Operation status. Enum values: - `ENABLE` : The ad group is enabled (in 'ON' status). - `DISABLE`: The ad group is disabled (in 'OFF' status). | |
| effective_status | string | Returned only when `effective_status` is `true` in the request. The status of the ad group. 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 | Ad group secondary status. For enum values, see Enumeration- Ad group Status - Secondary Status. | |
| catalog_id | string | Returned when `catalog_enabled` is `true` at the campaign level. The ID of the catalog used in the ad group. | |
| catalog_authorized_bc_id | string | Returned when `catalog_enabled` is `true` at the campaign level. The ID of the Business Center that the catalog (`catalog_id`) belongs to. | |
| product_source | string | Product source where you want to get products for promotion. Enum value: `CATALOG` (catalog). | |
| promotion_type | string | Promotion type (Optimization location). You can decide where you'd like to promote your products using this field. Currently, we support `APP_ANDROID`, `APP_IOS`, `WEBSITE`, `MINI_GAME`, `NATIVE_SERIES`, `LEAD_GENERATION`, and `LEAD_GENERATION_MULTI_DESTINATION`. - When `objective_type` is `APP_PROMOTION` and `app_promotion_type` is `APP_INSTAL`, this field will be `APP_ANDROID` or `APP_IOS`. - When `objective_type` is `APP_PROMOTION` and `app_promotion_type` is `MINIS`, this field will be `MINI_APP`, `MINI_GAME`, or `NATIVE_SERIES`. - When `objective_type` is `WEB_CONVERSIONS`: - If `sales_destination` is `WEBSITE`, this field will be `WEBSITE`. - If `sales_destination` is `APP`, this field will be `APP_ANDROID` or `APP_IOS`. - When `objective_type` is `LEAD_GENERATION`, this field will be any of the following values: - `LEAD_GENERATION` - `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` - `LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE` - `LEAD_GEN_CLICK_TO_CALL` - `LEAD_GENERATION_MULTI_DESTINATION` | |
| optimization_locations | object[] | Returned when `promotion_type` is `LEAD_GENERATION_MULTI_DESTINATION`. A list of optimization locations for the Lead Generation ad group. To learn about the ad type where this field can be used, see Create an Upgraded Smart+ Lead Generation Campaign with multiple location selection. | |
| promotion_type | string | Promotion type (Optimization location). You can decide where you want audiences to convert or complete an action. Enum values: `LEAD_GENRATION`, `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE`. | |
| promotion_target_type | string | The optimization location for Lead Generation objective. Enum values: - `INSTANT_PAGE`: Instant Form. To create a fast-loading in-app TikTok Instant Form to collect more leads. - `EXTERNAL_WEBSITE`: Website Form. To use a landing page that has the Website Form or the TikTok Instant Page that redirects to the website with the Website Form to collect more leads. | |
| optimization_event | string | Optimization event. Enum values: - `ON_WEB_REGISTER`: Complete registration. - `CONSULT`: Contact. - `FORM`: Submit form. - `ON_WEB_SUBSCRIBE`: Subscribe. | |
| promotion_website_type | string | TikTok Instant Page type. Currently, we only support `TIKTOK_NATIVE_PAGE`(To use TikTok Instant Page). | |
| promotion_target_type | string | The optimization location for Lead Generation objective. Enum values: - `INSTANT_PAGE`: Instant Form. To create a fast-loading in-app TikTok Instant Form to collect more leads. - `EXTERNAL_WEBSITE`: Website Form. To use a landing page that has the Website Form or the TikTok Instant Page that redirects to the website with the Website Form to collect more leads. | |
| optimization_goal | string | The measurable results that you'd like to drive your ads with. For enum values, see Enumeration - Optimization Goal. | |
| 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 | Returned only in any of the following scenarios: - Scenario 1: When the following conditions are both met at the campaign level: - `objective_type` is `APP_PROMOTION`. - `app_promotion_type` is `APP_RETARGETING`. - Scenario 2: When the following conditions are all met at the campaign level: - `objective_type` is `APP_PROMOTION`. - `app_promotion_type` is `APP_INSTALL`. - `campaign_type` is `REGULAR_CAMPAIGN`. 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. | |
| pixel_id | string | Pixel ID. | |
| app_config | object[] | Returned when `sales_destination` is `WEB_AND_APP`. Details of the app or apps to promote. | |
| app_id | string | The App ID of the app to promote. | |
| minis_id | string | Returned when `promotion_type` is `MINI_APP` or `MINI_GAME`. The ID of the TikTok Mini. | |
| optimization_event | string | Conversion event for the ad group. See Conversion events for more. Note: If you enable Value-Based Optimization during ad group creation by setting your `optimization_event` to either `IMPRESSION_LEVEL_AD_REVENUE` or `AD_REVENUE_VALUE`(note that both enums are equivalent and have the exact same effect), you will always receive `IMPRESSION_LEVEL_AD_REVENUE` as the `optimization_event` in the response. | |
| custom_conversion_id | string | The ID of the Custom Conversion used in the ad group. | |
| deep_funnel_optimization_status | string | With deep funnel optimization, you can select a secondary event alongside the primary optimization event, which can help improve campaign effectiveness. Enum values: - `ON`: enabled. - `OFF`: disabled. | |
| deep_funnel_event_source | string | Returned when `deep_funnel_optimization_status` is `ON`. The event source type. Enum values: - `PIXEL`: Pixel. - `OFFLINE`: Offline Event Set. - `CRM`: CRM Event Set. | |
| deep_funnel_event_source_id | string | Returned when `deep_funnel_optimization_status` is `ON`. Event Source ID. - When `deep_funnel_event_source` is `PIXEL` , this field represents a Pixel ID. - When `deep_funnel_event_source` is `OFFLINE`, this field represents an Offline Event Set ID. - When `deep_funnel_event_source` is `CRM`, this field represents a CRM Event Set ID. | |
| deep_funnel_optimization_event | string | Returned when `deep_funnel_optimization_status` is `ON`. Deep funnel optimization event. Example: `SHOPPING`. | |
| app_attribution_source | string | Attribution source for your app. The attribution source you choose will be used for optimization, bidding, and reporting. Enum values: - `MMP`: MMP (mobile measurement partner) attribution. Signals from your selected MMP will be used for attribution. - `SAN`: SAN (self-attribution network) attribution. Signals from TikTok SAN will be used for attribution. | |
| app_data_source | string | Data source for your app. The attribution signals you select will be used for reporting. Enum values: - `MMP`: MMP signals. Signals from your MMP will be used for reporting. - `EVENT_SDK`: App Events SDK signals. Signals from TikTok App Events SDK will be used for reporting. - `EVENT_API`: Events API signals. Signals from TikTok Events API will be used for reporting. | |
| identity_id | string | Returned only in any of the following scenarios: - Scenario 1: When `promotion_type` is `NATIVE_SERIES`. - Scenario 2: When `promotion_type` is `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads. Identity ID. | |
| identity_type | string | Returned only in any of the following scenarios: - Scenario 1: When `promotion_type` is `NATIVE_SERIES`. - Scenario 2: When `promotion_type` is `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads. Identity type. Enum values: - `TT_USER` : TikTok Business Account User. - `BC_AUTH_TT`: The TikTok account that a Business Center is authorized to access. See Identities for details. | |
| identity_authorized_bc_id | string | Returned when `identity_type` is `BC_AUTH_TT`. ID of the Business Center that a TikTok Account User in Business Center identity is associated with. | |
| native_series_id | string | The ID of a TikTok Series. Series offers exclusive and premium video packages produced by creators. Access to Series is available to purchase through the creator's profile and links attached to TikTok videos. | |
| messaging_app_type | string | The type of instant messaging app or customized URL to use in the Instant Messaging Ad Group. Enum values: - `MESSENGER`: Messenger. - `WHATSAPP`: WhatsApp. - `ZALO`: Zalo. - `LINE`: Line. - `IM_URL`: Instant Messaging URL. To learn more about how to create Upgraded Smart+ TikTok Instant Messaging Ads, see Create an Upgraded Smart+ Lead Generation Campaign with optimization location as instant messaging apps. | |
| zalo_id_type | string | The type of Zalo contact format. Enum values: - `ZALO_OFFICIAL_ACCOUNT`: Zalo Official Account ID. - `ZALO_PHONE_ACCOUNT`: Zalo phone number. | |
| messaging_app_account_id | string | The ID of the instant messaging app account. - When `messaging_app_type` is `MESSENGER`, this field represents the Facebook Page ID. - When `messaging_app_type` is `LINE`, this field represents the LINE Business ID. - When `zalo_id_type` is `ZALO_OFFICIAL_ACCOUNT`, this field represents the Zalo Official Account ID. - When `messaging_app_type` is `WHATSAPP` or when `zalo_id_type` is `ZALO_PHONE_ACCOUNT`, this field represents the WhatsApp or Zalo phone number automatically populated based on the specified `phone_info`. | |
| message_event_set_id | string | The ID of the message event set to be used in the Instant Messaging Ad Group. If the instant messaging app account, either the Messenger account or Zalo Official Account specified via `messaging_app_account_id` or the WhatsApp or Zalo phone account matched from the specified `phone_info`, in your ad group settings matches an existing event set, this field will be automatically populated with the unique message event set associated with the instant messaging app account you choose. | |
| phone_info | object | Details of WhatsApp or Zalo phone number. | |
| phone_region_code | string | The region code for WhatsApp or Zalo phone number. Example: `US`. | |
| phone_region_calling_code | string | The region calling code for the WhatsApp or Zalo phone number. Example: `+1`. | |
| phone_number | string | The WhatsApp or Zalo phone number. | |
| bid_type | string | Bidding strategy. For enum values and their descriptions, see Enumeration - Bidding Strategy. | |
| bid_price | float | The target cost per click. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount. | |
| conversion_bid_price | float | The target cost per conversion or cost per landing page view. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount. | |
| deep_bid_type | string | Bidding strategy for in-app events. For enum values and their descriptions, see Enumeration - Deep Event Bidding Strategy. | |
| roas_bid | float | Target ROAS for Value-Based Optimization. | |
| value_rule_set_id | string | ID of the value rule set associated with the ad group. | |
| incentive_offer_type | string | The type of incentive offer applicable to the Upgraded Smart+ Ad Group. If your ad group meets the eligibility criteria and exceeds certain CPA or Minimum ROAS/Target ROAS thresholds, you will be incentivized with ad credits to use within the same ad account. To learn more about the incentive offer eligibility criteria and the calculation of incentive amount, see Smart+ Platform Incentive Offer (Cost Cap/Minimum ROAS/Target ROAS). Enum values: - `INELIGIBLE`: The ad group is ineligible for any incentive offer. - `COST_CAP_AND_MIN_ROAS`: The ad group uses the Cost Cap or Minimum ROAS/Target ROAS bidding strategy and is eligible for the incentive offer. - To check the bid protection (incentive offer) eligibility for a list of Upgraded Smart+ Campaigns or Upgraded Smart+ Ad Groups, use /report/bid_protection/status/get/. - To retrieve the bid protection history and ad credit from the past 60 days for a list of Upgraded Smart+ Campaigns or Upgraded Smart+ Ad Groups, use /report/bid_protection/detail/get/. | |
| vbo_window | string | The time window of the specified bidding strategy for VBO IAA (Value-Based Optimization for in-app advertising) or VBO IAP (Value-Based Optimization for in-app purchase). Enum values: - `SEVEN_DAYS`: The first seven days (day 7). - `ZERO_DAY`: The current day (day 0). | |
| click_attribution_window | string | Click-through window. This attribution window is the time between when a person clicks your ad and then takes an action. Enum values: - `OFF`: Off. - `ONE_DAY`: 1-day click. - `SEVEN_DAYS`: 7-day click. - `FOURTEEN_DAYS`: 14-day click. - `TWENTY_EIGHT_DAYS`: 28-day click. - `THIRTY_DAYS`: 30-day click. - `THIRTY_TWO_DAYS`: 32-day click. - `ONE_HUNDRED_EIGHTY_DAYS`: 180-day click. | |
| engaged_view_attribution_window | string | Engaged view-through window. This attribution window is the time after someone watches at least 6 seconds of your video ad that a conversion is counted. Enum values: - `OFF`: off. - `ONE_DAY`: 1-day engaged view. - `SEVEN_DAYS`: 7-day engaged view. - `FOURTEEN_DAYS`: 14-day engaged view. - `TWENTY_EIGHT_DAYS`: 28-day engaged view. | |
| view_attribution_window | string | View-through window. This attribution window is the time between when a person views your ad and then takes an action. Enum values: - `OFF`: Off. - `ONE_DAY`: 1-day view. - `SEVEN_DAYS`: 7-day view. | |
| attribution_event_count | string | Event count (Statistic type). The way that people's actions are counted after only viewing or clicking an ad. Enum values: - `UNSET`: Unset. - `EVERY`: Every. To count multiple events from someone as separate conversions. - `ONCE`: Once. To count multiple events from someone as 1 conversion. | |
| billing_event | string | Billing event. For enum values, see Enumerations - Billing event. | |
| pacing | string | Delivery type. Your choice of ad delivery type determines the speed at which your daily budget is used. Enum values: - `PACING_MODE_SMOOTH`: Standard. Your budget will be used as evenly as possible depending on market demand and peaktime rates. This delivery type is suitable for advertisers who prefer steady spending. | |
| automated_keywords_enabled | boolean | Whether to enable automated keywords and let the system find relevant keywords to expand reach and improve results. Supported values: `true`, `false`. | |
| search_keywords | object[] | Returned only for Search Ads Campaigns. A list of search keywords, that is, words or phrases that are used to match your ads with the terms people are searching for. | |
| keyword | string | The search keyword. | |
| match_type | string | The match type for the search keyword. Enum values: - `PRECISE_WORD`: exact match. Ads only show when a search includes the exact phrase or close variations, with additional words allowed before or after. - `PHRASE_WORD`: phrase match. Ads only show when a search exactly matches your keyword or a very close variation. - `BROAD_WORD`: broad match. Ads are shown for a wide range of relevant searches to offer the widest reach. | |
| audit_status | string | The review status of the search keyword. Enum values: - `AUDITING`: The keyword is under review. - `PASS`: The keyword has passed review and can be delivered. - `REJECTED`: The keyword failed to pass the review and cannot be delivered. | |
| reject_info | object[] | Returned only when `audit_status` is `REJECTED`. Details about the rejection. | |
| forbidden_location | string | The targeted region that failed the review. For enum values, see Appendix - Location codes. | |
| reject_reasons | object[] | List of rejection reasons. | |
| reason | string | The rejection reason. | |
| budget_mode | string | Ad group budget mode. Enum values: - `BUDGET_MODE_TOTAL`: Lifetime budget. - `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`: Dynamic daily 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_auto_adjust_strategy | string | Returned only when the following conditions are both met: - At the campaign level: `budget_optimize_on` is `false`. - At the ad group level: `budget_mode` is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`. The ad group budget strategy for custom ad group budget. Enum values: - `AUTO_BUDGET_INCREASE`: To enable Goal-based udget 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 | Fixed ad group budget or initial ad group budget. - When `budget_auto_adjust_strategy` is `UNSET`, this field represents your fixed ad group budget. - When `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`, this field represents your initial ad group budget. To retrieve the current campaign budget, check the returned `current_budget`. | |
| current_budget | float | Returned only when `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`. Current ad group budget for an ad group with Goal-based budget increase enabled. | |
| min_budget | float | Ad group minimum budget. The system will aim to spend at least this amount, but it is not guaranteed. | |
| schedule_type | string | Schedule type. Enum values: - `SCHEDULE_FROM_NOW`: To run the ad group continuously after the scheduled start time. - `SCHEDULE_START_END`: To run the ad group between the scheduled start time and end time. | |
| schedule_start_time | string | Ad group delivery start time, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| schedule_end_time | string | Ad group delivery end time, in the format of`YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| movie_premiere_date | string | The theatrical release date, in the format of `YYYY-MM-DD` (UTC+0). Providing the movie release date allows the system to incorporate this timing into performance enhancements. | |
| dayparting | string | Ad delivery arrangement, in the format of a string that consists of 48 x 7 characters. Each character is mapped to a 30-minute timeframe from Monday to Sunday. Each character can be set to either 0 or 1. 1 represents delivery in the 30-minute timeframe, and 0 stands for non-delivery in the 30-minute timeframe. The first character is mapped to 0:01-0:30 of Monday; The second character is mapped to 0:31-1:00 of Monday, and the last character represents 23:31-0:00 Sunday. Note: All-0 and all-1 values are considered full-time delivery. | |
| targeting_optimization_mode | string | Audience targeting optimization mode. Enum values: - `MANUAL`: Custom targeting. You can use custom targeting settings to precisely control who sees your ads. This may limit delivery and impact campaign performance. - `AUTOMATIC`: Automatic targeting. You can use automatic targeting to leverage real-time data and machine learning to target audiences most likely to engage with your ads. | |
| suggestion_audience_enabled | boolean | Whether to enable audience suggestions. Audience suggestions guide automatic targeting by choosing additional audience settings. These serve as suggestions only, and delivery to those audiences is not guaranteed. Supported values: `true`, `false`. | |
| targeting_spec | object | Targeting settings. | |
| app_targeting_type | string | Returned only when the following conditions are all met: - At the campaign level: - `objective_type` is `WEB_CONVERSIONS` - `sales_destination` is `APP`. - `optimization_goal` is `CLICK`, `IN_APP_EVENT`, or `VALUE`. App targeting type. Enum values: - `PROSPECT`: Prospecting. Find prospective customers, including those who have not interacted with your products. - `RETARGETING`: Retargeting. Show ads to people who have already interacted with your business on and off TikTok. | |
| location_ids | string[] | IDs of the locations that you want to target. | |
| zipcode_ids | string[] | Zip code IDs or postal code IDs of the targeted locations. | |
| spc_audience_age | string | The age group that the ad group targets. Enum values: - `ALL`: all age groups. - `OVER_EIGHTEEN`: 18+. - `OVER_TWENTY_FIVE`: 25+. | |
| languages | string[] | Codes of the languages that you want to target. For the list of language codes supported, see Enumerations - Language Code. | |
| operating_systems | string[] | Device operating systems that you want to target. Enum values: `ANDROID`, `IOS` | |
| excluded_audience_ids | string[] | List of audience IDs to be excluded. | |
| age_groups | string[] | Age groups you want to target. For enum values, see Enumeration - Age Group. | |
| gender | string | Gender that you want to target. Enum values: `GENDER_FEMALE`, `GENDER_MALE`, `GENDER_UNLIMITED`. | |
| audience_ids | string[] | A list of audience IDs. | |
| shopping_ads_retargeting_type | string | The retargeting type. Enum values: - `LAB1`: Retargeting audiences who viewed products or added products to cart but didn't purchase products. - `LAB2`: Retargeting audiences who added products to cart but didn't purchase products. - `LAB3`: Retargeting audiences using custom combination. - `OFF`: No retargeting. | |
| shopping_ads_retargeting_actions_days | number | Returned when `shopping_ads_retargeting_type` is `LAB1` or `LAB2`. The valid time range for the specified audience action. Audiences who have completed the specified action within the time range will be retargeted. | |
| included_custom_actions | object[] | Details of the catalog audience to include. Catalog audience is based on people's interactions with specific products and often drives better performance than custom audience. | |
| code | string | The custom action used to filter the audiences to be retargeted. Enum values: - `VIEW_PRODUCT`: The audience viewed the product. - `ADD_TO_CART`: The audience added the product to the cart. - `PURCHASE`: The audience purchased the product. | |
| days | integer | The time range used to filter the audiences that completed the specified action. | |
| excluded_custom_actions | object[] | Details of the catalog audience to exclude. Improve ad performance by excluding products that people have already interacted with, ensuring they only see relevant ads from your brand. | |
| code | string | The custom action used to filter out the audiences. Enum values: - `VIEW_PRODUCT`: The audience viewed the product. - `ADD_TO_CART`: The audience added the product to the cart. - `PURCHASE`: The audience purchased the product. | |
| days | integer | The time range used to filter out the audiences that completed the specified action. | |
| shopping_ads_retargeting_custom_audience_relation | string | The logical relation between the retargeting audience specified by `shopping_ads_retargeting_type` and the custom audience specified by `audience_ids`. Enum values: - `OR`: To combine the retargeting audience and the custom audience to create the targeted audience. The ad group will target anyone in catalog or custom audiences. - `AND`: To intersect between the retargeting audience and the custom audience to create the targeted audience. The ad group will target individuals who belong to both the retargeting audience and the custom audience. | |
| included_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to include. | |
| excluded_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to exclude. | |
| interest_category_ids | string[] | IDs of general interest keywords that you want to use to target audiences. | |
| interest_keyword_ids | string[] | IDs of additional interest categories that you want to use to target audience. To search for additional interest categories, use /targeting/search/ (recommended) or /tool/interest_keyword/recommend/. | |
| purchase_intention_keyword_ids | string[] | IDs of purchase intention categories that you want to use to target audiences with an interest in purchases related to a content category. | |
| actions | object[] | A list of targeting behavioral category objects. | |
| action_scene | string | The type of user behavior that you want to target. Enum values: - `VIDEO_RELATED`: Video interactions. - `CREATOR_RELATED`: Creator interactions. - `HASHTAG_RELATED`: Hashtag interactions. | |
| action_period | number | The time period to include behaviors from. | |
| video_user_actions | string[] | The specific user interactions that you want to target for the user behavior type. - If `action_scene` is `VIDEO_RELATED`, the allowed values are: `WATCHED_TO_END`,`LIKED`,`COMMENTED`,`SHARED`. - If `action_scene` is `CREATOR_RELATED`, the allowed values are: `FOLLOWING`, `VIEW_HOMEPAGE`. - If `action_scene` is `HASHTAG_RELATED`, the allowed value is `VIEW_HASHTAG`. | |
| action_category_ids | string[] | IDs of the video interactions categories, creator interactions categories, hashtags, or hashtag bundles that you want to use to target audiences. | |
| smart_interest_behavior_enabled | boolean | Whether Smart interests & behaviors is turned on. Supported values: `true`, `false`. To learn more about Smart interests & behaviors and how to turn on Smart interests & behaviors, see Smart Targeting. | |
| smart_audience_enabled | boolean | Whether to turn on Smart audience. Supported values: `true`, `false`. To learn more about Smart audience and how to turn on Smart audience, see Smart Targeting. | |
| spending_power | string | Spending power that you want to target. Enum values: `ALL`, `HIGH`. If it is set to `HIGH`, you can target high spending users who typically spend more on purchases on TikTok ads than average users. | |
| household_income | string[] | Household income that you want to target. Enum values: `TOP5`(Top 5% of ZIP codes), `TOP10`(Top 10% of ZIP codes), `TOP10_25`(Top 10% -25% of ZIP codes), `TOP25_50`(Top 25% - 50% of ZIP codes). | |
| min_android_version | string | Minimum Android version. For enum values, see Enumeration - Minimum Android Version. | |
| min_ios_version | string | Audience minimum ios version. For enum values, see Enumeration - Minimum iOS Version. | |
| device_model_ids | string[] | List of device model IDs. | |
| network_types | string[] | Network types that you want to target. For enum values, see Enumeration - Connection Type. | |
| carrier_ids | string[] | Carriers that you want to target. | |
| isp_ids | string[] | IDs of the targeted Internet service providers. | |
| device_price_ranges | number[] | Targeting device price range. 10000 means 1000+. The numbers must be in multiples of 50. Important: The upper limit you set will be added by 50 and the resulting new number will be used as the actual upper limit for device targeting. The actual upper limit is shown in the ad group settings in TikTok Ads Manager. If you set and get the price range of [0, 250], it actually means [0, 300]. | |
| saved_audience_id | string | Returned when you have specified `saved_audience_id` when creating an ad group. Saved Audience ID. | |
| blocked_pangle_app_ids | string[] | Pangle app block ID list. | |
| brand_safety_type | string | Inventory filter tier for the Smart+ Campaign. Enum values: - `EXPANDED_INVENTORY`: Expanded inventory. Your ads will not appear next to explicitly inappropriate content, but they may appear next to content that features mature themes. - `STANDARD_INVENTORY`: Standard inventory. Your ads will appear next to content that is appropriate for most brands. - `LIMITED_INVENTORY`: Limited inventory. Your ads will not appear next to content that contains mature themes. - `NO_BRAND_SAFETY`: Full inventory without using any brand safety solution, which means your ads may appear next to some content featuring mature themes. Note: The setting is automatically applied based on your Brand Safety Hub configurations. To retrieve the details of such settings for your ad account, use /tiktok_inventory_filters/get/. | |
| category_exclusion_ids | string[] | Content exclusion category IDs. | |
| is_hfss | boolean | Whether the promoted content is HFSS (High Fat, Salt, Sugar) Product/Brand. Supported values: `true`, `false`. | |
| is_lhf_compliance | boolean | Whether the promoted content complies with LHF (Less Healthy Foods) regulations. When `is_lhf_compliance` is `true`, you confirm that any food or drink products you advertise on TikTok in the UK comply with the 2024 Less Healthy Foods Regulations and all other applicable laws. Supported values: `true`, `false`. | |
| placement_type | string[] | The placement strategy that decides where your ads will be shown. Enum values: - `PLACEMENT_TYPE_AUTOMATIC`: Automatic placement. - `PLACEMENT_TYPE_NORMAL` : Select placement. | |
| placements | string[] | The apps where you want to deliver your ads. Enum values: - `PLACEMENT_TIKTOK`: TikTok. - `PLACEMENT_PANGLE`: Pangle. - `PLACEMENT_GLOBAL_APP_BUNDLE`: Global App Bundle. | |
| tiktok_subplacements | string[] | The subplacements within TikTok for your ads, allowing you to choose where your ads will appear. Enum values: - `LEMON8`: Lemon8, a community app for lifestyle content, focusing on real-life experiences, tips, guides, and product reviews. By including Lemon8 as a subplacement, your ads will appear in its For You feed, Search feed, and Immersive Video feed. Learn more about Lemon8 for Performance Auction. - `PINE_DRAMA`: PineDrama, an app for watching short-form dramas. Ads will be placed on recommendation pages, within episode streams, and more. Learn more about PineDrama for Performance Auction. | |
| search_result_enabled | boolean | Whether to include your ads in Search Ads, namely to show your ads to users when they search for your business on TikTok. Supported values: `true`, `false`. | |
| comment_disabled | boolean | Whether to allow comments on your ads on TikTok. Supported values: `true`, `false`. | |
| share_disabled | boolean | Whether to disable sharing of the campaign to third-party platforms. Supported values: `true`, `false`. | |
| video_download_disabled | boolean | Whether users can download your video ads on TikTok. Supported values: `true`, `false`. | |
| skip_learning_phase | boolean | Whether to skip the learning stage. Supported value: `true`. | |
| create_time | string | The time when the ad group was created, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). Example: `2025-01-01 00:00:01`. | |
| modify_time | string | The time when the ad group was last modified, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). Example: `2025-01-01 00:00:01`. | |
| 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": [
{
"adgroup_id": "{{adgroup_id}}",
"adgroup_name": "{{adgroup_name}}",
"advertiser_id": "{{advertiser_id}}",
"bid_type": "BID_TYPE_NO_BID",
"billing_event": "CPC",
"budget": 0,
"budget_mode": "BUDGET_MODE_INFINITE",
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"catalog_authorized_bc_id": "{{catalog_authorized_bc_id}}",
"catalog_id": "{{catalog_id}}",
"comment_disabled": false,
"conversion_bid_price": 0,
"create_time": "{{create_time}}",
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"modify_time": "{{modify_time}}",
"operation_status": "ENABLE",
"optimization_goal": "CLICK",
"pacing": "PACING_MODE_SMOOTH",
"placement_type": "PLACEMENT_TYPE_AUTOMATIC",
"placements": [
"PLACEMENT_TIKTOK"
],
"product_source": "CATALOG",
"promotion_type": "WEBSITE",
"promotion_website_type": "UNSET",
"schedule_end_time": "{{schedule_end_time}}",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_type": "SCHEDULE_START_END",
"search_result_enabled": true,
"secondary_status": "ADGROUP_STATUS_TIME_DONE",
"share_disabled": false,
"targeting_optimization_mode": "AUTOMATIC",
"targeting_spec": {
"age_groups": [
"AGE_18_24",
"AGE_25_34",
"AGE_35_44",
"AGE_45_54",
"AGE_55_100"
],
"brand_safety_type": "EXPANDED_INVENTORY",
"gender": "GENDER_UNLIMITED",
"location_ids": [
"3686110"
],
"spc_audience_age": "OVER_EIGHTEEN",
"spending_power": "ALL"
},
"video_download_disabled": false
},
{
"adgroup_id": "{{adgroup_id}}",
"adgroup_name": "{{adgroup_name}}",
"advertiser_id": "{{advertiser_id}}",
"attribution_event_count": "EVERY",
"bid_type": "BID_TYPE_NO_BID",
"billing_event": "OCPM",
"budget": 0,
"budget_mode": "BUDGET_MODE_INFINITE",
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"catalog_authorized_bc_id": "{{catalog_authorized_bc_id}}",
"catalog_id": "{{catalog_id}}",
"click_attribution_window": "SEVEN_DAYS",
"comment_disabled": false,
"conversion_bid_price": 0,
"create_time": "{{create_time}}",
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"modify_time": "{{modify_time}}",
"operation_status": "ENABLE",
"optimization_event": "ADD_BILLING",
"optimization_goal": "CONVERT",
"pacing": "PACING_MODE_SMOOTH",
"pixel_id": "{{pixel_id}}",
"placement_type": "PLACEMENT_TYPE_AUTOMATIC",
"placements": [
"PLACEMENT_TIKTOK"
],
"product_source": "CATALOG",
"promotion_type": "WEBSITE",
"promotion_website_type": "UNSET",
"schedule_end_time": "{{schedule_end_time}}",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_type": "SCHEDULE_START_END",
"search_result_enabled": true,
"secondary_status": "ADGROUP_STATUS_TIME_DONE",
"share_disabled": false,
"skip_learning_phase": true,
"targeting_optimization_mode": "AUTOMATIC",
"targeting_spec": {
"age_groups": [
"AGE_18_24",
"AGE_25_34",
"AGE_35_44",
"AGE_45_54",
"AGE_55_100"
],
"brand_safety_type": "EXPANDED_INVENTORY",
"gender": "GENDER_UNLIMITED",
"location_ids": [
"6252001"
],
"spc_audience_age": "OVER_EIGHTEEN",
"spending_power": "ALL"
},
"video_download_disabled": false,
"view_attribution_window": "ONE_DAY"
},
{
"adgroup_id": "{{adgroup_id}}",
"adgroup_name": "{{adgroup_name}}",
"advertiser_id": "{{advertiser_id}}",
"app_id": "{{app_id}}",
"attribution_event_count": "EVERY",
"bid_type": "BID_TYPE_NO_BID",
"billing_event": "O
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