Get ad groups
Use this endpoint to obtain detailed information of an ad group or ad groups.
The returned information from this query can be customized by specifying the information needed in the fields field of the request. Use the filtering field to specify which ad group is returned. Supported filters include campaign ID, advertising objective , ad group ID, ad group name, ad group creation time, billing event, and the ad group status.
> Note
If you wish to include deleted data in your query, either specify the value of STATUS_DELETE in the primary_status field or ADGROUP_STATUS_DELETE /ADGROUP_STATUS_CAMPAIGN_DELETE in the secondary_status field. By default deleted data is not queried.
Request
Endpoint
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. | |
| exclude_field_types_in_response | query | string[] | No | The type of fields that you want to remove from the response.
Allowed enum values:
- NULL_FIELD: Fields with null values. | |
| filtering | query | object | No | Filter conditions. Set these conditions according to your requirements. If not set, all ad groups under the advertiser will be returned.
Example: filtering={"campaign_automation_type":"UPGRADED_SMART_PLUS"} | |
| page | query | number | No | Current page number. Default value: 1. Value range: ≥ 1. | |
| page_size | query | number | No | Page size.
Default value is: 10. Value range: 1-1,000.
Note: If you use the enum value RESERVATION_TOP_VIEW for the filter field buying_types, the maximum value you can specify for this field is 100. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok_business/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/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/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/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 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. The returned list is sorted by ad group ID (`adgroup_id`) in reverse order by default. Note: The data for Product GMV max ads and LIVE GMV max ads created from TikTok Shop is excluded from the response. Shopping Ads created via API or TikTok Ads Manager are not affected. | |
| list | object[] | Data list. The returned fields are generated based on the `fields` field in the request parameters. If not specified in the request, all fields are returned by default. | |
| advertiser_id | string | Advertiser ID | |
| campaign_id | string | Campaign ID | |
| campaign_name | string | The name of the campaign that the ad group belongs to. | |
| campaign_system_origin | string | Returned for Promote ad groups only. Not returned for non-Promote ad groups. The origin (source) of the campaign that the ad group belongs to. Enum values: - `PROMOTE`: The campaign is a Promote campaign created through the TikTok mobile App. Only the following settings can be retrieved for a Promote ad group (`campaign_system_origin` is `PROMOTE` at the campaign level): - `advertiser_id` - `campaign_id` - `campaign_name` - `adgroup_id` - `adgroup_name` - `create_time` - `budget` - `schedule_type` - `schedule_start_time` - `schedule_end_time` - `operation_status` - `secondary_status` | |
| campaign_automation_type | string | Campaign automation type. Enum values: - `MANUAL`: Manual Campaigns. - `SMART_PLUS`: Smart+ Campaigns. - `UPGRADED_SMART_PLUS`: Upgraded Smart+ Campaigns, a new automated campaign type. To learn more about Upgraded Smart+ Campaigns, see Upgraded Smart+ Campaign. | |
| is_smart_performance_campaign | boolean | Whether the campaign is an automated campaign type. Supported values: - `true`: The campaign is a legacy Smart+ Campaign. - `false`: The campaign is a Manual Campaign or an Upgraded Smart+ Campaign. - To determine whether a campaign is a Manual Campaign or an Upgraded Smart+ Campaign, check the returned `campaign_automation_type`. - When `campaign_automation_type` is `MANUAL`, the campaign is a Manual Campaign. - When `campaign_automation_type` is `UPGRADED_SMART_PLUS`, the campaign is an Upgraded Smart+ Campaign . | |
| adgroup_id | string | Ad group ID | |
| adgroup_name | string | Ad group name | |
| create_time | string | The time at which the ad group was created, in the format of `"YYYY-MM-DD HH:MM:SS"`. Example: `"2023-01-01 00:00:01"`. | |
| modify_time | string | The time at which the ad group was modified, in the format of `"YYYY-MM-DD HH:MM:SS"`. Example: `"2023-01-01 00:00:01"`. | |
| shopping_ads_type | string | Returned when `objective_type` at the campaign level is `PRODUCT_SALES`. Shopping ads type. Enum values: - `VIDEO`: Video Shopping Ads. - `LIVE`: Live Shopping Ads. - `PRODUCT_SHOPPING_ADS`: Product Shopping Ads. - `CATALOG_LISTING_ADS`: Catalog Listing Ads. - `UNSET`: Unset. | |
| identity_id | string | Returned when `shopping_ads_type` is `VIDEO` and `product_source` is `SHOWCASE` or `shopping_ads_type` is `LIVE`. Identity ID. | |
| identity_type | string | Returned when `shopping_ads_type` is `VIDEO` and `product_source` is `SHOWCASE` or `shopping_ads_type` is `LIVE`. Identity type. Enum values: `AUTH_CODE` (Authorized Post User), `TT_USER` (TikTok Business Account User), `BC_AUTH_TT`(the TikTok account that a Business Center is authorized to access). Returned when `objective_type` is `PRODUCT_SALES`. 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. | |
| product_source | string | Returned for Video Shopping Ads and Product Shopping Ads. Product source where you want to get products for promotion. Enum values: `UNSET` ,`CATALOG`(Catalog), `STORE` (TikTok Shop) ,`SHOWCASE`(TikTok Showcase). | |
| catalog_id | string | Returned in any of the following scenarios: - `product_source` is `CATALOG` or `STORE`. - `shopping_ads_type` is `LIVE` and this field is specified in the request. Catalog ID. Note: Starting June 30th, 2024, `catalog_id` will no longer be returned for newly created Shopping Ads where `product_source` is `STORE` because the specified `catalog_id` will be ignored. Existing Shopping Ads where `product_source` is `STORE` will not be affected unless you update them. If you update the existing ad groups, the existing `catalog_id`, if present for the ad groups, will no longer be returned. | |
| catalog_authorized_bc_id | string | Returned in any of the following scenarios: - `shopping_ads_type` is `VIDEO` and `product_source` is `CATALOG` or `STORE`. - `shopping_ads_type` is `LIVE` and this field is specified in the request. For catalogs in Business Center, this field returns the ID of the Business Center that a catalog belongs to. Note: Starting June 30th, 2024, `catalog_authorized_bc_id` will no longer be returned for newly created Shopping Ads where `product_source` is `STORE` because the specified `catalog_authorized_bc_id` will be ignored. Existing Shopping Ads where `product_source` is `STORE` will not be affected unless you update them. If you update the existing ad groups, the existing `catalog_authorized_bc_id`, if present for the ad groups, will no longer be returned. | |
| store_id | string | Returned in any of the following scenarios: - `shopping_ads_type` is `VIDEO` and `product_source` is `STORE`. - `shopping_ads_type` is `PRODUCT_SHOPPING_ADS` and `product_source` is `STORE`. - `shopping_ads_type` is `LIVE` and this field is specified in the request. ID of the TikTok Shop. | |
| store_authorized_bc_id | string | Returned when `store_id` is passed. ID of the Business Center that is authorized to access the store (`store_id`). | |
| promotion_type | string | Promotion type (Optimization location). You can decide where you'd like to promote your products using this field. For value definitions, see Enumeration - Promotion Type. | |
| promotion_target_type | string | The promotion type 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. - `UNSET`. | |
| 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. | |
| 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 `messaging_app_type` is `WHATSAPP`, this field represents the WhatsApp phone number automatically populated based on the specified `phone_region_code`, `phone_region_calling_code`, and `phone_number`. | |
| phone_region_code | string | The region code for the 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. | |
| promotion_website_type | string | TikTok Instant Page type in the ad group. Enum values: - `UNSET`: To not use TikTok Instant Page. - `TIKTOK_NATIVE_PAGE`: To use TikTok Instant Page. | |
| app_id | string | The App ID of the app to promote.You can get `app_id` by using the /app/list/ endpoint. | |
| app_type | string | The type of the promoted app. Enum values: `APP_ANDROID` (Android), `APP_IOS` (iOS). | |
| app_download_url | string | App download link | |
| pixel_id | string | Pixel ID. Only applicable for landing pages. | |
| optimization_event | string | Conversion event for the ad group. See Conversion events for more. | |
| custom_conversion_id | string | The ID of the Custom Conversion used in the ad group. | |
| app_config | object[] | Returned when `sales_destination` is `WEB_AND_APP` at the campaign level. Details of the app or apps to promote. | |
| app_id | string | The App ID of the app to promote. | |
| deep_funnel_optimization_status | string | The status of deep funnel optimization. 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`. | |
| 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. For enum values, see Enumeration - Placement. Note: - If `placement_type` of the ad group is `PLACEMENT_TYPE_AUTOMATIC` (Automatic placement), the placements supported for your advertising objective will be returned for this field. For instance, if the actual supported placement is TikTok only, the returned value for this field will be `PLACEMENT_TIKTOK`. - However, if `PLACEMENT_GLOBAL_APP_BUNDLE` is supported for your objective, but you are not allowlisted for the Global App Bundle placement feature, `PLACEMENT_GLOBAL_APP_BUNDLE` will not be included in the returned value for this field. - If `placement_type` of the ad group is `PLACEMENT_TYPE_NORMAL` (Select placement), the placements you specified through `placements` in the request will usually be returned for this field. - The only exception is that if `PLACEMENT_GLOBAL_APP_BUNDLE` is specified through `placements` in the request, but you are not allowlisted for the Global App Bundle placement feature, `PLACEMENT_GLOBAL_APP_BUNDLE` will be filtered out from the returned value for this field. For instance, if you specify placements as `["PLACEMENT_TIKTOK", "PLACEMENT_GLOBAL_APP_BUNDLE"]` in the request, but you are not allowlisted for Global App Bundle, the returned value for this field will be `["PLACEMENT_TIKTOK"]`. | |
| tiktok_subplacements | string[] | The subplacements within TikTok for your ads, allowing you to choose where your ads will appear. Enum value: - `IN_FEED`: In-feed. Ads will be placed in the For You feed and might also be placed in Profile Page and Following feeds. - `SEARCH_FEED`: Search feed. - `TIKTOK_LITE`: TikTok Lite, a streamlined version of TikTok that features a smaller app size and faster video loading speed. The TikTok Lite subplacement is currently available for Japan or South Korea as targeting locations. - `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. Note: If `tiktok_subplacements` is not specified when you create the ad group, the value of this field will be an empty list (`[]`). | |
| 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. | |
| automated_keywords_enabled | boolean | Whether to enable automated keywords and let the system automatically generate keywords after you add ads. This expands high-quality traffic to improve performance. View high-performing automated keywords in reporting. 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. Your ads will only show for user search queries that exactly match these keywords. - `PHRASE_WORD`: phrase match. Your ads will only show for these specific keywords if users search these keywords in the same order. - `BROAD_WORD`: broad match. Your ads will show for user search queries for any of the words you have included, even if the words are in a different order. | |
| keyword_bid_type | string | The bid type for the keyword and match type combination. Enum values: - `FOLLOW_ADGROUP`: To use the ad group level bid (`bid_price`) as the `keyword_bid`. - `CUSTOM`: To customize the bid via `keyword_bid`. | |
| keyword_bid | float | The bid price for the keyword and match type combination. | |
| 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. | |
| comment_disabled | boolean | Whether to disable comments on ads in the ad group. Supported values: `true`, `false`. | |
| video_download_disabled | boolean | Whether to disable downloading videos from ads in the ad group. Supported values: `true`, `false`. | |
| share_disabled | boolean | Whether to disable sharing of ads in the ad group to third-party platforms. Supported values: `true`, `false`. | |
| blocked_pangle_app_ids | string[] | Pangle app block list ID. | |
| audience_type | string | App retargeting audience type. For enum values, see Enumeration - App Retargeting Audience Type. | |
| audience_rule | object | Rules that specify your audience. | |
| auto_targeting_enabled | boolean | Whether to enable automated targeting. Note: Starting June, 2024, you can no longer enable Automatic targeting or Targeting expansion for your ad groups. To ensure a smooth API integration, we recommend you migrate to Smart Targeting. | |
| shopping_ads_retargeting_type | string | Returned when `shopping_ads_type` is `VIDEO` and `product_source` is `CATALOG`. The retargeting type of shopping ads. 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. - `RTA_RETARGETING`: Retargeting for Realtime API (RTA). - When `objective_type` is `PRODUCT_SALES` and `rta_id` is specified at campaign level and you set `shopping_ads_retargeting_type` to `LAB1`,`LAB2`, or `LAB3`, `shopping_ads_retargeting_type` will be overwritten to `RTA_RETARGETING`. | |
| shopping_ads_retargeting_actions_days | number | The valid time range for the specified audience action. Audiences who have completed the specified action within the time range will be retargeted by the shopping ads. Value range: 1, 2, 3, 7, 14, 30, 60, 90, 180. | |
| included_custom_actions | object[] | The custom action that you want to use as "Include" conditions for filtering the shopping ads audiences to be retargeted. | |
| 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. Value range: [1,180]. | |
| excluded_custom_actions | object[] | The custom action that you want to use as "Exclude" conditions for filtering the shopping ads audiences to be retargeted. | |
| 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 didn't complete the specified action. Value range: [1,180]. | |
| shopping_ads_retargeting_custom_audience_relation | string | The logical relation between the Video Shopping Ads (VSA) retargeting audience specified by `shopping_ads_retargeting_type` and the custom audience specified by `audience_ids`. Enum values: - `OR`: To combine the VSA retargeting audience and the custom audience to create the targeted audience. The targeted audience will consist of individuals who belong to either the VSA retargeting audience or the custom audience. - `AND`: To intersect between the VSA retargeting audience and the custom audience to create the targeted audience. The targeted audience will consist of individuals who belong to both the VSA retargeting audience and the custom audience. | |
| location_ids | string[] | IDs of the targeted locations. | |
| zipcode_ids | string[] | Zip code IDs or postal code IDs of the targeted locations. Note: - Zip code targeting is currently only supported for the US and postal code targeting is currently only supported for Canada, Brazil, Indonesia, Thailand, and Vietnam. - To get information about zip code IDs or postal code IDs, you can only use /tool/targeting/info/. | |
| languages | string[] | Codes of the languages that you want to target. For the list of languages codes supported, see Enumeration - Language Code. | |
| gender | string | Gender that you want to target. Enum values: `GENDER_FEMALE`,`GENDER_MALE`,`GENDER_UNLIMITED` | |
| age_groups | string[] | Age groups you want to target. For enum values, see Enumeration - Age Group. | |
| 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). | |
| audience_ids | string[] | A list of audience IDs. | |
| smart_audience_enabled | boolean | Whether Smart audience is turned on. Enum values: `true`, `false`. To learn more about Smart audience and how to turn on Smart audience, see Smart Targeting. | |
| excluded_audience_ids | string[] | A list of excluded audience ID. | |
| 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 keywords that you want to use to target audiences. | |
| 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. Enum values: `true`, `false`. To learn more about Smart interests & behaviors and how to turn on Smart interests & behaviors, see Smart Targeting. | |
| included_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to include. Valid only for Pangle placement. You can get audience IDs (`package_id`) by using the /pangle_audience_package/get/ endpoint. You need to set `bind_type` to `INCLUDE`. Do not specify this field and `excluded_pangle_audience_package_ids` at the same time. | |
| excluded_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to exclude. Valid only for Pangle placement. You can get audience IDs (`package_id`) by using the /pangle_audience_package/get/ endpoint. You need to set `bind_type` to `EXCLUDE`. Do not specify this field and `included_pangle_audience_package_ids` at the same time. | |
| operating_systems | string[] | Device operating systems that you want to target. Only one value is allowed. Enum: `ANDROID`, `IOS` | |
| min_android_version | string | Minimum Android version. For enum values, see Enumeration - Minimum Android Version. | |
| ios14_targeting | string | The iOS devices that you want to target. Enum values: - `UNSET`: Devices with iOS 14.4 or earlier versions. - `IOS14_MINUS`: Devices with iOS 14.0 or earlier versions, which are not affected by the iOS 14 privacy update. - `IOS14_PLUS`: Devices with iOS 14.5 or later versions. The iOS 14 privacy update has been enforced in this group of devices. This value is only supported for Dedicated Campaigns. - `ALL`: Devices with iOS 14.5 or later versions. The iOS 14 privacy update has been enforced in this group of devices. This value is only supported for iOS App Retargeting ads and iOS retargeting Video Shopping Ads with product source as catalog and optimization location as App. | |
| min_ios_version | string | Audience minimum ios version. For enum values, see Enumeration - Minimum iOS Version. | |
| ios14_quota_type | string | Whether the campaign will be counted against the iOS 14 dedicated campaign quota. Enum: `OCCUPIED`, `UNOCCUPIED`. For non-R&F campaigns, when `ios14_targeting` is `IOS14_PLUS`, this field is automatically set to `OCCUPIED`. | |
| device_model_ids | string[] | List of device model IDs. For more details about device models, see Device Models. | |
| 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. A carrier is valid only when the `in_use` field for the carrier is `true`. For detailed information, see get carriers. | |
| 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]. | |
| targeting_expansion | object | Settings about targeting expansion. Note: Starting June, 2024, you can no longer enable Automatic targeting or Targeting expansion for your ad groups. To ensure a smooth API integration, we recommend you migrate to Smart Targeting. | |
| expansion_enabled | boolean | Whether to enable targeting expansion. | |
| expansion_types | string[] | The target audience types that you want to expand. | |
| saved_audience_id | string | Returned when you have specified `saved_audience_id` when creating an ad group. Saved Audience ID. | |
| contextual_tag_ids | string[] | Contextual tag IDs. See Contextual targeting to learn more about how to use contextual targeting. | |
| brand_safety_type | string | Brand safety type. Enum values: - `NO_BRAND_SAFETY`: To not use any brand safety solution. Full inventory, which means your ads may appear next to some content featuring mature themes. - `EXPANDED_INVENTORY`: Use TikTok's brand safety solution. Expanded inventory means that your ads will appear next to content where most inappropriate content has been removed, and that does not contain mature themes. In the next API version, `EXPANDED_INVENTORY` will replace `NO_BRAND_SAFETY` and will be the default brand safety option. - `STANDARD_INVENTORY`: Use TikTok's brand safety solution. Standard inventory means that ads will appear next to content that is appropriate for most brands. - `LIMITED_INVENTORY`: Use TikTok's brand safety solution. Limited inventory means that your ads will not appear next to content that contains mature themes. - `THIRD_PARTY`: Use a third-party brand safety solution. To get the countries and regions that your ads can be deployed to based on your brand safety settings, use the /tool/region/ endpoint. Note: - Pre-bid first-party Brand Safety filtering for `APP_PROMOTION`, `WEB_CONVERSIONS`, `TRAFFIC`, `LEAD_GENERATION` and `PRODUCT_SALES` objectives in Auction ads is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative. - Pre-bid third-party brand safety solutions are currently allowlist-only features. If you would like to access them, please contact your TikTok representative. | |
| brand_safety_partner | string | Brand safety partner. Available only when `brand_safety_type` is `THIRD_PARTY`. Enum values: `IAS`, `OPEN_SLATE`(The partner is named DoubleVerify on TikTok Ads Manager because the partner has been acquired by DoubleVerify). To get the countries and regions that your ads can be deployed to based on your brand safety settings, use the /tool/region/ endpoint. You need to pass in the brand safety type and brand safety partner. Note: - Pre-bid third-party brand safety solutions are currently allowlist-only features. If you would like to access them, please contact your TikTok representative. | |
| inventory_filter_enabled | boolean | Inventory filtering (filtering security videos, hides unsafe videos), valid only for the `PLACEMENT_TIKTOK` placement. Optional values are: true to filter, false not to filter. | |
| category_exclusion_ids | string[] | Content exclusion category IDs. | |
| vertical_sensitivity_id | string | Vertical sensitivity category ID. | |
| budget_mode | string | Budget mode. If Campaign Budget Optimization is enabled, `BUDGET_MODE_INFINITE` will be returned. For more information about budget modes, see Budget. | |
| budget | float | Ad group budget. Returns 0.0 when Campaign Budget Optimization (`budget_optimize_on`) is on. For TopView ad groups, this field represents the estimated ad group budget after applying any discount. | |
| scheduled_budget | float | Scheduled ad budget for next day. A value not equal to 0 means the scheduled budget is set and the value represents the budget; a value equals to 0 means the scheduled budget is not set. | |
| schedule_type | string | The schedule type can be either `SCHEDULE_START_END` or `SCHEDULE_FROM_NOW`. If you choose `SCHEDULE_START_END`, you need to specify a start time and an end time. If you choose `SCHEDULE_FROM_NOW`, you only need to specify a start time. | |
| schedule_start_time | datetime | Ad delivery start time (UTC+0), in the format of `YYYY-MM-DD HH:MM:SS`. | |
| schedule_end_time | datetime | Ad delivery end time (UTC+0), in the format of `YYYY-MM-DD HH:MM:SS`. | |
| predict_impression | number | Returned only for TopView ads. The estimated number of impressions counted in thousands. For example, a value of `1291` represents an estimated 1,291,000 impressions. | |
| topview_reach_range | number[] | Returned only for TopView ads. The estimated range of reach counted in thousands. For example, a value of `[342, 456]` represents an estimated reach of between 342,000 and 456,000 individuals. To determine the estimated frequency range, use the following formula: - frequency = impressions /reachFor example, if `predict_impression` is `1291` (representing 1,291,000) and `topview_reach_range` is `[342, 456]` (representing 342,000 to 456,000), the estimated frequency range will be 2.8 to 3.8. | |
| pre_discount_cpm | number | Returned only for TopView ads. The estimated cost per mille (CPM) before applying any budget discount. Example: 11.33. | |
| cpm | number | Returned only for TopView ads. The estimated cost per mille (CPM) after applying any budget discount. Example: 0. | |
| discount_type | string | Returned only for TopView ads. The type of discount applied to the budget. Enum values: - `NO_DISCOUNT`: No discount applied. - `BY_PERCENTAGE`: Discount applied as a percentage. - `BY_AMOUNT`: Discount applied as a fixed amount. | |
| discount_amount | number | Returned only for TopView ads when `discount_type` is `BY_AMOUNT`. The fixed amount by which the budget is discounted. Example: 14615.8. | |
| discount_percentage | number | Returned only for TopView ads when `discount_type` is `BY_PERCENTAGE`. The percentage by which the budget is discounted. | |
| pre_discount_budget | number | Returned only for TopView ads. The budget amount before applying any discount. Example: 14616. | |
| schedule_infos | object[] | Ad delivery information of R&F ad groups. | |
| schedules | object[] | The details of the scheduled delivery for the ad. | |
| start_time | string | Ad delivery start time. | |
| end_time | string | Ad delivery end time. | |
| expected_orders | number[] | The delivery order for an ad within the ad group. For example, a value of `[1]` indicates that the ad will be delivered first. | |
| is_draft | boolean | Whether the ad delivery information is in draft mode. If the value of this field is `true`, then the ad delivery information defined in `schedule_infos` has not been associated with any specific ads. To associate the ad delivery information with ads, pass the value of the returned `schedule_id` to the request parameter `schedule_id` in /ad/create/. After you associate the ad delivery information with an ad, the value of this field will automatically be set to `false`, and the value of `schedule_id` will be the ID of the ad that you have associated the ad delivery information with. | |
| schedule_id | string | Schedule ID. You can associate a schedule ID with an ad through the `schedule_id` in the request of /ad/create/. After you associate the `schedule_id` with an ad, the value of this field will set to the ID of the ad that you have associated the ad delivery information with, and `is_draft` will automatically be set to `false`. | |
| delivery_mode | string | The strategy for sequencing and scheduling your ad delivery in a Reach & Frequency ad group. Enum values: - `STANDARD`: Standard delivery. Your ads will be distributed evenly and are expected to achieve similar traffic size. - `SCHEDULE`: Scheduled delivery. Set specific time periods to deliver each ad in. - `SEQUENCE`: Sequenced delivery. Set a specific sequence to deliver your ads in. - `VIEW_OPTIMIZE`: View optimized delivery. Your ads are distributed to maximize view-through rate (VTR), with more impressions allocated to ads predicted to achieve higher VTR. - `OPTIMIZE`: Optimized delivery that delivers ads to achieve the best performance. | |
| 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 Not specified, all-0, or all-1 are considered as full-time delivery. | |
| optimization_goal | string | The measurable results that you'd like to drive your ads with. For enum values, see Enumeration - Optimization Goal. | |
| secondary_optimization_event | string | The secondary goal when `optimization_goal` is `INSTALL` or `VALUE`. For enum values, see Conversion events - Secondary-goal events. | |
| message_event_set_id | string | The ID of the message event set to use in the Instant Messaging Ad Group. | |
| frequency | number | Frequency, together with `frequency_schedule`, controls how often people see your ad (only available for `REACH` ads). The below conditions should be both met: - 1 - 1 For example, `frequency` = 2 & `frequency_schedule` = 3 means "show ads no more than twice every 3 day". | |
| frequency_schedule | number | Frequency_schedule, together with `frequency`, controls how often people see your ad (only available for `REACH` ads). See `frequency` fields for more. | |
| bid_type | string | Bidding strategy that determines how the system manages your cost per result, spends your budget, and how it delivers ads. See Enumeration - Bidding Strategy. | |
| bid_price | float | Bid price. The average cost per result that you want to achieve (for Cost Cap bidding strategy). | |
| conversion_bid_price | float | Where you can set a target cost per conversion for oCPM(Optimized Cost per Mille). | |
| deep_bid_type | string | Bidding strategy for in-app events. For enum values and their descriptions, see Enumeration - Deep-level Bidding Strategy. | |
| roas_bid | float | ROAS goal for Value Optimization. | |
| 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). | |
| bid_display_mode | string | How you calculate and measure Cost per View. | |
| deep_cpa_bid | float | Specify bid price in this field after you've chosen a bidding strategy for in-app events, for example VO_MIN. | |
| cpv_video_duration | string | Optimized video playback duration Optional values include: `SIX_SECONDS` (video playback 6 seconds) and ` TWO_SECONDS` (video playback 2 seconds) | |
| next_day_retention | float | Day 2 retention ratio. Formula: `next_day_retention` = `conversion_bid_price`/`deep_cpa_bid`. Value range is (0,1]. Only valid when `placements` is `PLACEMENT_PANGLE` and `secondary_optimization_event` is `NEXT_DAY_OPEN`. | |
| click_attribution_window | string | Click-through window for the ad group. 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. | |
| engaged_view_attribution_window | string | Engaged view-through window for the ad group. This attribution window is the time after someone watches at least 6 seconds of your video ad that a conversion is counted. Enum values: - `ONE_DAY`: 1-day engaged view. - `SEVEN_DAYS`: 7-day engaged view. | |
| view_attribution_window | string | View-through window for the ad group. 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) for the ad group. 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. To learn about the enum values, see Enumerations - Billing Event. | |
| pacing | string | You can choose between `PACING_MODE_SMOOTH` and `PACING_MODE_FAST`. For `PACING_MODE_SMOOTH`, the budget is allocated evenly within the scheduled time. `PACING_MODE_FAST` would consume budget and produce results as soon as possible. When Campaign Budget Optimization (`budget_optimize_on`) is on, your setting will be ignored and it will be set as `PACING_MODE_SMOOTH`. Otherwise, this field is required. | |
| 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). - `FROZEN`: The ad group is terminated and cannot be enabled. | |
| secondary_status | string | Ad group status(secondary status). For enum values, see Enumeration - Ad Group Status - Secondary Status. Note: This field is not returned in the sandbox environment because the ad group is not actually delivered. | |
| statistic_type | string | Conversion bid statistic type, bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase) | |
| 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`. | |
| creative_material_mode | string | The strategy that your creatives will be delivered. Enum values: `CUSTOM`(custom), `DYNAMIC`(Automated Creative Optimization), and `SMART_CREATIVE`(Smart Creative). For Upgraded Smart+ Ad Groups, this field will be null. | |
| adgroup_app_profile_page_state | string | Indicates whether the adgroup is using app profile page. Enum: `INVALID`, `UNSET`, `ON`, `OFF`. | |
| feed_type | string | Feed type option. Enum values: `STANDARD_FEED`, `TOP_FEED`. | |
| rf_purchased_type | string | Billing method of Reach & Frequency ad groups. For more details, see Enumeration - Reach & Frequency Buy Type. Note: For non-Reach & Frequency ads, the value of this field will always be null. | |
| purchased_impression | number | Impressions to be purchased. Note: For non-Reach & Frequency ads, the value of this field will always be null. | |
| purchased_reach | number | Purchased user reach. Note: For non-Reach & Frequency ads, the value of this field will always be null. | |
| rf_estimated_cpr | number | The estimated cost per mile reach. Note: For non-Reach & Frequency ads, the value of this field will always be null. | |
| rf_estimated_frequency | number | The estimated show frequency. Note: For non-Reach & Frequency ads, the value of this field will always be null. | |
| split_test_group_id | string | Split test group ID. Returned if the ad group is part of a split test. | |
| split_test_status | string | Split test status. Returned if the ad group is part of a split test. | |
| is_new_structure | boolean | Whether the campaign is a new structure | |
| skip_learning_phase | boolean | Whether to skip the learning stage. | |
| conversion_window (deprecated) | string | The time frame when you would like a conversion to happen after a user clicks on or views your ad. Your ad delivery will be optimized using the conversion data during the time frame you select. This setting will not impact your attribution data. For enum values, ee Enumeration - Conversion Window. | |
| page_info | object | Paging information | |
| page | number | current page number | |
| page_size | number | Paging Size | |
| total_number | number | Total, the total number of eligible ad groups | |
| total_page | number | total pages |
Response sample
HTTPS/1.1 200 OK
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"list": [
{
"budget_mode": "BUDGET_MODE_TOTAL",
"included_custom_actions": [],
"delivery_mode": null,
"auto_targeting_enabled": false,
"app_download_url": null,
"placements": [
"PLACEMENT_TIKTOK"
],
"pixel_id": null,
"conversion_window": null,
"schedule_type": "SCHEDULE_START_END",
"brand_safety_partner": null,
"interest_category_ids": [],
"adgroup_id": "{{adgroup_id}}",
"campaign_name": "{{campaign_name}}",
"schedule_infos": null,
"share_disabled": false,
"brand_safety_type": "NO_BRAND_SAFETY",
"campaign_id": "{{campaign_id}}",
"ios14_quota_type": "UNOCCUPIED",
"network_types": [],
"app_type": null,
"bid_type": "BID_TYPE_NO_BID",
"conversion_bid_price": 0,
"optimization_goal": "CLICK",
"deep_bid_type": null,
"video_download_disabled": false,
"schedule_end_time": "{{schedule_end_time}}",
"scheduled_budget": 0,
"is_hfss": false,
"frequency": null,
"bid_price": 0,
"actions": [],
"deep_cpa_bid": 0,
"adgroup_name": "{{adgroup_name}}",
"category_id": "0",
"purchased_impression": null,
"budget": {{budget}},
"app_id": null,
"promotion_type": "WEBSITE",
"age_groups": null,
"next_day_retention": null,
"pacing": "PACING_MODE_SMOOTH",
"device_price_ranges": null,
"location_ids": [
"{{location_id}}"
],
"secondary_status": "ADGROUP_STATUS_CREATE",
"billing_event": "CPC",
"advertiser_id": "{{advertiser_id}}",
"create_time": "{{create_time}}",
"operation_status": "ENABLE",
"placement_type": "PLACEMENT_TYPE_NORMAL",
"optimization_event": null,
"audience_ids": [],
"secondary_optimization_event": null,
"excluded_custom_actions": [],
"languages": [],
"modify_time": "{{modify_time}}",
"excluded_audience_ids": [],
"rf_estimated_cpr": null,
"skip_learning_phase": false,
"operating_systems": [
"ANDROID"
],
"creative_material_mode": "CUSTOM",
"search_result_enabled": false,
"rf_purchased_type": null,
"inventory_filter_enabled": false,
"adgroup_app_profile_page_state": null,
"rf_estimated_frequency": null,
"gender": "GENDER_UNLIMITED",
"statistic_type": null,
"purchased_reach": null,
"is_new_structure": true,
"interest_keyword_ids": [],
"bid_display_mode": "CPMV",
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"keywords": null,
"schedule_start_time": "{{schedule_start_time}}",
"comment_disabled": false,
"frequency_schedule": null,
"feed_type": null
},
{
"budget_mode": "BUDGET_MODE_TOTAL",
"included_custom_actions": [],
"delivery_mode": null,
"auto_targeting_enabled": false,
"app_download_url": null,
"placements": [
"PLACEMENT_TIKTOK"
],
"pixel_id": null,
"conversion_window": null,
"schedule_type": "SCHEDULE_START_END",
"brand_safety_partner": null,
"interest_category_ids": [],
"adgroup_id": "{{adgroup_id}}",
"campaign_name": "{{campaign_name}}",
"schedule_infos": null,
"share_disabled": false,
"brand_safety_type": "NO_BRAND_SAFETY",
"campaign_id": "{{campaign_id}}",
"ios14_quota_type": "UNOCCUPIED",
"network_types": [],
"app_type": null,
"bid_type": "BID_TYPE_NO_BID",
"conversion_bid_price": 0,
"optimization_goal": "CLICK",
"deep_bid_type": null,
"video_download_disabled": false,
"schedule_end_time": "{{schedule_end_time}}",
"scheduled_budget": 0,
"is_hfss": false,
"frequency": null,
"bid_price": 0,
"actions": [],
"deep_cpa_bid": 0,
"adgroup_name": "{{adgroup_name}}",
"category_id": "0",
"purchased_impression": null,
"budget": {{budget}},
"app_id": null,
"promotion_type": "WEBSITE",
"age_groups": null,
"next_day_retention": null,
"pacing": "PACING_MODE_SMOOTH",
"device_price_ranges": null,
"location_ids": [
"{{location_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