VI | EN
Message us on Messenger
Developer resources

Get ad groups — TikTok Business API

Get ad groups · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

Get ad groups

GET/adgroup/get/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/adgroup/get/
Description

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

GET https://partner.quantri360.com/v1/tiktok_business/adgroup/get/

Authentication & shop

NameInTypeSampleDescription
AuthorizationheaderheaderBearer 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_idquerystring7000000000000000001Tà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

NameInTypeRequiredSampleDescription
fieldsquerystring[]NoFields 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_responsequerystring[]NoThe type of fields that you want to remove from the response. Allowed enum values: - NULL_FIELD: Fields with null values.
filteringqueryobjectNoFilter 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"}
pagequerynumberNoCurrent page number. Default value: 1. Value range: ≥ 1.
page_sizequerynumberNoPage 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)

NameTypeSampleDescription
codenumberResponse code. For the complete list of response codes and descriptions, see Appendix - Return Codes.
messagestringResponse message. For details, see Appendix - Return Codes.
request_idstringThe log id of a request, which uniquely identifies the request.
dataobjectReturned 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.
listobject[]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_idstringAdvertiser ID
campaign_idstringCampaign ID
campaign_namestringThe name of the campaign that the ad group belongs to.
campaign_system_originstringReturned 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_typestringCampaign 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_campaignbooleanWhether 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_idstringAd group ID
adgroup_namestringAd group name
create_timestringThe 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_timestringThe 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_typestringReturned 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_idstringReturned when `shopping_ads_type` is `VIDEO` and `product_source` is `SHOWCASE` or `shopping_ads_type` is `LIVE`. Identity ID.
identity_typestringReturned 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_idstringReturned 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_sourcestringReturned 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_idstringReturned 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_idstringReturned 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_idstringReturned 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_idstringReturned when `store_id` is passed. ID of the Business Center that is authorized to access the store (`store_id`).
promotion_typestringPromotion 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_typestringThe 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_typestringThe 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_idstringThe 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_codestringThe region code for the WhatsApp or Zalo phone number. Example: `US`.
phone_region_calling_codestringThe region calling code for the WhatsApp or Zalo phone number. Example: `+1`.
phone_numberstringThe WhatsApp or Zalo phone number.
promotion_website_typestringTikTok 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_idstringThe App ID of the app to promote.You can get `app_id` by using the /app/list/ endpoint.
app_typestringThe type of the promoted app. Enum values: `APP_ANDROID` (Android), `APP_IOS` (iOS).
app_download_urlstringApp download link
pixel_idstringPixel ID. Only applicable for landing pages.
optimization_eventstringConversion event for the ad group. See Conversion events for more.
custom_conversion_idstringThe ID of the Custom Conversion used in the ad group.
app_configobject[]Returned when `sales_destination` is `WEB_AND_APP` at the campaign level. Details of the app or apps to promote.
app_idstringThe App ID of the app to promote.
deep_funnel_optimization_statusstringThe 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_sourcestringReturned 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_idstringReturned 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_eventstringReturned when `deep_funnel_optimization_status` is `ON`. Deep funnel optimization event. Example: `SHOPPING`.
placement_typestringThe placement strategy that decides where your ads will be shown. Enum values: `PLACEMENT_TYPE_AUTOMATIC` (Automatic placement), `PLACEMENT_TYPE_NORMAL` (Select placement).
placementsstring[]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_subplacementsstring[]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_enabledbooleanWhether to include your ads in Search Ads, namely to show your ads to users when they search for your business on TikTok.
automated_keywords_enabledbooleanWhether 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_keywordsobject[]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.
keywordstringThe search keyword.
match_typestringThe 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_typestringThe 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_bidfloatThe bid price for the keyword and match type combination.
audit_statusstringThe 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_infoobject[]Returned only when `audit_status` is `REJECTED`. Details about the rejection.
forbidden_locationstringThe targeted region that failed the review. For enum values, see Appendix - Location codes.
reject_reasonsobject[]List of rejection reasons.
reasonstringThe rejection reason.
comment_disabledbooleanWhether to disable comments on ads in the ad group. Supported values: `true`, `false`.
video_download_disabledbooleanWhether to disable downloading videos from ads in the ad group. Supported values: `true`, `false`.
share_disabledbooleanWhether to disable sharing of ads in the ad group to third-party platforms. Supported values: `true`, `false`.
blocked_pangle_app_idsstring[]Pangle app block list ID.
audience_typestringApp retargeting audience type. For enum values, see Enumeration - App Retargeting Audience Type.
audience_ruleobjectRules that specify your audience.
auto_targeting_enabledbooleanWhether 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_typestringReturned 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_daysnumberThe 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_actionsobject[]The custom action that you want to use as "Include" conditions for filtering the shopping ads audiences to be retargeted.
codestringThe 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.
daysintegerThe time range used to filter the audiences that completed the specified action. Value range: [1,180].
excluded_custom_actionsobject[]The custom action that you want to use as "Exclude" conditions for filtering the shopping ads audiences to be retargeted.
codestringThe 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.
daysintegerThe time range used to filter the audiences that didn't complete the specified action. Value range: [1,180].
shopping_ads_retargeting_custom_audience_relationstringThe 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_idsstring[]IDs of the targeted locations.
zipcode_idsstring[]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/.
languagesstring[]Codes of the languages that you want to target. For the list of languages codes supported, see Enumeration - Language Code.
genderstringGender that you want to target. Enum values: `GENDER_FEMALE`,`GENDER_MALE`,`GENDER_UNLIMITED`
age_groupsstring[]Age groups you want to target. For enum values, see Enumeration - Age Group.
spending_powerstringSpending 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_incomestring[]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_idsstring[]A list of audience IDs.
smart_audience_enabledbooleanWhether 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_idsstring[]A list of excluded audience ID.
interest_category_idsstring[]IDs of general interest keywords that you want to use to target audiences.
interest_keyword_idsstring[]IDs of additional interest keywords that you want to use to target audiences.
purchase_intention_keyword_idsstring[]IDs of purchase intention categories that you want to use to target audiences with an interest in purchases related to a content category.
actionsobject[]A list of targeting behavioral category objects.
action_scenestringThe type of user behavior that you want to target. Enum values: - `VIDEO_RELATED`: Video interactions. - `CREATOR_RELATED`: Creator interactions. - `HASHTAG_RELATED`: Hashtag interactions.
action_periodnumberThe time period to include behaviors from.
video_user_actionsstring[]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_idsstring[]IDs of the video interactions categories, creator interactions categories, hashtags, or hashtag bundles that you want to use to target audiences.
smart_interest_behavior_enabledbooleanWhether 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_idsstring[]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_idsstring[]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_systemsstring[]Device operating systems that you want to target. Only one value is allowed. Enum: `ANDROID`, `IOS`
min_android_versionstringMinimum Android version. For enum values, see Enumeration - Minimum Android Version.
ios14_targetingstringThe 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_versionstringAudience minimum ios version. For enum values, see Enumeration - Minimum iOS Version.
ios14_quota_typestringWhether 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_idsstring[]List of device model IDs. For more details about device models, see Device Models.
network_typesstring[]Network types that you want to target. For enum values, see Enumeration - Connection Type.
carrier_idsstring[]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_idsstring[]IDs of the targeted Internet service providers.
device_price_rangesnumber[]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_expansionobjectSettings 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_enabledbooleanWhether to enable targeting expansion.
expansion_typesstring[]The target audience types that you want to expand.
saved_audience_idstringReturned when you have specified `saved_audience_id` when creating an ad group. Saved Audience ID.
contextual_tag_idsstring[]Contextual tag IDs. See Contextual targeting to learn more about how to use contextual targeting.
brand_safety_typestringBrand 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_partnerstringBrand 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_enabledbooleanInventory 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_idsstring[]Content exclusion category IDs.
vertical_sensitivity_idstringVertical sensitivity category ID.
budget_modestringBudget mode. If Campaign Budget Optimization is enabled, `BUDGET_MODE_INFINITE` will be returned. For more information about budget modes, see Budget.
budgetfloatAd 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_budgetfloatScheduled 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_typestringThe 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_timedatetimeAd delivery start time (UTC+0), in the format of `YYYY-MM-DD HH:MM:SS`.
schedule_end_timedatetimeAd delivery end time (UTC+0), in the format of `YYYY-MM-DD HH:MM:SS`.
predict_impressionnumberReturned 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_rangenumber[]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_cpmnumberReturned only for TopView ads. The estimated cost per mille (CPM) before applying any budget discount. Example: 11.33.
cpmnumberReturned only for TopView ads. The estimated cost per mille (CPM) after applying any budget discount. Example: 0.
discount_typestringReturned 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_amountnumberReturned only for TopView ads when `discount_type` is `BY_AMOUNT`. The fixed amount by which the budget is discounted. Example: 14615.8.
discount_percentagenumberReturned only for TopView ads when `discount_type` is `BY_PERCENTAGE`. The percentage by which the budget is discounted.
pre_discount_budgetnumberReturned only for TopView ads. The budget amount before applying any discount. Example: 14616.
schedule_infosobject[]Ad delivery information of R&F ad groups.
schedulesobject[]The details of the scheduled delivery for the ad.
start_timestringAd delivery start time.
end_timestringAd delivery end time.
expected_ordersnumber[]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_draftbooleanWhether 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_idstringSchedule 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_modestringThe 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.
daypartingstring"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_goalstringThe measurable results that you'd like to drive your ads with. For enum values, see Enumeration - Optimization Goal.
secondary_optimization_eventstringThe secondary goal when `optimization_goal` is `INSTALL` or `VALUE`. For enum values, see Conversion events - Secondary-goal events.
message_event_set_idstringThe ID of the message event set to use in the Instant Messaging Ad Group.
frequencynumberFrequency, 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_schedulenumberFrequency_schedule, together with `frequency`, controls how often people see your ad (only available for `REACH` ads). See `frequency` fields for more.
bid_typestringBidding strategy that determines how the system manages your cost per result, spends your budget, and how it delivers ads. See Enumeration - Bidding Strategy.
bid_pricefloatBid price. The average cost per result that you want to achieve (for Cost Cap bidding strategy).
conversion_bid_pricefloatWhere you can set a target cost per conversion for oCPM(Optimized Cost per Mille).
deep_bid_typestringBidding strategy for in-app events. For enum values and their descriptions, see Enumeration - Deep-level Bidding Strategy.
roas_bidfloatROAS goal for Value Optimization.
vbo_windowstringThe 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_modestringHow you calculate and measure Cost per View.
deep_cpa_bidfloatSpecify bid price in this field after you've chosen a bidding strategy for in-app events, for example VO_MIN.
cpv_video_durationstringOptimized video playback duration Optional values include: `SIX_SECONDS` (video playback 6 seconds) and ` TWO_SECONDS` (video playback 2 seconds)
next_day_retentionfloatDay 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_windowstringClick-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_windowstringEngaged 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_windowstringView-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_countstringEvent 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_eventstringBilling event. To learn about the enum values, see Enumerations - Billing Event.
pacingstringYou 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_statusstringOperation 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_statusstringAd 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_typestringConversion bid statistic type, bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase)
is_hfssbooleanWhether the promoted content is HFSS (High Fat, Salt, Sugar) Product/Brand. Supported values: `true`,`false`.
is_lhf_compliancebooleanWhether 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_modestringThe 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_statestringIndicates whether the adgroup is using app profile page. Enum: `INVALID`, `UNSET`, `ON`, `OFF`.
feed_typestringFeed type option. Enum values: `STANDARD_FEED`, `TOP_FEED`.
rf_purchased_typestringBilling 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_impressionnumberImpressions to be purchased. Note: For non-Reach & Frequency ads, the value of this field will always be null.
purchased_reachnumberPurchased user reach. Note: For non-Reach & Frequency ads, the value of this field will always be null.
rf_estimated_cprnumberThe estimated cost per mile reach. Note: For non-Reach & Frequency ads, the value of this field will always be null.
rf_estimated_frequencynumberThe estimated show frequency. Note: For non-Reach & Frequency ads, the value of this field will always be null.
split_test_group_idstringSplit test group ID. Returned if the ad group is part of a split test.
split_test_statusstringSplit test status. Returned if the ad group is part of a split test.
is_new_structurebooleanWhether the campaign is a new structure
skip_learning_phasebooleanWhether to skip the learning stage.
conversion_window (deprecated)stringThe 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_infoobjectPaging information
pagenumbercurrent page number
page_sizenumberPaging Size
total_numbernumberTotal, the total number of eligible ad groups
total_pagenumbertotal 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

  1. Sign up for Partner
  2. Enable a data type of the Ads (Marketing API) group on the platform page
  3. Create an API key (tick the TikTok Business channel)
  4. Call it as in the examples above