Create an Upgraded Smart+ Ad Group
POST/smart_plus/adgroup/create/Via 360: POST https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/
Write endpoint — changes data on TikTok Business. The key must be created with "Allow write API calls" ticked, otherwise you get 403 write_not_allowed. Every call is logged.
Description
Use this endpoint to create an Upgraded Smart+ Ad Group.
You can create up to 30 ad groups within an Upgraded Smart+ Campaign.
- If Campaign Budget Optimization (CBO) is enabled (
budget_optimize_onistrue) at the campaign level, you need to ensure that the following settings, if specified, are the same for ad groups within the same campaign: promotion_typepromotion_target_typeoptimization_goaloptimization_eventapp_attribution_sourceapp_data_sourcebilling_eventbid_typebid_priceconversion_bid_pricedeep_bid_typevbo_windowroas_bididentity_id,identity_type,identity_authorized_bc_id, andnative_series_id(whenpromotion_typeisNATIVE_SERIES)- If CBO is disabled (
budget_optimize_onisfalse) at the campaign level, you need to ensure that the following settings, if specified, are the same for ad groups within the same campaign: bid_typedeep_bid_typevbo_windowbudget_mode
Request
Endpoint
POST https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/
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 |
|---|---|---|---|---|---|
| request_id | body | string | Yes | Request ID with which you can create ad groups with duplicate names. It also supports idempotency to prevent you from sending the same request twice. If you retry requests with the same request ID multiple times, then only one will succeed.
It is different from the request_id returned in the response parameters, which is used to uniquely identify an HTTP request.
The value should be a string representation of a 64-bit integer number.
Example: 123456789. | |
| campaign_id | body | string | Yes | The ID of the campaign that the ad group belongs to. | |
| operation_status | body | string | No | The status of the ad group when created.
Enum values:
- ENABLE : The ad group is enabled when created.
- DISABLE : The ad group is disabled when created.
Default value: ENABLE. | |
| adgroup_name | body | string | Yes | Ad group name. Length limit: 512 characters. Emoji is not supported. | |
| catalog_id | body | string | No | Required when catalog_enabled is true at the campaign level.
The ID of the catalog to use in the ad group.
To retrieve the catalogs within your Business Center, use /catalog/get/. | |
| catalog_authorized_bc_id | body | string | No | Required when catalog_enabled is true.
The ID of the Business Center that the catalog (catalog_id) belongs to. | |
| product_source | body | string | No | Required when the following conditions are met at the campaign level:
- objective_type is APP_PROMOTION.
- catalog_enabled is true.
- catalog_type is ONLINE_TO_OFFLINE or TRAVEL_ENTERTAINMENT. Learn more about how to create such ads in Create Upgraded Smart+ App Online-to-Offline Catalog Ads and Create Upgraded Smart+ App Travel Catalog Ads.
Product source where you want to get products for promotion.
Enum value: CATALOG (catalog). | |
| promotion_type | body | string | Yes | Promotion type (Optimization location).
You can decide where you'd like to promote your products using this field.
Currently, we support APP_ANDROID, APP_IOS, WEBSITE, MINI_APP, MINI_GAME, NATIVE_SERIES, LEAD_GENERATION, LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE, LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE, LEAD_GEN_CLICK_TO_CALL, and LEAD_GENERATION_MULTI_DESTINATION.
- When objective_type is APP_PROMOTION and app_promotion_type is APP_INSTAL or APP_RETARGETING, set this field to APP_ANDROID or APP_IOS.
- When objective_type is APP_PROMOTION and app_promotion_type is MINIS, set this field to MINI_APP, MINI_GAME, or NATIVE_SERIES.
- When objective_type is WEB_CONVERSIONS:
- If sales_destination is WEBSITE, set this field to WEBSITE.
- If sales_destination is APP, set this field to APP_ANDROID or APP_IOS.
- When objective_type is LEAD_GENERATION, set this field to any of the following values:
- LEAD_GENERATION
- LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE
- LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE
- LEAD_GEN_CLICK_TO_CALL
- LEAD_GENERATION_MULTI_DESTINATION
Note: When CBO is enabled (budget_optimize_on is true ) at the campaign level, this setting must be the same across all ad groups within the same campaign. | |
| promotion_target_type | body | string | No | Valid when objective_type is LEAD_GENERATION.
The optimization location for Lead Generation objective.
Enum values:
- INSTANT_PAGE: Instant Form. To create a fast-loading in-app TikTok Instant Form to collect more leads.
- EXTERNAL_WEBSITE: Website Form. To use a landing page that has the Website Form or the TikTok Instant Page that redirects to the website with the Website Form to collect more leads.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign. | |
| optimization_goal | body | string | Yes | The measurable results you'd like to drive with your campaigns.
Currently, we support CLICK, INSTALL, IN_APP_EVENT, VALUE, CONVERT, TRAFFIC_LANDING_PAGE_VIEW, CONVERSATION, LEAD_GENERATION, LEADS, and WEBSITE_ENGAGEMENT.
To find the detailed description for each optimization goal, see Enumeration - Optimization Goal.
Note:
- When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign.
- When promotion_type is LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE and optimization_goal is CONVERSATION, you can only set messaging_app_type to any of the following values:
- MESSENGER
- WHATSAPP
- ZALO | |
| optimization_locations | body | object[] | No | Required when promotion_type is LEAD_GENERATION_MULTI_DESTINATION.
A list of optimization locations for the Lead Generation ad group.
You need to specify at least two optimization locations in this field.
To learn about the ad type where this field can be used, see Create an Upgraded Smart+ Lead Generation Campaign with multiple location selection.
Note:
- Creating an Upgraded Smart+ Lead Generation Campaign with multiple location selection is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- Once set, this field cannot be updated. | |
| gaming_ad_compliance_agreement | body | string | No | Valid in any of the following scenarios:
- Scenario 1: When the following conditions are both met at the campaign level:
- objective_type is APP_PROMOTION.
- app_promotion_type is APP_RETARGETING.
- Scenario 2: When the following conditions are both met at the campaign level:
- objective_type is APP_PROMOTION.
- app_promotion_type is APP_INSTALL.
- campaign_type is REGULAR_CAMPAIGN.
Whether to agree to the Compliance Assurance Policy for Gaming Advertisers on TikTok.
The policy is as follows: You confirm and attest that any gaming application, product or service (game) you desire to advertise on TikTok, including any associated URL(s), (a) complies with all applicable laws and regulations of the jurisdictions where the game can be accessed or played, and upon request, can provide supporting documentation as evidence of why the game is not considered illegal gambling or lottery; and (b) has not been and is not part of any investigation or lawsuit regarding the game's legality or regulatory compliance.
Enum values:
- ON: To agree to the policy.
- OFF: To leave the policy not accepted.
Default value: OFF.
Note: Agreeing to the Compliance Assurance Policy for Gaming Advertisers on TikTok is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative. | |
| pixel_id | body | string | No | - Required when the following conditions are met:
- At the campaign level: objective_type is WEB_CONVERSIONS or LEAD_GENERATION.
- At the ad group level: optimization_goal is set to CONVERT or VALUE.
- Not supported when optimization_goal is set to CLICK, INSTALL, IN_APP_EVENT, or TRAFFIC_LANDING_PAGE_VIEW.
Pixel ID.
To get all Pixel IDs, use /pixel/list/. | |
| app_config | body | object[] | No | Required when sales_destination is WEB_AND_APP at the campaign level.
Details of the app or apps to promote.
Max size: 2.
You can specify any of the following in this field:
- an Android app
- an iOS app
- an Android app and an iOS app | |
| minis_id | body | string | No | Required when promotion_type is MINI_APP or MINI_GAME.
The ID of a TikTok Mini.
- When promotion_type is MINI_APP, specify a TikTok Mini ID of the mini series type.
- When promotion_type is MINI_GAME, specify a TikTok Mini ID of the mini game type.
To obtain the list of TikTok Minis within an ad account, use /minis/get/ and select a TikTok Mini with minis_status as ACTIVE.
To learn more about the campaign type where this setting is supported, see Create an Upgraded Smart+ TikTok Growth Max: Mini Dramas campaign and Create an Upgraded Smart+ TikTok Growth Max: Mini Games campaign. | |
| optimization_event | body | string | No | Required in any of the following scenarios:
- pixel_id is specified.
- pixel_id is not specified and optimization_goal is IN_APP_EVENT or VALUE.
- pixel_id is not specified and minis_id is specified.
Conversion event.
For the supported app and pixel events, see Conversion events.
To find out the supported events for your app, use /app/optimization_event/.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign. | |
| custom_conversion_id | body | string | No | The ID of the Custom Conversion to use in the ad group.
Valid only when the following conditions are all met:
- Either pixel_id or app_id is specified.
- A Custom Conversion has been configured for the pixel_id or app_id.
- The optimization_goal is set to CONVERT or IN_APP_EVENT.
- The parameter optimization_event is specified and matches the Standard Event associated with the Custom Conversion.
- The status of the Custom Conversion is Active or No recent activity.
- To obtain the list of Custom Conversions associated with a Pixel or an App, use /custom_conversion/list/.
- To confirm the eligibility of the Custom Conversion for ad group creation:
- Ensure the returned optimization_event matches the optimization_event specified during ad group creation.
- Ensure the activity_status is NO_RECENT_ACTIVITY or ACTIVE. | |
| deep_funnel_optimization_status | body | string | No | Valid only when promotion_type is LEAD_GENERATION.
The status of deep funnel optimization.
Deep funnel optimization optimizes both your upper funnel events and deeper funnel events. You can select a secondary event alongside the primary optimization event, which can help improve campaign effectiveness.
Enum values:
- ON: To enable deep funnel optimization.
- OFF: To disable deep funnel optimization.
Default value: OFF.
Note:
- Deep funnel optimization with CRM events is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- Deep funnel optimization with Pixel or Offline events is generally available. | |
| deep_funnel_event_source | body | string | No | Required 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 | body | string | No | Required when deep_funnel_optimization_status is ON.
Event Source ID.
- When deep_funnel_event_source is PIXEL, specify a Pixel ID via this field.
- To obtain a list of Pixels, use /pixel/list/.
- When deep_funnel_event_source is OFFLINE, specify an Offline Event Set ID via this field.
- To obtain a list of Offline Event Set IDs, use /offline/get/.
- When deep_funnel_event_source is CRM, specify a CRM Event Set ID via this field.
- To obtain a list of CRM Event Set IDs, use /crm/list/. | |
| deep_funnel_optimization_event | body | string | No | Required when deep_funnel_optimization_status is ON.
Deep funnel optimization event.
- To find out the supported values for Standard Events available for Pixels, Offline Event Sets, and CRM Event Sets, see the "Event name for ad creation" column in Supported Pixel events.
- To find the list of optimization events for a Pixel, use /pixel/list/ and check the returned optimization_event.
Example: SHOPPING. | |
| app_attribution_source | body | string | No | Valid only when the following conditions are all met:
- At the campaign level, objective_type is APP_PROMOTION and app_promotion_type is APP_INSTALL or APP_RETARGETING.
- The mobile app is eligible for attribution source and data source configuration.
- To confirm this, use /app/list/ or /app/info/ and select an app_id where is_attribution_flex_enable returns true.
Attribution source for your mobile app.
The attribution source you choose will be used for optimization, bidding, and reporting.
Enum values:
- MMP: MMP (mobile measurement partner) attribution. Signals from your selected MMP will be used for attribution.
- SAN: SAN (self-attribution network) attribution. Signals from TikTok SAN will be used for attribution. The exact value you can specify depends on your app (app_id) setup. To retrieve the available attribution and data source settings for your app, use /tool/available/attribution_source/.
Note:
- Once set, this field cannot be updated.
- When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign.
- Attribution source and data source configuration for an app during Upgraded Smart+ Ad Group creation is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative. | |
| app_data_source | body | string | No | Data source for your app.
The attribution signals you select will be used for reporting.
Enum values:
- MMP: MMP signals. Signals from your MMP will be used for reporting.
- EVENT_SDK: App Events SDK signals. Signals from TikTok App Events SDK will be used for reporting.
- EVENT_API: Events API signals. Signals from TikTok Events API will be used for reporting.
The exact value you can specify depends on your app (app_id) setup. To retrieve the available attribution and data source settings for your app, use /tool/available/attribution_source/.
Note:
- Once set, this field cannot be updated.
- When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign.
- Attribution source and data source configuration for an app during Upgraded Smart+ Ad Group creation is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative. | |
| identity_id | body | string | No | Valid only in any of the following scenarios:
- Scenario 1: When promotion_type is NATIVE_SERIES.
- Scenario 2: When promotion_type is LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads.
Identity ID of the TikTok account where your Series is hosted and managed in TikTok Growth Max: Drama Series ads or the TikTok account to use in TikTok Direct Messaging Ads.
To learn more about how to create TikTok Direct Messaging Ads, see Create an Upgraded Smart+ Lead Generation Campaign with optimization location as TikTok direct messages.
To learn more about how to create TikTok Growth Max: Drama Series ads, see Create an Upgraded Smart+ TikTok Growth Max: Drama Series campaign.
Note:
- Selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- Once set, this field cannot be updated. | |
| identity_type | body | string | No | Valid only in any of the following scenarios:
- Scenario 1: When promotion_type is NATIVE_SERIES.
- Scenario 2: When promotion_type is LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads.
Identity type of the TikTok account where your Series is hosted and managed in TikTok Growth Max: Drama Series ads or the TikTok account to use in TikTok Direct Messaging Ads.
Enum values:
- TT_USER: TikTok Business Account User.
- BC_AUTH_TT: The TikTok account that a Business Center is authorized to access.
See Identities for details.
Note:
- Selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- Once set, this field cannot be updated. | |
| identity_authorized_bc_id | body | string | No | Required when identity_type is BC_AUTH_TT.
ID of the Business Center that a TikTok Account User in Business Center identity is associated with.
Note: Once set, this field cannot be updated. | |
| native_series_id | body | string | No | Required when promotion_type is NATIVE_SERIES.
The ID of a TikTok Series.
Series offers exclusive and premium video packages produced by creators. Access to Series is available to purchase through the creator's profile and links attached to TikTok videos.
To obtain the list of TikTok Series available from a TikTok account that your ad account can access, use /identity/native_series/get/ . | |
| messaging_app_type | body | string | No | Valid only when promotion_type is LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE.
- When optimization_goal is CONVERSATION, this field is required.
- When optimization_goal is CLICK, the default value for this field is IM_URL.
The type of instant messaging app or customized URL to use in the Instant Messaging App Ad Group.
Enum values:
- MESSENGER: Messenger. You need to simultaneously specify a Facebook Page ID via messaging_app_account_id.
- WHATSAPP: WhatsApp. You need to simultaneously specify phone_info, which will be used to automatically populate the corresponding WhatsApp phone number.
- ZALO: Zalo. You need to simultaneously specify Zalo contact format via zalo_id_type.
- LINE: Line. You need to simultaneously specify a LINE Business ID via messaging_app_account_id.
- IM_URL: Instant Messaging URL.
To learn more about how to create Upgraded Smart+ TikTok Instant Messaging Ads, see Create an Upgraded Smart+ Lead Generation Campaign with optimization location as instant messaging apps.
Note:
- When optimization_goal is CONVERSATION, you cannot set this field to LINE or IM_URL.
- Once set, this field cannot be updated. | |
| zalo_id_type | body | string | No | Required when messaging_app_type is ZALO.
The type of Zalo contact format.
Enum values:
- ZALO_OFFICIAL_ACCOUNT: Zalo Official Account ID. You need to simultaneously specify a Zalo Official Account ID via messaging_app_account_id.
- ZALO_PHONE_ACCOUNT: Zalo phone number. You need to simultaneously specify phone_info to automatically populate the corresponding Zalo phone number.
- You can only set zalo_id_type to ZALO_PHONE_ACCOUNT when optimization_goal is CLICK.
Note: Once set, this field cannot be updated. | |
| messaging_app_account_id | body | string | No | Required and valid in any of the following scenarios:
- When messaging_app_type is MESSENGER or LINE.
- When messaging_app_type is ZALO and zalo_id_type is ZALO_OFFICIAL_ACCOUNT.
The ID of the instant messaging app account.
- When messaging_app_type is MESSENGER, specify the Facebook Page ID via this field.
- To find your Facebook Page ID, go to your Facebook Page and click About below your cover photo, then click Page transparency.
- When zalo_id_type is ZALO_OFFICIAL_ACCOUNT, specify the Zalo Official Account ID via this field.
- When messaging_app_type is LINE, specify the LINE Business ID via this field.
- To find your LINE Business ID, go to your LINE official account page.
- When messaging_app_type is WHATSAPP or when zalo_id_type is ZALO_PHONE_ACCOUNT, this field will be ignored and be set as the corresponding WhatsApp or Zalo phone number automatically populated based on the specified phone_info.
Note: Once set, this field cannot be updated. | |
| message_event_set_id | body | string | No | Required when the following conditions are met:
- promotion_type is LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE.
- optimization_goal is CONVERSATION.
- The instant messaging app account in your ad group settings doesn't match any existing message event set.
The ID of the message event set to be used in the Instant Messaging Ad Group.
- If the instant messaging app account, either the Messenger account or Zalo Official Account specified via messaging_app_account_id or the WhatsApp or Zalo phone account populated from the specified phone_info, in your ad group settings matches an existing event set, this field will be ignored and automatically populated with the unique message event set associated with the instant messaging app account you choose.
- To confirm whether a unique message event set is associated with the instant messaging app account you choose, use /ctm/message_event_set/get/ and check the returned matched_event_set.
- If the instant messaging app account in your ad group settings doesn't match any existing message event set (matched_event_set returned from /ctm/message_event_set/get/ is empty), use /ctm/message_event_set/get/ to obtain the message event sets available for ad creation via the response parameter message_event_set_list.
Note: Once set, this field cannot be updated. | |
| phone_info | body | object | No | Required in any of the following scenarios:
- When messaging_app_type is WHATSAPP
- When messaging_app_type is ZALO and zalo_id_type is ZALO_PHONE_ACCOUNT.
Details of WhatsApp or Zalo phone number.
Note: Once set, this field cannot be updated. | |
| bid_type | body | string | Yes | Bidding strategy that determines how the system manages your cost per result, spends your budget, and how it delivers campaigns.
Enum values:
- BID_TYPE_NO_BID: Maximum Delivery.
- BID_TYPE_CUSTOM: Cost Cap (or Target CPA).
Note: This setting, if specified, must be the same across all ad groups within the same campaign. | |
| bid_price | body | float | No | Required when the following conditions are met:
- optimization_goal is CLICK.
- bid_type is BID_TYPE_CUSTOM.
The target cost per click. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount.
bid_price needs to be lower than budget. See Bidding-Bidding limits to learn more about the bid verification mechanism.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign. | |
| conversion_bid_price | body | float | No | Required when the following conditions are met:
- optimization_goal is CONVERT,TRAFFIC_LANDING_PAGE_VIEW , INSTALL, or IN_APP_EVENT.
- bid_type is BID_TYPE_CUSTOM.
The target cost per conversion or cost per landing page view. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount.
conversion_bid_price needs to be lower than budget. See Bidding-Bidding limits to learn more about the bid verification mechanism.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign. | |
| deep_bid_type | body | string | No | Required when optimization_goal is VALUE.
Bidding strategy for in-app events.
Enum values: DEFAULT, AEO, VO_MIN_ROAS, and VO_HIGHEST_VALUE.
For the descriptions of supported values, see Enumeration - Deep Event Bidding Strategy.
You can only set deep_bid_type to VO_MIN_ROAS in any of the following scenarios:
- At the campaign level, budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET
- At the ad group level, budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET
Note: This setting, if specified, must be the same across all ad groups within the same campaign. | |
| roas_bid | body | float | No | Required when deep_bid_type is VO_MIN_ROAS.
Target ROAS for Value-Based Optimization.
Value range: 0.01-1,000.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting, if specified, must be the same across all ad groups within the same campaign. | |
| value_rule_set_id | body | string | No | ID of the value rule set to associate with the ad group.
Value rules let you adjust bids. For example, bid more for iOS users. You'll likely get more outcomes, but overall cost per result may increase.
- To retrieve existing rule sets within an ad account, use /smart_plus/value_rule_set/get/.
- To create a new rule set within an ad account, use /smart_plus/value_rule_set/create_or_update/.
Note:
- By using this field, you confirm you understand that value rules may increase bids for selected audiences, which could raise your cost per result, such as CPA, above your target.
- Value rules are incompatible with special ad categories. Therefore, you cannot use this field when special_industries is set to a non-empty value at the campaign level. | |
| vbo_window | body | string | No | 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).
Default value: SEVEN_DAYS.
- When the Minimum ROAS (Target ROAS) bidding strategy is used, this field represents the window type of the target ROAS value (Day 7 ROAS or Day 0 ROAS). The system will aim to keep your average ROAS of the seventh day or of the current day around or higher than the target ROAS value, regardless of your budget.
- When the Highest Value bidding strategy is used, this field represents the Highest Value window type (Day 7 Highest Value or Day 0 Highest Value). The system will aim to spend your budget fully and maximize the value of results within the first seven days or within the current day.
Note:
- This setting, if specified, must be the same across all ad groups within the same campaign.
- VBO IAP and VBO IAA in different scenarios are currently allowlist-only features. If you would like to access them, please contact your TikTok representative.
- Day 0 or day 7 bidding (vbo_window is ZERO_DAY or SEVEN_DAYS) for VBO IAP in Advanced Dedicated Campaign or Android campaign scenarios are currently allowlist-only features. If you would like to access them, please contact your TikTok representative.
- Day 0 or day 7 bidding (vbo_window is ZERO_DAY or SEVEN_DAYS) for VBO IAA in Advanced Dedicated Campaign or Android campaign scenarios are currently allowlist-only features. If you would like to access them, please contact your TikTok representative.
- Once set, this field cannot be updated. | |
| click_attribution_window | body | string | No | Click-through window. This attribution window is the time between when a person clicks your ad and then takes an action.
Use this field to define the timeframe during which conversions can be attributed to the ad group.
Enum values:
- OFF: Off.
- ONE_DAY: 1-day click.
- SEVEN_DAYS: 7-day click.
- FOURTEEN_DAYS: 14-day click.
- TWENTY_EIGHT_DAYS: 28-day click.
- THIRTY_DAYS: 30-day click.
- This value is only valid when promotion_type is MINI_GAME.
- THIRTY_TWO_DAYS: 32-day click.
- This value is only valid when promotion_type is MINI_APP and optimization_event is ACTIVE_PAY.
- ONE_HUNDRED_EIGHTY_DAYS: 180-day click.
- This value is only valid when promotion_type is MINI_APP and optimization_event is ACTIVE_PAY.
To learn about the allowed values of this field for different advertising objective scenarios, refer to Attribution window and event count.
Note:
- If you want to manually configure the attribution windows, you need to pass at least click_attribution_window and view_attribution_window simultaneously, and optionally engaged_view_attribution_window. Note that the engaged_view_attribution_window, once passed, must be accompanied by click_attribution_window and view_attribution_window.
- If you don't manually pass click_attribution_window, engaged_view_attribution_window, view_attribution_window and attribution_event_count, then default settings, if any, will be used. To confirm whether a default setting is used when you don't manually pass this field, use /smart_plus/adgroup/get/.
- Once set, this field cannot be updated. | |
| engaged_view_attribution_window | body | string | No | Engaged view-through window. This attribution window is the time after someone watches at least 6 seconds of your video ad that a conversion is counted.
Use this field to define the timeframe during which conversions can be attributed to the ad group.
Enum values:
- OFF: Off.
- ONE_DAY: 1-day engaged view.
- SEVEN_DAYS: 7-day engaged view.
- FOURTEEN_DAYS: 14-day engaged view.
- This value is only valid in Upgraded Smart+ Ads with Website and App Optimization.
- TWENTY_EIGHT_DAYS: 28-day engaged view.
- This value is only valid in Upgraded Smart+ Ads with Website and App Optimization.
Default value: OFF.
To learn about the allowed values of this field for different advertising objective scenarios, refer to Attribution window and event count.
Note:
- If you want to manually configure the attribution windows, you need to pass at least click_attribution_window and view_attribution_window simultaneously, and optionally engaged_view_attribution_window. Note that the engaged_view_attribution_window, once passed, must be accompanied by click_attribution_window and view_attribution_window.
- If you don't manually pass click_attribution_window, engaged_view_attribution_window, view_attribution_window and attribution_event_count, then default settings, if any, will be used. To confirm whether a default setting is used when you don't manually pass this field, use the /smart_plus/adgroup/get/ interface.
- Once set, this field cannot be updated. | |
| view_attribution_window | body | string | No | View-through window. This attribution window is the time between when a person views your ad and then takes an action.
Use this field to define the timeframe during which conversions can be attributed to the ad group.
Enum values:
- OFF: Off.
- ONE_DAY: 1-day view.
- SEVEN_DAYS: 7-day view.
To learn about the allowed values of this field for different advertising objective scenarios, refer to Attribution window and event count.
Note:
- If you want to manually configure the attribution windows, you need to pass at least click_attribution_window and view_attribution_window simultaneously, and optionally engaged_view_attribution_window. Note that the engaged_view_attribution_window, once passed, must be accompanied by click_attribution_window and view_attribution_window.
- If you don't manually pass click_attribution_window, engaged_view_attribution_window, view_attribution_window and attribution_event_count, then default settings, if any, will be used. To confirm whether a default setting is used when you don't manually pass this field, use/smart_plus/adgroup/get/.
- Once set, this field cannot be updated. | |
| attribution_event_count | body | string | No | Event count (Statistic type).
The way that people\'s actions are counted after only viewing or clicking an ad.
Enum values:
- UNSET: Unset.
- EVERY: Every. To count multiple events from someone as separate conversions.
- ONCE: Once. To count multiple events from someone as 1 conversion.
To learn about the allowed values of this field for different advertising objective scenarios, refer to Attribution window and event count.
Note:
- If you don't manually pass click_attribution_window, engaged_view_attribution_window, view_attribution_window and attribution_event_count, then default settings, if any, will be used. To confirm whether a default setting is used when you don't manually pass this field, use /smart_plus/adgroup/get/.
- Once set, this field cannot be updated. | |
| billing_event | body | string | Yes | Events that you want to pay for.
For enum values, see Enumeration - Billing Event.
Currently, we only support OCPM and CPC:
- When optimization_goal is CLICK, set this field to CPC.
- When optimization_goal is not CLICK, set this field to OCPM.
Note: When CBO is enabled (budget_optimize_on is true) at the campaign level, this setting must be the same across all ad groups within the same campaign. | |
| automated_keywords_enabled | body | boolean | No | Valid only when at the campaign level is_search_campaign is true.
Whether to enable automated keywords and let the system find relevant keywords to expand reach and improve results.
Supported values: true, false.
Default value: false.
Enabling automated keywords is recommended as it complements your manually specified keywords by discovering new opportunities and targeting high-intent search queries that you might have missed. | |
| search_keywords | body | object[] | No | - Required for Search Ads Campaigns (is_search_campaign is true at the campaign level).
- Not supported for non-Search Ads Campaigns (is_search_campaign is false at the campaign level).
A list of search keywords, that is, words or phrases that are used to match your ads with the terms people are searching for.
Max size: 1,000.
To confirm whether an Upgraded Smart+ Campaign is a Search Ads Campaign, call /smart_plus/campaign/get/ and check the is_search_campaign returned for the campaign.
To learn more about how to create Search Ads Campaigns, see Create Upgraded Smart+ Search Ads Campaigns. | |
| targeting_optimization_mode | body | string | No | Audience targeting optimization mode.
- AUTOMATIC: Automatic targeting. You can use automatic targeting to leverage real-time data and machine learning to target audiences most likely to engage with your ads.
- For an ad group that is not an Upgraded Smart+ Catalog Ad Group for App, when targeting_optimization_mode is AUTOMATIC, you can set suggestion_audience_enabled to false or true.
- When targeting_optimization_mode is AUTOMATIC and suggestion_audience_enabled is false, you can specify the following optional audience control settings:
- location_ids
- zipcode_ids
- spc_audience_age
- languages
- operating_systems
- excluded_audience_ids
- When targeting_optimization_mode is AUTOMATIC and suggestion_audience_enabled is true, you can specify additional audience targeting settings as suggestions that guide automatic targeting. To learn more about the available settings, see the description of the parameter suggestion_audience_enabled.
- For an Upgraded Smart+ Catalog Ad Group for App (at the campaign level sales_destination is APP), when targeting_optimization_mode is AUTOMATIC, you can only set suggestion_audience_enabled to false.
- When targeting_optimization_mode is AUTOMATIC and suggestion_audience_enabled is false , you can specify the following optional audience control settings:
- location_ids
- zipcode_ids
- spc_audience_age
- languages
- audience_ids
- excluded_audience_ids
- gender
- MANUAL: Custom targeting. You can use custom targeting settings to precisely control who sees your ads. This may limit delivery and impact campaign performance.
- When targeting_optimization_mode is MANUAL, you can specify the following audience settings:
- location_ids
- zipcode_ids
- age_groups
- gender
- languages
- audience_ids
- excluded_audience_ids
- included_pangle_audience_package_ids
- excluded_pangle_audience_package_ids
- interest_category_ids
- interest_keyword_ids
- purchase_intention_keyword_ids
- actions
- smart_interest_behavior_enabled
- smart_audience_enabled
- spending_power
- household_income
- operating_systems
- min_android_version
- min_ios_version
- device_model_ids
- network_types
- carrier_ids
- isp_ids
- device_price_ranges
- saved_audience_id
Default value: AUTOMATIC.
Note: If you specify targeting settings that don’t align with your targeting optimization mode settings (targeting_optimization_mode and suggestion_audience_enabled), those settings will be ignored, and no errors will occur. | |
| suggestion_audience_enabled | body | boolean | No | Valid only when targeting_optimization_mode is AUTOMATIC.
Whether to enable audience suggestions.
Audience suggestions guide automatic targeting by specifying additional audience settings. These serve as suggestions only, and delivery to those audiences is not guaranteed.
Supported values: true (recommended), false.
Default value: false.
When suggestion_audience_enabled is true, you can specify the following additional audience targeting settings:
- age_groups
- gender
- audience_ids
- interest_category_ids
- interest_keyword_ids
- purchase_intention_keyword_ids
- actions
Note:
- If you specify targeting settings that don’t align with your targeting optimization mode settings (targeting_optimization_mode and suggestion_audience_enabled), those settings will be ignored, and no errors will occur.
- You cannot set this field to true if Realtime API (RTA) is enabled at the campaign level. | |
| targeting_spec | body | object | Yes | Targeting settings.
The targeting settings that you can specify vary based on the values for targeting_optimization_mode and suggestion_audience_enabled. To learn more about the available settings, see the descriptions of the two parameters. | |
| budget_mode | body | string | No | - Required when Campaign Budget Optimization (CBO) is disabled (budget_optimize_on is false) at the campaign level.
- Ignored when CBO is enabled (budget_optimize_on is true) at the campaign level.
Ad group budget mode.
Enum values:
- BUDGET_MODE_TOTAL: Lifetime budget.
- BUDGET_MODE_DYNAMIC_DAILY_BUDGET: Dynamic daily budget. It is the average daily budget over a week. Daily costs will not exceed 125% of the average daily budget. Weekly costs will not exceed the average daily budget * 7.
Note:
- This setting, if specified, must be the same across all ad groups within the same campaign.
- If this field is set to BUDGET_MODE_TOTAL, then schedule_type must be SCHEDULE_START_END, which requires an end date (schedule_end_time).
- When at the campaign level budget_optimize_on is false and budget_mode is BUDGET_MODE_DAY, you can only set this field to BUDGET_MODE_DYNAMIC_DAILY_BUDGET. | |
| budget_auto_adjust_strategy | body | string | No | Valid only when the following conditions are all met:
- At the campaign level: budget_optimize_on is false.
- At the ad group level:
- When objective_type is APP_PROMOTION:
- budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET.
- optimization_goal is VALUE.
- deep_bid_type is VO_MIN_ROAS.
- vbo_window is ZERO_DAY.
- When objective_type is LEAD_GENERATION:
- budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET.
- bid_type isBID_TYPE_CUSTOM.
The ad group budget strategy for custom ad group budget.
Enum values:
- AUTO_BUDGET_INCREASE: To enable Goal-based budget increase. Allow your budget to automatically increase when your ads are performing well and target CPA, Day 0 target ROAS, and budget requirements are met.
- When budget_auto_adjust_strategy is AUTO_BUDGET_INCREASE, the specified budget will be the initial daily budget. Your daily budget will be allowed to automatically increase by 20%, up to 10 times per day, when your budget utilization reaches 90% or more. Your daily budget will reset to your original daily budget each day.
- UNSET: To disable Goal-based budget increase.
Note: Enabling Goal-based budget increase is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative. | |
| budget | body | float | No | - Required when Campaign Budget Optimization (CBO) is disabled (budget_optimize_on is false) at the campaign level.
- Ignored when CBO is enabled (budget_optimize_on is true) at the campaign level.
Fixed ad group budget or initial ad group budget.
- When budget_auto_adjust_strategy is UNSET, this field represents your fixed ad group budget.
- When budget_auto_adjust_strategy is AUTO_BUDGET_INCREASE, this field represents your initial ad group budget. To retrieve the current ad group budget, check the returned current_budget.
For how to configure budget settings, see Budget. To directly see the daily budget value range for a currency, see Currency-Daily budget value range. | |
| min_budget | body | float | No | Valid only when the following conditions are all met:
- At the campaign level:
- budget_optimize_on is true
- budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET
- At the ad group level:
- bid_type is BID_TYPE_NO_BID
Ad group minimum budget.
The system will aim to spend at least this amount, but it is not guaranteed. | |
| schedule_type | body | string | Yes | Schedule type.
Enum values:
- SCHEDULE_FROM_NOW: To run the ad group continuously after the scheduled start time.
- You can only set schedule_type to SCHEDULE_FROM_NOW in any of the following scenarios:
- At the campaign level, budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET
- At the ad group level, budget_mode is BUDGET_MODE_DYNAMIC_DAILY_BUDGET
- SCHEDULE_START_END: To run the ad group between the scheduled start time and end time. | |
| schedule_start_time | body | string | Yes | Schedule start time, in the format ofYYYY-MM-DD HH:MM:SS (UTC+0).
The start time can be up to 12 hours earlier than the current time, but cannot be later than 2028-01-01 00:00:00. | |
| schedule_end_time | body | string | No | Required when schedule_type is SCHEDULE_START_END.
Schedule end time, in the format of YYYY-MM-DD HH:MM:SS (UTC+0).
The end time cannot be later than 2038-01-01 00:00:00. | |
| movie_premiere_date | body | string | No | Valid when the following conditions are all met:
- At the campaign level:
- objective_type is APP_PROMOTION.
- app_promotion_type is APP_INSTALL.
- is_promotional_campaign is true.
- You are allowlisted to use promotion campaign settings for theatrical releases.
The theatrical release date, in the format of YYYY-MM-DD (UTC+0).
Providing the movie release date allows the system to incorporate this timing into performance enhancements. | |
| dayparting | body | string | No | 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: An all-1 value and when this field is not specified, are considered full-time delivery. | |
| is_hfss | body | boolean | No | Valid only when targeting_optimization_mode is MANUAL.
Whether the promoted content is HFSS (High Fat, Salt, Sugar) Product/Brand.
If your ad is promoting or prominently featuring a product/brand classed as high in fat, salt or sugar, set this field to true.
In regulated regions, HFSS ads must only be targeted to users aged 18 or over.
You can set this field to truewhen your targeting locations include locations in the UK, Australia, New Zealand, and the European Union.
Supported values: true, false.
Default value: false. | |
| is_lhf_compliance | body | boolean | No | When the targeting locations include locations in the UK and is_hfss is true, this field is required and must be set to true.
Whether the promoted content complies with LHF (Less Healthy Foods) regulations.
By setting is_lhf_compliance to 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.
Default value: false. | |
| placement_type | body | string | No | The placement strategy that decides where your ads will be shown.
Enum values:
- PLACEMENT_TYPE_AUTOMATIC: Automatic Placement. TikTok's ad system will use smart calculations to give you the best combination of ad placements across all apps.
- PLACEMENT_TYPE_NORMAL: Select Placement. By selecting your placement manually, you\'ll be able to choose the apps to deliver your ads on.
By default, the system will automatically configure placements for your Upgraded Smart+ Campaigns based on your other settings and select high-quality traffic from various placements to deliver better results.
However, in cases where only Select Placement is supported, omitting the placement parameters (placement_type and placements) might trigger a placement error. In such cases, you need to manually set placement_type to PLACEMENT_TYPE_NORMAL and specify placements.
Note:
- placement_type cannot be updated after the ad group has been created.
- If you set this field to PLACEMENT_TYPE_AUTOMATIC, the actual supported placements will be shown in the returned placements. For instance, if the actual supported placement is TikTok only, the returned placements value will be PLACEMENT_TIKTOK. | |
| placements | body | string[] | No | - When placement_type is PLACEMENT_TYPE_NORMAL, this field is required.
- When placement_type is PLACEMENT_TYPE_AUTOMATIC, this field is ignored and overwritten to the combination of ad placements that the TikTok ad system selects for your ad.
The apps where you want to deliver your ads.
Enum values:
- PLACEMENT_TIKTOK: TikTok.
- PLACEMENT_PANGLE: Pangle.
- PLACEMENT_GLOBAL_APP_BUNDLE: Global App Bundle.
Note:
- placements cannot be updated after the ad group has been created.
- The available locations you can target with the Global App Bundle placement (PLACEMENT_GLOBAL_APP_BUNDLE) are: Brazil, Indonesia, Vietnam, the Philippines, Thailand, Malaysia, Mexico, Saudi Arabia, and Japan.
- The Global App Bundle placement (PLACEMENT_GLOBAL_APP_BUNDLE) does not support the optimization goal Landing Page View (optimization_goal=TRAFFIC_LANDING_PAGE_VIEW). To learn about the optimization goal, refer to the section Enumerations-Optimization Goal. | |
| tiktok_subplacements | body | string[] | No | Valid only when the following conditions are met:
- At the campaign level: objective_type is APP_PROMOTION, LEAD_GENERATION, or WEB_CONVERSIONS.
- At the ad group level: placement_type is PLACEMENT_TYPE_NORMAL and placements includes PLACEMENT_TIKTOK.
The subplacements within TikTok for your ads, allowing you to choose where your ads will appear.
Enum values:
- LEMON8: Lemon8, a community app for lifestyle content, focusing on real-life experiences, tips, guides, and product reviews. By including Lemon8 as a subplacement, your ads will appear in its For You feed, Search feed, and Immersive Video feed. Learn more about Lemon8 for Performance Auction.
- PINE_DRAMA: PineDrama, an app for watching short-form dramas. Ads will be placed on recommendation pages, within episode streams, and more. Learn more about PineDrama for Performance Auction.
Note:
- Using the Lemon8 subplacement (LEMON8) in your ad group is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- The Lemon8 subplacement (LEMON8) is not supported when rta_id is specified at the campaign level.
- If you want to use the Lemon8 subplacement (LEMON8) in Lead Generation campaigns (with objective_type as LEAD_GENERATION at the campaign level), ensure that at the ad group level promotion_type is LEAD_GENERATION.
- Using the PineDrama subplacement (PINE_DRAMA) in your ad group is currently an allowlist-only feature. If you would like to access it, please contact your TikTok representative.
- When you use the PineDrama subplacement, the regions you can target include Brazil, Indonesia, Mexico, Thailand, the United States, and Vietnam.
- Once set, this field cannot be updated. | |
| comment_disabled | body | boolean | No | Whether to allow comments on your campaigns on TikTok.
Supported values: true, false.
Default value: false. | |
| share_disabled | body | boolean | No | Whether to disable sharing of the campaign to third-party platforms.
Supported values: true, false.
Default value: false. | |
| video_download_disabled | body | boolean | No | Whether users can download your video ads on TikTok.
Supported values: true, false.
Default value: false. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"request_id":"","campaign_id":"","adgroup_name":"","promotion_type":"","optimization_goal":"","optimization_locations":[{}],"phone_info":{},"bid_type":"","billing_event":"","search_keywords":[{}],"targeting_spec":{},"schedule_type":"","schedule_start_time":""}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/",
params={},
json={
"request_id": "",
"campaign_id": "",
"adgroup_name": "",
"promotion_type": "",
"optimization_goal": "",
"optimization_locations": [
{}
],
"phone_info": {},
"bid_type": "",
"billing_event": "",
"search_keywords": [
{}
],
"targeting_spec": {},
"schedule_type": "",
"schedule_start_time": ""
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"request_id":"","campaign_id":"","adgroup_name":"","promotion_type":"","optimization_goal":"","optimization_locations":[{}],"phone_info":{},"bid_type":"","billing_event":"","search_keywords":[{}],"targeting_spec":{},"schedule_type":"","schedule_start_time":""}),
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/tiktok_business/smart_plus/adgroup/create/' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"request_id":"","campaign_id":"","adgroup_name":"","promotion_type":"","optimization_goal":"","optimization_locations":[{}],"phone_info":{},"bid_type":"","billing_event":"","search_keywords":[{}],"targeting_spec":{},"schedule_type":"","schedule_start_time":""}');
$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 the request, which uniquely identifies a request. | |
| data | object | Returned data. | |
| advertiser_id | string | Advertiser ID. | |
| campaign_id | string | Campaign ID. | |
| campaign_name | string | The name of the campaign that the ad group belongs to. | |
| adgroup_id | string | Ad group ID. | |
| adgroup_name | string | Ad group name. | |
| operation_status | string | Operation status. Enum values: - `ENABLE` : The ad group is enabled (in 'ON' status). - `DISABLE`: The ad group is disabled (in 'OFF' status). | |
| secondary_status | string | Ad group secondary status. For enum values, see Enumeration- Ad group Status - Secondary Status. | |
| catalog_id | string | Returned when `catalog_enabled` is `true` at the campaign level. The ID of the catalog used in the ad group. | |
| catalog_authorized_bc_id | string | Returned when `catalog_enabled` is `true` at the campaign level. The ID of the Business Center that the catalog (`catalog_id`) belongs to. | |
| product_source | string | Product source where you want to get products for promotion. Enum value: `CATALOG` (catalog). | |
| promotion_type | string | Promotion type (Optimization location). You can decide where you'd like to promote your products using this field. Currently, we support `APP_ANDROID`, `APP_IOS`, `WEBSITE`, `MINI_GAME`, `NATIVE_SERIES`, `LEAD_GENERATION`, and `LEAD_GENERATION_MULTI_DESTINATION`. - When `objective_type` is `APP_PROMOTION` and `app_promotion_type` is `APP_INSTAL`, this field will be `APP_ANDROID` or `APP_IOS`. - When `objective_type` is `APP_PROMOTION` and `app_promotion_type` is `MINIS`, this field will be `MINI_APP`, `MINI_GAME`, or `NATIVE_SERIES`. - When `objective_type` is `WEB_CONVERSIONS`: - If `sales_destination` is `WEBSITE`, this field will be `WEBSITE`. - If `sales_destination` is `APP`, this field will be `APP_ANDROID` or `APP_IOS`. - When `objective_type` is `LEAD_GENERATION`, this field will be any of the following values: - `LEAD_GENERATION` - `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` - `LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE` - `LEAD_GEN_CLICK_TO_CALL` - `LEAD_GENERATION_MULTI_DESTINATION` | |
| optimization_locations | object[] | Returned when `promotion_type` is `LEAD_GENERATION_MULTI_DESTINATION`. A list of optimization locations for the Lead Generation ad group. To learn about the ad type where this field can be used, see Create an Upgraded Smart+ Lead Generation Campaign with multiple location selection. | |
| promotion_type | string | Promotion type (Optimization location). You can decide where you want audiences to convert or complete an action. Enum values: `LEAD_GENRATION`, `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE`. | |
| promotion_target_type | string | The optimization location for Lead Generation objective. Enum values: - `INSTANT_PAGE`: Instant Form. To create a fast-loading in-app TikTok Instant Form to collect more leads. - `EXTERNAL_WEBSITE`: Website Form. To use a landing page that has the Website Form or the TikTok Instant Page that redirects to the website with the Website Form to collect more leads. | |
| optimization_event | string | Optimization event. Enum values: - `ON_WEB_REGISTER`: Complete registration. - `CONSULT`: Contact. - `FORM`: Submit form. - `ON_WEB_SUBSCRIBE`: Subscribe. | |
| promotion_website_type | string | TikTok Instant Page type. Currently, we only support `TIKTOK_NATIVE_PAGE`(To use TikTok Instant Page). | |
| promotion_target_type | string | The optimization location for Lead Generation objective. Enum values: - `INSTANT_PAGE`: Instant Form. To create a fast-loading in-app TikTok Instant Form to collect more leads. - `EXTERNAL_WEBSITE`: Website Form. To use a landing page that has the Website Form or the TikTok Instant Page that redirects to the website with the Website Form to collect more leads. | |
| optimization_goal | string | The measurable results that you'd like to drive your ads with. For enum values, see Enumeration - Optimization Goal. | |
| app_id | string | The App ID of the app to promote. To get a list of App IDs, use /app/list/. | |
| gaming_ad_compliance_agreement | string | Returned only in any of the following scenarios: - Scenario 1: When the following conditions are both met at the campaign level: - `objective_type` is `APP_PROMOTION`. - `app_promotion_type` is `APP_RETARGETING`. - Scenario 2: When the following conditions are all met at the campaign level: - `objective_type` is `APP_PROMOTION`. - `app_promotion_type` is `APP_INSTALL`. - `campaign_type` is `REGULAR_CAMPAIGN`. Whether to agree to the Compliance Assurance Policy for Gaming Advertisers on TikTok. The policy is as follows: Yo confirms and attest that any gaming application, product or service (game) you desire to advertise on TikTok, including any associated URL(s), (a) complies with all applicable laws and regulations of the jurisdictions where the game can be accessed or played, and upon request, can provide supporting documentation as evidence of why the game is not considered illegal gambling or lottery; and (b) has not been and is not part of any investigation or lawsuit regarding the game's legality or regulatory compliance. Enum values: - `ON`: To agree to the policy. - `OFF`: To leave the policy not accepted. | |
| pixel_id | string | Pixel ID. | |
| app_config | object[] | Returned when `sales_destination` is `WEB_AND_APP`. Details of the app or apps to promote. | |
| app_id | string | The App ID of the app to promote. | |
| minis_id | string | Returned when `promotion_type` is `MINI_APP` or `MINI_GAME`. The ID of the TikTok Mini. | |
| optimization_event | string | Conversion event for the ad group. See Conversion events for more. Note: If you enable Value-Based Optimization during ad group creation by setting your `optimization_event` to either `IMPRESSION_LEVEL_AD_REVENUE` or `AD_REVENUE_VALUE`(note that both enums are equivalent and have the exact same effect), you will always receive `IMPRESSION_LEVEL_AD_REVENUE` as the `optimization_event` in the response. | |
| custom_conversion_id | string | The ID of the Custom Conversion used in the ad group. | |
| deep_funnel_optimization_status | string | With deep funnel optimization, you can select a secondary event alongside the primary optimization event, which can help improve campaign effectiveness. Enum values: - `ON`: enabled. - `OFF`: disabled. | |
| deep_funnel_event_source | string | Returned when `deep_funnel_optimization_status` is `ON`. The event source type. Enum values: - `PIXEL`: Pixel. - `OFFLINE`: Offline Event Set. - `CRM`: CRM Event Set. | |
| deep_funnel_event_source_id | string | Returned when `deep_funnel_optimization_status` is `ON`. Event Source ID. - When `deep_funnel_event_source` is `PIXEL` , this field represents a Pixel ID. - When `deep_funnel_event_source` is `OFFLINE`, this field represents an Offline Event Set ID. - When `deep_funnel_event_source` is `CRM`, this field represents a CRM Event Set ID. | |
| deep_funnel_optimization_event | string | Returned when `deep_funnel_optimization_status` is `ON`. Deep funnel optimization event. Example: `SHOPPING`. | |
| app_attribution_source | string | Attribution source for your app. The attribution source you choose will be used for optimization, bidding, and reporting. Enum values: - `MMP`: MMP (mobile measurement partner) attribution. Signals from your selected MMP will be used for attribution. - `SAN`: SAN (self-attribution network) attribution. Signals from TikTok SAN will be used for attribution. | |
| app_data_source | string | Data source for your app. The attribution signals you select will be used for reporting. Enum values: - `MMP`: MMP signals. Signals from your MMP will be used for reporting. - `EVENT_SDK`: App Events SDK signals. Signals from TikTok App Events SDK will be used for reporting. - `EVENT_API`: Events API signals. Signals from TikTok Events API will be used for reporting. | |
| identity_id | string | Returned only in any of the following scenarios: - Scenario 1: When `promotion_type` is `NATIVE_SERIES`. - Scenario 2: When `promotion_type` is `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads. Identity ID. | |
| identity_type | string | Returned only in any of the following scenarios: - Scenario 1: When `promotion_type` is `NATIVE_SERIES`. - Scenario 2: When `promotion_type` is `LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE` and your ad account is allowlisted for selecting a TikTok account at the ad group level in TikTok Direct Messaging Ads. Identity type. Enum values: - `TT_USER` : TikTok Business Account User. - `BC_AUTH_TT`: The TikTok account that a Business Center is authorized to access. See Identities for details. | |
| identity_authorized_bc_id | string | Returned when `identity_type` is `BC_AUTH_TT`. ID of the Business Center that a TikTok Account User in Business Center identity is associated with. | |
| native_series_id | string | The ID of a TikTok Series. Series offers exclusive and premium video packages produced by creators. Access to Series is available to purchase through the creator's profile and links attached to TikTok videos. | |
| messaging_app_type | string | The type of instant messaging app or customized URL to use in the Instant Messaging Ad Group. Enum values: - `MESSENGER`: Messenger. - `WHATSAPP`: WhatsApp. - `ZALO`: Zalo. - `LINE`: Line. - `IM_URL`: Instant Messaging URL. To learn more about how to create Upgraded Smart+ TikTok Instant Messaging Ads, see Create an Upgraded Smart+ Lead Generation Campaign with optimization location as instant messaging apps. | |
| zalo_id_type | string | The type of Zalo contact format. Enum values: - `ZALO_OFFICIAL_ACCOUNT`: Zalo Official Account ID. - `ZALO_PHONE_ACCOUNT`: Zalo phone number. | |
| messaging_app_account_id | string | The ID of the instant messaging app account. - When `messaging_app_type` is `MESSENGER`, this field represents the Facebook Page ID. - When `messaging_app_type` is `LINE`, this field represents the LINE Business ID. - When `zalo_id_type` is `ZALO_OFFICIAL_ACCOUNT`, this field represents the Zalo Official Account ID. - When `messaging_app_type` is `WHATSAPP` or when `zalo_id_type` is `ZALO_PHONE_ACCOUNT`, this field represents the WhatsApp or Zalo phone number automatically populated based on the specified `phone_info`. | |
| message_event_set_id | string | The ID of the message event set to be used in the Instant Messaging Ad Group. If the instant messaging app account, either the Messenger account or Zalo Official Account specified via `messaging_app_account_id` or the WhatsApp or Zalo phone account matched from the specified `phone_info`, in your ad group settings matches an existing event set, this field will be automatically populated with the unique message event set associated with the instant messaging app account you choose. | |
| phone_info | object | Details of WhatsApp or Zalo phone number. | |
| phone_region_code | string | The region code for WhatsApp or Zalo phone number. Example: `US`. | |
| phone_region_calling_code | string | The region calling code for the WhatsApp or Zalo phone number. Example: `+1`. | |
| phone_number | string | The WhatsApp or Zalo phone number. | |
| bid_type | string | Bidding strategy. For enum values and their descriptions, see Enumeration - Bidding Strategy. | |
| bid_price | float | The target cost per click. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount. | |
| conversion_bid_price | float | The target cost per conversion or cost per landing page view. The system will aim to get the most results while keeping the average cost per result around or lower than the specified amount. | |
| deep_bid_type | string | Bidding strategy for in-app events. For enum values and their descriptions, see Enumeration - Deep Event Bidding Strategy. | |
| roas_bid | float | Target ROAS for Value-Based Optimization. | |
| value_rule_set_id | string | ID of the value rule set associated with the ad group. | |
| incentive_offer_type | string | The type of incentive offer applicable to the Upgraded Smart+ Ad Group. If your ad group meets the eligibility criteria and exceeds certain CPA or Minimum ROAS/Target ROAS thresholds, you will be incentivized with ad credits to use within the same ad account. To learn more about the incentive offer eligibility criteria and the calculation of incentive amount, see Smart+ Platform Incentive Offer (Cost Cap/Minimum ROAS/Target ROAS). Enum values: - `INELIGIBLE`: The ad group is ineligible for any incentive offer. - `COST_CAP_AND_MIN_ROAS`: The ad group uses the Cost Cap or Minimum ROAS/Target ROAS bidding strategy and is eligible for the incentive offer. - To check the bid protection (incentive offer) eligibility for a list of Upgraded Smart+ Campaigns or Upgraded Smart+ Ad Groups, use /report/bid_protection/status/get/. - To retrieve the bid protection history and ad credit from the past 60 days for a list of Upgraded Smart+ Campaigns or Upgraded Smart+ Ad Groups, use /report/bid_protection/detail/get/. | |
| vbo_window | string | The time window of the specified bidding strategy for VBO IAA (Value-Based Optimization for in-app advertising) or VBO IAP (Value-Based Optimization for in-app purchase). Enum values: - `SEVEN_DAYS`: The first seven days (day 7). - `ZERO_DAY`: The current day (day 0). | |
| click_attribution_window | string | Click-through window. This attribution window is the time between when a person clicks your ad and then takes an action. Enum values: - `OFF`: Off. - `ONE_DAY`: 1-day click. - `SEVEN_DAYS`: 7-day click. - `FOURTEEN_DAYS`: 14-day click. - `TWENTY_EIGHT_DAYS`: 28-day click. - `THIRTY_DAYS`: 30-day click. - `THIRTY_TWO_DAYS`: 32-day click. - `ONE_HUNDRED_EIGHTY_DAYS`: 180-day click. | |
| engaged_view_attribution_window | string | Engaged view-through window. This attribution window is the time after someone watches at least 6 seconds of your video ad that a conversion is counted. Enum values: - `OFF`: off. - `ONE_DAY`: 1-day engaged view. - `SEVEN_DAYS`: 7-day engaged view. - `FOURTEEN_DAYS`: 14-day engaged view. - `TWENTY_EIGHT_DAYS`: 28-day engaged view. | |
| view_attribution_window | string | View-through window. This attribution window is the time between when a person views your ad and then takes an action. Enum values: - `OFF`: Off. - `ONE_DAY`: 1-day view. - `SEVEN_DAYS`: 7-day view. | |
| attribution_event_count | string | Event count (Statistic type). The way that people's actions are counted after only viewing or clicking an ad. Enum values: - `UNSET`: Unset. - `EVERY`: Every. To count multiple events from someone as separate conversions. - `ONCE`: Once. To count multiple events from someone as 1 conversion. | |
| billing_event | string | Billing event. For enum values, see Enumerations - Billing event. | |
| pacing | string | Delivery type. Your choice of ad delivery type determines the speed at which your daily budget is used. Enum values: - `PACING_MODE_SMOOTH`: Standard. Your budget will be used as evenly as possible depending on market demand and peaktime rates. This delivery type is suitable for advertisers who prefer steady spending. | |
| automated_keywords_enabled | boolean | Whether to enable automated keywords and let the system find relevant keywords to expand reach and improve results. Supported values: `true`, `false`. | |
| search_keywords | object[] | Returned only for Search Ads Campaigns. A list of search keywords, that is, words or phrases that are used to match your ads with the terms people are searching for. | |
| keyword | string | The search keyword. | |
| match_type | string | The match type for the search keyword. Enum values: - `PRECISE_WORD`: exact match. Ads only show when a search includes the exact phrase or close variations, with additional words allowed before or after. - `PHRASE_WORD`: phrase match. Ads only show when a search exactly matches your keyword or a very close variation. - `BROAD_WORD`: broad match. Ads are shown for a wide range of relevant searches to offer the widest reach. | |
| audit_status | string | The review status of the search keyword. Enum values: - `AUDITING`: The keyword is under review. - `PASS`: The keyword has passed review and can be delivered. - `REJECTED`: The keyword failed to pass the review and cannot be delivered. | |
| reject_info | object[] | Returned only when `audit_status` is `REJECTED`. Details about the rejection. | |
| forbidden_location | string | The targeted region that failed the review. For enum values, see Appendix - Location codes. | |
| reject_reasons | object[] | List of rejection reasons. | |
| reason | string | The rejection reason. | |
| budget_mode | string | Ad group budget mode. Enum values: - `BUDGET_MODE_TOTAL`: Lifetime budget. - `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`: Dynamic daily budget. It is the average daily budget over a week. Daily costs will not exceed 125% of the average daily budget. Weekly costs will not exceed the average daily budget * 7. | |
| budget_auto_adjust_strategy | string | Returned only when the following conditions are both met: - At the campaign level: `budget_optimize_on` is `false`. - At the ad group level: `budget_mode` is `BUDGET_MODE_DYNAMIC_DAILY_BUDGET`. The ad group budget strategy for custom ad group budget. Enum values: - `AUTO_BUDGET_INCREASE`: To enable Goal-based budget increase. Allow your budget to automatically increase when your ads are performing well and target CPA, Day 0 target ROAS, and budget requirements are met. - When `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`, the specified `budget` will be the initial daily budget. Your daily budget will be allowed to automatically increase by 20%, up to 10 times per day, when your budget utilization reaches 90% or more. Your daily budget will reset to your original daily budget each day. - `UNSET`: To disable Goal-based budget increase. | |
| budget | float | Fixed ad group budget or initial ad group budget. - When `budget_auto_adjust_strategy` is `UNSET`, this field represents your fixed ad group budget. - When `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`, this field represents your initial ad group budget. To retrieve the current campaign budget, check the returned `current_budget`. | |
| current_budget | float | Returned only when `budget_auto_adjust_strategy` is `AUTO_BUDGET_INCREASE`. Current ad group budget for an ad group with Goal-based budget increase enabled. | |
| min_budget | float | Ad group minimum budget. The system will aim to spend at least this amount, but it is not guaranteed. | |
| schedule_type | string | Schedule type. Enum values: - `SCHEDULE_FROM_NOW`: To run the ad group continuously after the scheduled start time. - `SCHEDULE_START_END`: To run the ad group between the scheduled start time and end time. | |
| schedule_start_time | string | Ad group delivery start time, in the format of `YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| schedule_end_time | string | Ad group delivery end time, in the format of`YYYY-MM-DD HH:MM:SS` (UTC+0). | |
| movie_premiere_date | string | The theatrical release date, in the format of `YYYY-MM-DD` (UTC+0). Providing the movie release date allows the system to incorporate this timing into performance enhancements. | |
| dayparting | string | Ad delivery arrangement, in the format of a string that consists of 48 x 7 characters. Each character is mapped to a 30-minute timeframe from Monday to Sunday. Each character can be set to either 0 or 1. 1 represents delivery in the 30-minute timeframe, and 0 stands for non-delivery in the 30-minute timeframe. The first character is mapped to 0:01-0:30 of Monday; The second character is mapped to 0:31-1:00 of Monday, and the last character represents 23:31-0:00 Sunday. Note: All-0 and all-1 values are considered full-time delivery. | |
| targeting_optimization_mode | string | Audience targeting optimization mode. - `MANUAL`: Custom targeting. You can use custom targeting settings to precisely control who sees your ads. This may limit delivery and impact campaign performance. - `AUTOMATIC`: Automatic targeting. You can use automatic targeting to leverage real-time data and machine learning to target audiences most likely to engage with your ads | |
| suggestion_audience_enabled | boolean | Whether to enable audience suggestions. Audience suggestions guide automatic targeting by choosing additional audience settings. These serve as suggestions only, and delivery to those audiences is not guaranteed. Supported values: `true`, `false`. | |
| targeting_spec | object | Targeting settings. | |
| app_targeting_type | string | Returned only when the following conditions are all met: - At the campaign level: - `objective_type` is `WEB_CONVERSIONS` - `sales_destination` is `APP`. - `optimization_goal` is `CLICK`, `IN_APP_EVENT`, or `VALUE`. App targeting type. Enum values: - `PROSPECT`: Prospecting. Find prospective customers, including those who have not interacted with your products. - `RETARGETING`: Retargeting. Show ads to people who have already interacted with your business on and off TikTok. | |
| location_ids | string[] | IDs of the locations that you want to target. | |
| zipcode_ids | string[] | Zip code IDs or postal code IDs of the targeted locations. | |
| spc_audience_age | string | The age group that the ad group targets. Enum values: - `ALL`: all age groups. - `OVER_EIGHTEEN`: 18+. - `OVER_TWENTY_FIVE`: 25+. | |
| languages | string[] | Codes of the languages that you want to target. For the list of language codes supported, see Enumerations - Language Code. | |
| operating_systems | string[] | Device operating systems that you want to target. Enum values: `ANDROID`, `IOS` | |
| excluded_audience_ids | string[] | List of audience IDs to be excluded. | |
| age_groups | string[] | Age groups you want to target. For enum values, see Enumeration - Age Group. | |
| gender | string | Gender that you want to target. Enum values: `GENDER_FEMALE`, `GENDER_MALE`, `GENDER_UNLIMITED`. | |
| audience_ids | string[] | A list of audience IDs. | |
| shopping_ads_retargeting_type | string | The retargeting type. Enum values: - `LAB1`: Retargeting audiences who viewed products or added products to cart but didn't purchase products. - `LAB2`: Retargeting audiences who added products to cart but didn't purchase products. - `LAB3`: Retargeting audiences using custom combination. - `OFF`: No retargeting. | |
| shopping_ads_retargeting_actions_days | number | Returned when `shopping_ads_retargeting_type` is `LAB1` or `LAB2`. The valid time range for the specified audience action. Audiences who have completed the specified action within the time range will be retargeted. | |
| included_custom_actions | object[] | Details of the catalog audience to include. Catalog audience is based on people's interactions with specific products and often drives better performance than custom audience. | |
| code | string | The custom action used to filter the audiences to be retargeted. Enum values: - `VIEW_PRODUCT`: The audience viewed the product. - `ADD_TO_CART`: The audience added the product to the cart. - `PURCHASE`: The audience purchased the product. | |
| days | integer | The time range used to filter the audiences that completed the specified action. | |
| excluded_custom_actions | object[] | Details of the catalog audience to exclude. Improve ad performance by excluding products that people have already interacted with, ensuring they only see relevant ads from your brand. | |
| code | string | The custom action used to filter out the audiences. Enum values: - `VIEW_PRODUCT`: The audience viewed the product. - `ADD_TO_CART`: The audience added the product to the cart. - `PURCHASE`: The audience purchased the product. | |
| days | integer | The time range used to filter out the audiences that completed the specified action. | |
| shopping_ads_retargeting_custom_audience_relation | string | The logical relation between the retargeting audience specified by `shopping_ads_retargeting_type` and the custom audience specified by `audience_ids`. Enum values: - `OR`: To combine the retargeting audience and the custom audience to create the targeted audience. The ad group will target anyone in catalog or custom audiences. - `AND`: To intersect between the retargeting audience and the custom audience to create the targeted audience. The ad group will target individuals who belong to both the retargeting audience and the custom audience. | |
| included_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to include. | |
| excluded_pangle_audience_package_ids | string[] | IDs of the Pangle audiences that you want to exclude. | |
| interest_category_ids | string[] | IDs of general interest keywords that you want to use to target audiences. | |
| interest_keyword_ids | string[] | IDs of additional interest categories that you want to use to target audience. To search for additional interest categories, use /targeting/search/ (recommended) or /tool/interest_keyword/recommend/. | |
| purchase_intention_keyword_ids | string[] | IDs of purchase intention categories that you want to use to target audiences with an interest in purchases related to a content category. | |
| actions | object[] | A list of targeting behavioral category objects. | |
| action_scene | string | The type of user behavior that you want to target. Enum values: - `VIDEO_RELATED`: Video interactions. - `CREATOR_RELATED`: Creator interactions. - `HASHTAG_RELATED`: Hashtag interactions. | |
| action_period | number | The time period to include behaviors from. | |
| video_user_actions | string[] | The specific user interactions that you want to target for the user behavior type. - If `action_scene` is `VIDEO_RELATED`, the allowed values are: `WATCHED_TO_END`,`LIKED`,`COMMENTED`,`SHARED`. - If `action_scene` is `CREATOR_RELATED`, the allowed values are: `FOLLOWING`, `VIEW_HOMEPAGE`. - If `action_scene` is `HASHTAG_RELATED`, the allowed value is `VIEW_HASHTAG`. | |
| action_category_ids | string[] | IDs of the video interactions categories, creator interactions categories, hashtags, or hashtag bundles that you want to use to target audiences. | |
| smart_interest_behavior_enabled | boolean | Whether Smart interests & behaviors is turned on. Supported values: `true`, `false`. To learn more about Smart interests & behaviors and how to turn on Smart interests & behaviors, see Smart Targeting. | |
| smart_audience_enabled | boolean | Whether to turn on Smart audience. Supported values: `true`, `false`. To learn more about Smart audience and how to turn on Smart audience, see Smart Targeting. | |
| spending_power | string | Spending power that you want to target. Enum values: `ALL`, `HIGH`. If it is set to `HIGH`, you can target high spending users who typically spend more on purchases on TikTok ads than average users. | |
| household_income | string[] | Household income that you want to target. Enum values: `TOP5`(Top 5% of ZIP codes), `TOP10`(Top 10% of ZIP codes), `TOP10_25`(Top 10% -25% of ZIP codes), `TOP25_50`(Top 25% - 50% of ZIP codes). | |
| min_android_version | string | Minimum Android version. For enum values, see Enumeration - Minimum Android Version. | |
| min_ios_version | string | Audience minimum ios version. For enum values, see Enumeration - Minimum iOS Version. | |
| device_model_ids | string[] | List of device model IDs. | |
| network_types | string[] | Network types that you want to target. For enum values, see Enumeration - Connection Type. | |
| carrier_ids | string[] | Carriers that you want to target. | |
| isp_ids | string[] | IDs of the targeted Internet service providers. | |
| device_price_ranges | number[] | Targeting device price range. 10000 means 1000+. The numbers must be in multiples of 50. Note: The upper limit you set will be added by 50 and the resulting new number will be used as the actual upper limit for device targeting. The actual upper limit is shown in the ad group settings in TikTok Ads Manager. If you set and get the price range of [0, 250], it actually means [0, 300]. | |
| saved_audience_id | string | Returned when you have specified `saved_audience_id` when creating an ad group. Saved Audience ID. | |
| blocked_pangle_app_ids | string[] | Pangle app block ID list. | |
| brand_safety_type | string | Inventory filter tier for the Smart+ Campaign. Enum values: - `EXPANDED_INVENTORY`: Expanded inventory. Your ads will not appear next to explicitly inappropriate content, but they may appear next to content that features mature themes. - `STANDARD_INVENTORY`: Standard inventory. Your ads will appear next to content that is appropriate for most brands. - `LIMITED_INVENTORY`: Limited inventory. Your ads will not appear next to content that contains mature themes. - `NO_BRAND_SAFETY`: Full inventory without using any brand safety solution, which means your ads may appear next to some content featuring mature themes. Note: The setting is automatically applied based on your Brand Safety Hub configurations. To retrieve the details of such settings for your ad account, use /tiktok_inventory_filters/get/. | |
| category_exclusion_ids | string[] | Content exclusion category IDs. | |
| is_hfss | boolean | Whether the promoted content is HFSS (High Fat, Salt, Sugar) Product/Brand. Supported values: `true`, `false`. | |
| is_lhf_compliance | boolean | Whether the promoted content complies with LHF (Less Healthy Foods) regulations. When `is_lhf_compliance` is `true`, you confirm that any food or drink products you advertise on TikTok in the UK comply with the 2024 Less Healthy Foods Regulations and all other applicable laws. Supported values: `true`, `false`. | |
| placement_type | string[] | The placement strategy that decides where your ads will be shown. Enum values: - `PLACEMENT_TYPE_AUTOMATIC`: Automatic placement. - `PLACEMENT_TYPE_NORMAL` : Select placement. | |
| placements | string[] | The apps where you want to deliver your ads. Enum values: - `PLACEMENT_TIKTOK`: TikTok. - `PLACEMENT_PANGLE`: Pangle. - `PLACEMENT_GLOBAL_APP_BUNDLE`: Global App Bundle. | |
| tiktok_subplacements | string[] | The subplacements within TikTok for your ads, allowing you to choose where your ads will appear. Enum values: - `LEMON8`: Lemon8, a community app for lifestyle content, focusing on real-life experiences, tips, guides, and product reviews. By including Lemon8 as a subplacement, your ads will appear in its For You feed, Search feed, and Immersive Video feed. Learn more about Lemon8 for Performance Auction. - `PINE_DRAMA`: PineDrama, an app for watching short-form dramas. Ads will be placed on recommendation pages, within episode streams, and more. Learn more about PineDrama for Performance Auction. | |
| search_result_enabled | boolean | Whether to include your ads in Search Ads, namely to show your ads to users when they search for your business on TikTok. Supported values: `true`, `false`. | |
| comment_disabled | boolean | Whether to allow comments on your ads on TikTok. Supported values: `true`, `false`. | |
| share_disabled | boolean | Whether to disable sharing of the campaign to third-party platforms. Supported values: `true`, `false`. | |
| video_download_disabled | boolean | Whether users can download your video ads on TikTok. Supported values: `true`, `false`. | |
| skip_learning_phase | boolean | Whether to skip the learning stage. Supported value: `true`. | |
| create_time | string | The time when the ad group was created, in the format of `YYYY-MM-DD HH:MM:SS`(UTC+0). Example: `2025-01-01 00:00:01`. | |
| modify_time | string | The time when the ad group was last modified, in the format of `YYYY-MM-DD HH:MM:SS`(UTC+0). Example: `2025-01-01 00:00:01`. |
Response sample
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"adgroup_id": "{{adgroup_id}}",
"adgroup_name": "{{adgroup_name}}",
"advertiser_id": "{{advertiser_id}}",
"app_id": "{{app_id}}",
"attribution_event_count": "ONCE",
"bid_type": "BID_TYPE_NO_BID",
"billing_event": "OCPM",
"budget": 0,
"budget_mode": "BUDGET_MODE_INFINITE",
"campaign_id": "{{campaign_id}}",
"campaign_name": "{{campaign_name}}",
"click_attribution_window": "SEVEN_DAYS",
"comment_disabled": false,
"create_time": "{{create_time}}",
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"deep_bid_type": "DEFAULT",
"engaged_view_attribution_window": "SEVEN_DAYS",
"min_budget": 0,
"modify_time": "{{modify_time}}",
"operation_status": "ENABLE",
"optimization_event": "ACTIVE",
"optimization_goal": "INSTALL",
"pacing": "PACING_MODE_SMOOTH",
"placement_type": "PLACEMENT_TYPE_AUTOMATIC",
"placements": [
"PLACEMENT_TIKTOK",
"PLACEMENT_GLOBAL_APP_BUNDLE",
"PLACEMENT_PANGLE"
],
"promotion_type": "APP_ANDROID",
"schedule_end_time": "{{schedule_end_time}}",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_type": "SCHEDULE_START_END",
"search_result_enabled": true,
"secondary_status": "ADGROUP_STATUS_CREATE",
"share_disabled": false,
"skip_learning_phase": true,
"targeting_optimization_mode": "AUTOMATIC",
"targeting_spec": {
"actions": [],
"age_groups": [
"AGE_18_24",
"AGE_25_34",
"AGE_35_44",
"AGE_45_54",
"AGE_55_100"
],
"brand_safety_type": "EXPANDED_INVENTORY",
"gender": "GENDER_UNLIMITED",
"location_ids": [
"1562822"
],
"operating_systems": [
"ANDROID"
],
"spc_audience_age": "OVER_EIGHTEEN",
"spending_power": "ALL"
},
"video_download_disabled": false,
"view_attribution_window": "ONE_DAY"
}
}
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