account | DynamicAccount | Yes | - | Select TikTok Ads account (advertiser) to create ads in |
update_type | string or SelectableOption | Yes | - | Choose whether to create a single ad or multiple ads at once. Options: ‘single’ or ‘bulk’ |
ad_group_id | string or SelectItem | No | - | Select the TikTok ad group for this ad. Required for single ad creation. |
identity_id | string or SelectItem | Yes | - | TikTok identity ID, required for single and bulk ads. Use tiktok_ads_list_identities to find TT_USER or BC_AUTH_TT identities; Markifact resolves the type from the ID. Native DM ads must be Spark Ads with direct-message permission (can_manage_message=true in TikTok identity details). For native DM CLICK, use TT_USER or BC_AUTH_TT; for CONVERSATION, use TT_USER. |
ad_name | string | No | - | Name of the ad |
video_urls | string or array of string | No | - | Video URLs to upload for this ad. Provide 1-50 videos. Smart+ ad groups support multiple video creatives; manual ad groups support 1 video. Supports direct video URLs and Google Drive share links. |
video_ids | string or array of string | No | - | Optional existing TikTok video IDs. Provide 1-50 IDs to skip uploading video_urls. |
thumbnail_urls | string or array of string | No | - | Optional thumbnail image URLs. Provide one per video. If omitted, TikTok auto-generates covers from the videos. |
thumbnail_ids | string or array of string | No | - | Optional existing TikTok image IDs for thumbnails. Provide one per video to skip uploading thumbnail_urls. |
ad_texts | string or array of string | No | - | TikTok ad texts. Manual ad groups support 1 text; Smart+ ad groups support up to 5 texts. Each text must be 100 characters or fewer. |
call_to_action | string or SelectableOption | No | - | Optional TikTok call to action, for example LEARN_MORE, SHOP_NOW, SIGN_UP, CONTACT_US, DOWNLOAD. |
landing_page_url | string | No | - | Landing page URL people open after clicking the ad. You can include UTM parameters, for example ?utm_source=tiktok&utm_id=CAMPAIGN_ID&utm_campaign=CAMPAIGN_NAME&utm_medium=paid. For app download campaigns, provide the app store URL. Omit for native TikTok DMs, phone destinations, or messaging destinations derived from the ad group. TikTok validates whether a URL is needed. |
page_id | string | No | - | Optional TikTok-hosted page, such as an instant page or lead form. When provided, landing_page_url is not sent. Use tiktok_ads_list_pages to find IDs. Call Ads can use a custom TikTok Instant Page instead of a phone destination. Omit for native TikTok DM ads. |
phone_region_code | string | No | - | Manual Call Ads: destination region code, for example NZ. Provide together with phone_region_calling_code and phone_number. Obtain matching codes from /tool/phone_region_code/. WhatsApp/Zalo phone fields belong on the ad group instead. |
phone_region_calling_code | string | No | - | Manual Call Ads: destination calling code including +, for example +64. Provide together with phone_region_code and phone_number. |
phone_number | string | No | - | Manual Call Ads: destination phone number. Provide all three phone fields, or use page_id for a custom TikTok Instant Page destination. TikTok validates destination eligibility. |
auto_message_id | string | No | - | Required for manual native DM ads: welcome message ID from /creative/auto_message/get/ or /creative/auto_message/create/. Use a Spark identity with direct-message permission; omit landing_page_url, page_id, and deep-link fields for this route. |
deeplink | string | No | - | Manual ads: native destination deep link when the selected messaging route requires one. Omit for native TikTok DM ads and when TikTok derives the destination from the ad group. |
deeplink_type | string or SelectableOption | No | - | Manual ads: native TikTok deep-link type when required for the destination. Omit for native TikTok DM ads. |
fallback_type | string or SelectableOption | No | - | Manual ads: native TikTok fallback type when required for the deep link. Omit for native TikTok DM ads. |
tracking_message_event_set_id | string | No | - | Manual instant messaging ads: optional message event set used for tracking. |
tracking_pixel_id | integer or string | No | - | Optional TikTok tracking pixel ID. Usually inherited from the ad group for supported objectives; provide it manually if needed. |
tracking_app_id | string | No | - | Optional TikTok tracking app ID. Usually inherited from the ad group for supported objectives; provide it manually if needed. |
disable_creative_enhancements | boolean | No | True | Single mode only. Disable TikTok automatic creative enhancements. Default: true. |
is_dark_post | boolean | No | True | Whether this ad should show as an ad only and not on your TikTok profile, otherwise, they will appear on your profile for anyone to see and engage with. Default: true which means Only show as ads. |
ad_status | string or SelectableOption | No | - | Status when the ad is created. Options: ENABLE, DISABLE. Default: DISABLE. |
catalog_products | string or array of string | No | - | Optional Smart+ catalog products. Use ‘ALL’ for all products, for example ‘ALL’. Use a product set ID string for a product set, for example ‘7636991234567890123’. Use a comma-separated string or list for specific products, for example ‘product_id_1,product_id_2’ or [‘product_id_1’, ‘product_id_2’]; TikTok allows max 20 product IDs. |
catalog_music_id | string | No | - | Required when catalog_products is provided. Music ID for the catalog carousel creative, for example ‘6745887971053930498’. |
return_detailed_results | boolean | No | False | Bulk mode only. If true, returns per-row results and does not raise on partial failures. |
structured_data | array (also accepts a comma-separated string) | No | - | Use only when update_type is ‘bulk’. Required columns: ad_group_id, ad_name, ad_texts or ad_text_1/ad_text_2 numbered columns, and videos. Destinations are optional for native messaging/call routes. Videos can be provided as video_urls/video_ids lists, or numbered columns like video_1_url, video_2_url. Optional row columns: landing_page_url, phone_region_code, phone_region_calling_code, phone_number, auto_message_id, deeplink, deeplink_type, fallback_type, tracking_message_event_set_id (these native destination fields inherit top-level values unless overridden per row), page_id, thumbnail_urls, thumbnail_ids, thumbnail_1_url, thumbnail_1_id, catalog_products, catalog_music_id, call_to_action, tracking_pixel_id, tracking_app_id, disable_creative_enhancements, is_dark_post, ad_status, or operation_status. |