TikTok Ads tools
Campaign, ad group and ad management, video/image upload, audiences and performance reports.
Tool names and descriptions are generated straight from the server code; the descriptions are the original English text the assistant sees.
Read tools9 tools
list_tiktok_advertisers
পড়া1 creditsTikTok ad accounts (advertisers) reachable with the connected TikTok Ads token: id, name, currency, timezone, status. Read only; returns connected=false when no account is linked.
This tool takes no parameters.
list_tiktok_campaigns
পড়া1 creditsTikTok campaigns of the connected ad account: campaign_id, name, objective_type, budget, budget_mode, operation_status. Use campaign_id values for the other tiktok tools.
| Parameter | Type | Description |
|---|---|---|
campaign_idsOptional | array<string> | — |
statusOptional | string | primary status filter, e.g. STATUS_DELIVERY_OK, STATUS_DISABLE |
list_tiktok_ad_groups
পড়া1 creditsTikTok ad groups with budget, bid, optimisation goal, targeting (locations, ages, gender, languages, interests, audiences), placements, schedule and dayparting.
| Parameter | Type | Description |
|---|---|---|
campaign_idsOptional | array<string> | — |
adgroup_idsOptional | array<string> | — |
list_tiktok_ads
পড়া1 creditsTikTok ads: ad_id, name, ad group, status, format, text, video_id, landing page, call to action.
| Parameter | Type | Description |
|---|---|---|
campaign_idsOptional | array<string> | — |
adgroup_idsOptional | array<string> | — |
ad_idsOptional | array<string> | — |
tiktok_performance_report
পড়া2 creditsTikTok performance by campaign, ad group or ad for a date range: spend, impressions, clicks, CTR, CPM, CPC, conversions, cost per conversion, conversion rate, ROAS where available; optional daily breakdown and totals. Real data only; connected=false when no account.
| Parameter | Type | Description |
|---|---|---|
levelOptional | campaign | ad_group | ad | — |
daysOptional | integer (1–365) | — |
start_dateOptional | string | — |
end_dateOptional | string | — |
dailyOptional | boolean | one row per day (stat_time_day) |
campaign_idsOptional | array<string> | — |
adgroup_idsOptional | array<string> | — |
ad_idsOptional | array<string> | — |
list_tiktok_audiences
পড়া1 creditsCustom and lookalike audiences of the TikTok ad account: audience_id, name, type, size (cover_num), validity. Use audience_ids in update_tiktok_ad_group to assign them.
This tool takes no parameters.
list_tiktok_videos
পড়া1 creditsVideos in the TikTok ad account's asset library: video_id, file name, duration, size, preview and cover URLs. Use video_id in create_tiktok_ad or create_tiktok_whatsapp_campaign; add new videos from a public URL with upload_tiktok_video.
| Parameter | Type | Description |
|---|---|---|
video_idsOptional | array<string> | — |
get_tiktok_video_cover
পড়া1 creditsSuggested cover frames for a TikTok library video (file/video/suggestcover): id, preview url (valid one hour), size. Upload the chosen url with upload_tiktok_image to use it as the ad cover (image_ids). Read only.
| Parameter | Type | Description |
|---|---|---|
video_idRequired | string | — |
countOptional | integer (1–10) | — |
search_tiktok_targeting
পড়া1 creditsTurn targeting names into TikTok ids: interest (tool/interest_category → interest_category_ids), behavior (tool/action_category → actions[].action_category_ids), interest_keyword (tool/interest_keyword/recommend → interest_keyword_ids), location (tool/targeting/search → location_ids / zipcode_ids, cities and provinces), region (tool/region → targetable countries for the objective). Read only.
| Parameter | Type | Description |
|---|---|---|
typeRequired | interest | behavior | interest_keyword | location | region | — |
queryRequired | string | name to look up, e.g. fashion, moda, Istanbul, Turkey |
languageOptional | string | names language for interest/behavior/interest_keyword, e.g. tr, en (default: conversation language) |
objective_typeOptional | string | for location/region: campaign objective, default TRAFFIC; LEAD_GENERATION for WhatsApp ads |
promotion_typeOptional | string | for location/region; default WEBSITE, or LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE with LEAD_GENERATION |
placementsOptional | array<string> | default PLACEMENT_TIKTOK |
region_codesOptional | array<string> | location: filter by country code, e.g. TR |
geo_typesOptional | array<string> | location: COUNTRY | PROVINCE | CITY | DISTRICT | DMA | ZIP_CODE |
limitOptional | integer (1–100) | — |
Write tools13 tools
upload_tiktok_video
লেখা2 creditsUpload a video to the TikTok ad account's asset library from a public URL (file/video/ad/upload, UPLOAD_BY_URL). Preview and approval first; the new video_id is returned in the action result.
| Parameter | Type | Description |
|---|---|---|
video_urlRequired | string | public http(s) URL of an mp4/mov/mpeg/avi file (ideally under 10 MB for URL uploads) |
file_nameOptional | string | 1-100 chars, unique in the account; default: URL file name + timestamp |
auto_fixOptional | boolean | let TikTok detect and fix low resolution / wrong aspect ratio |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
upload_tiktok_image
লেখা2 creditsUpload an image (image ad or video cover) to the TikTok asset library from a public URL (file/image/ad/upload, UPLOAD_BY_URL). Preview and approval first; the image_id is returned in the action result.
| Parameter | Type | Description |
|---|---|---|
image_urlRequired | string | public http(s) URL of a JPG/PNG (max 1440x2560 total pixels) |
file_nameOptional | string | 1-100 chars, unique in the account; default: URL file name + timestamp |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_campaign
লেখা2 creditsCreate a TikTok campaign end to end (campaign + ad group, optionally the ad) as a paused draft. Writes a ledger draft and opens an approval item with a preview; sent to TikTok only after approval and only with a connected account.
| Parameter | Type | Description |
|---|---|---|
nameRequired | string | — |
objective_typeRequired | TRAFFIC | WEB_CONVERSIONS | REACH | VIDEO_VIEWS | LEAD_GENERATION | APP_PROMOTION | PRODUCT_SALES | — |
daily_budgetOptional | number | account currency |
budget_modeOptional | BUDGET_MODE_DAY | BUDGET_MODE_TOTAL | BUDGET_MODE_INFINITE | — |
goalOptional | string | — |
pixel_idOptional | string | — |
audienceOptional | object | countries (ISO list), age_min, age_max, genders ([1]=male, [2]=female), tiktok_location_ids, tiktok_interest_ids |
ad_groupOptional | object | optional ad group overrides; defaults: automatic placement, from now, smooth pacing |
adOptional | object | optional ad; needs a library video_id |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_ad_group
লেখা2 creditsCreate a TikTok ad group under a campaign with budget, bid, targeting, placements, schedule and dayparting. Preview and approval first; created paused unless operation_status=ENABLE.
| Parameter | Type | Description |
|---|---|---|
campaign_idRequired | string | TikTok campaign_id |
nameRequired | string | — |
budgetRequired | number | daily budget, account currency |
budget_modeOptional | BUDGET_MODE_DAY | BUDGET_MODE_TOTAL | — |
placement_typeOptional | PLACEMENT_TYPE_AUTOMATIC | PLACEMENT_TYPE_NORMAL | — |
placementsOptional | array<string> | PLACEMENT_TIKTOK | PLACEMENT_PANGLE | PLACEMENT_GLOBAL_APP_BUNDLE |
promotion_typeOptional | string | WEBSITE | APP_ANDROID | APP_IOS | LEAD_GENERATION |
operation_statusOptional | ENABLE | DISABLE | — |
optimization_goalOptional | string | CLICK | CONVERT | REACH | VIDEO_VIEW | LEAD | ENGAGEMENT |
billing_eventOptional | string | CPC | CPM | OCPM | CPV |
bid_typeOptional | string | BID_TYPE_NO_BID | BID_TYPE_CUSTOM |
bid_priceOptional | number | — |
conversion_bid_priceOptional | number | — |
pacingOptional | PACING_MODE_SMOOTH | PACING_MODE_FAST | — |
location_idsOptional | array<string> | TikTok location ids (Turkey 298795, US 6252001, UK 2635167, DE 2921044) |
age_groupsOptional | array<string> | AGE_13_17 | AGE_18_24 | AGE_25_34 | AGE_35_44 | AGE_45_54 | AGE_55_100 |
genderOptional | GENDER_UNLIMITED | GENDER_MALE | GENDER_FEMALE | — |
languagesOptional | array<string> | language codes, e.g. tr, en |
interest_category_idsOptional | array<string> | — |
operating_systemsOptional | array<string> | ANDROID | IOS |
audience_idsOptional | array<string> | — |
excluded_audience_idsOptional | array<string> | — |
schedule_start_timeOptional | string | YYYY-MM-DD HH:MM:SS (UTC) |
schedule_end_timeOptional | string | YYYY-MM-DD HH:MM:SS (UTC); sets SCHEDULE_START_END |
daypartingOptional | string | 336 chars of 0/1: 7 days x 48 half-hours starting Monday 00:00 |
pixel_idOptional | string | — |
optimization_eventOptional | string | e.g. COMPLETE_PAYMENT, ON_WEB_CART, FORM |
comment_disabledOptional | boolean | — |
share_disabledOptional | boolean | — |
search_result_enabledOptional | boolean | — |
interest_keyword_idsOptional | array<string> | from search_tiktok_targeting(type=interest_keyword) |
actionsOptional | array<object> | behaviour targeting: [{action_scene: VIDEO_RELATED|CREATOR_RELATED|HASHTAG_RELATED, action_period: 0|7|15, video_user_actions: [...], action_category_ids: [ids from search_tiktok_targeting(type=behavior)]}] |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_ad
লেখা2 creditsCreate a TikTok ad in an ad group from a library video (or Spark post). Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
adgroup_idRequired | string | — |
ad_nameOptional | string | — |
ad_textRequired | string | 1-100 chars |
video_idOptional | string | from list_tiktok_videos |
image_idsOptional | array<string> | cover image ids / image ad |
ad_formatOptional | SINGLE_VIDEO | SINGLE_IMAGE | CAROUSEL | — |
landing_page_urlOptional | string | — |
call_to_actionOptional | string | LEARN_MORE | SHOP_NOW | SIGN_UP | CONTACT_US | DOWNLOAD … |
identity_idOptional | string | — |
identity_typeOptional | string | CUSTOMIZED_USER | TT_USER | BC_AUTH_TT |
display_nameOptional | string | — |
tiktok_item_idOptional | string | Spark Ads post id |
deeplinkOptional | string | — |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
update_tiktok_campaign_budget
লেখা2 creditsChange the budget of one or more TikTok campaigns. Goes through preview and approval; the ledger is updated only when TikTok accepts.
| Parameter | Type | Description |
|---|---|---|
campaign_idsRequired | array<string> | TikTok campaign ids (or one Tecrube campaign id) |
amountRequired | number | account currency |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
update_tiktok_campaign_status
লেখা2 creditsPause (DISABLE) or enable (ENABLE) TikTok campaigns. Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
campaign_idsRequired | array<string> | — |
operation_statusRequired | ENABLE | DISABLE | — |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
update_tiktok_ad_group
লেখা2 creditsUpdate one or many TikTok ad groups at once: budget, bid (bid_type/bid_price), targeting (locations, ages, gender, languages, interests, audiences), schedule and dayparting, comment/share settings. Placements and budget mode cannot change after creation (TikTok rule). Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
adgroup_idsRequired | array<string> | — |
adgroup_nameOptional | string | — |
budgetOptional | number | — |
optimization_goalOptional | string | CLICK | CONVERT | REACH | VIDEO_VIEW | LEAD | ENGAGEMENT |
billing_eventOptional | string | CPC | CPM | OCPM | CPV |
bid_typeOptional | string | BID_TYPE_NO_BID | BID_TYPE_CUSTOM |
bid_priceOptional | number | — |
conversion_bid_priceOptional | number | — |
pacingOptional | PACING_MODE_SMOOTH | PACING_MODE_FAST | — |
location_idsOptional | array<string> | TikTok location ids (Turkey 298795, US 6252001, UK 2635167, DE 2921044) |
age_groupsOptional | array<string> | AGE_13_17 | AGE_18_24 | AGE_25_34 | AGE_35_44 | AGE_45_54 | AGE_55_100 |
genderOptional | GENDER_UNLIMITED | GENDER_MALE | GENDER_FEMALE | — |
languagesOptional | array<string> | language codes, e.g. tr, en |
interest_category_idsOptional | array<string> | — |
operating_systemsOptional | array<string> | ANDROID | IOS |
audience_idsOptional | array<string> | — |
excluded_audience_idsOptional | array<string> | — |
schedule_start_timeOptional | string | YYYY-MM-DD HH:MM:SS (UTC) |
schedule_end_timeOptional | string | YYYY-MM-DD HH:MM:SS (UTC); sets SCHEDULE_START_END |
daypartingOptional | string | 336 chars of 0/1: 7 days x 48 half-hours starting Monday 00:00 |
pixel_idOptional | string | — |
optimization_eventOptional | string | e.g. COMPLETE_PAYMENT, ON_WEB_CART, FORM |
comment_disabledOptional | boolean | — |
share_disabledOptional | boolean | — |
search_result_enabledOptional | boolean | — |
interest_keyword_idsOptional | array<string> | from search_tiktok_targeting(type=interest_keyword) |
actionsOptional | array<object> | behaviour targeting: [{action_scene: VIDEO_RELATED|CREATOR_RELATED|HASHTAG_RELATED, action_period: 0|7|15, video_user_actions: [...], action_category_ids: [ids from search_tiktok_targeting(type=behavior)]}] |
changesOptional | object | any adgroup/update fields as a map |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
update_tiktok_ad_group_status
লেখা2 creditsPause or enable TikTok ad groups (e.g. the ones whose CPA is above target). Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
adgroup_idsRequired | array<string> | — |
operation_statusRequired | ENABLE | DISABLE | — |
reasonOptional | string | — |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
update_tiktok_ad_status
লেখা2 creditsPause or enable TikTok ads (e.g. a fatigued creative). Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
ad_idsRequired | array<string> | — |
operation_statusRequired | ENABLE | DISABLE | — |
reasonOptional | string | — |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_custom_audience
লেখা2 creditsCreate a rule-based TikTok custom audience from pixel, app or engagement events (e.g. added to cart in the last 30 days but did not purchase). Preview and approval first; the audience needs hours to populate.
| Parameter | Type | Description |
|---|---|---|
nameRequired | string | — |
audience_typeOptional | PIXEL | APP | ENGAGEMENT | ENGAGEMENT_ORGANIC_VIDEO | BUSINESS_ACCOUNT | LEAD_GENERATION | TIKTOK_SHOP | — |
retention_daysOptional | integer (1–365) | — |
eventOptional | string | pixel/app event to include, e.g. AddToCart, CompletePayment, ViewContent |
exclude_eventOptional | string | event to exclude, e.g. CompletePayment for cart abandoners |
pixel_idOptional | string | — |
event_source_idsOptional | array<string> | pixel ids / app ids / ad group ids depending on audience_type |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_lookalike_audience
লেখা2 creditsCreate a TikTok lookalike audience from a custom audience (TikTok sizes: NARROW ≈ closest, BALANCED, BROAD). Preview and approval first.
| Parameter | Type | Description |
|---|---|---|
nameRequired | string | — |
source_audience_idRequired | string | — |
audience_sizeOptional | NARROW | BALANCED | BROAD | — |
include_sourceOptional | boolean | — |
location_idsOptional | array<string> | — |
placementsOptional | array<string> | — |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.
create_tiktok_whatsapp_campaign
লেখা2 creditsCreate a TikTok ad that opens a WhatsApp chat (click-to-WhatsApp): LEAD_GENERATION campaign, ad group with optimisation location Instant Messaging App (WhatsApp) on TikTok placement, and a video ad whose cover is taken from the video automatically. chat_link builds the wa.me link from the phone number; website URLs are refused. Everything is created paused; preview and approval first.
| Parameter | Type | Description |
|---|---|---|
nameRequired | string | — |
phone_numberRequired | string | WhatsApp business number with country code, e.g. +90 532 000 00 00 (national format starting with 0 is rejected) |
daily_budgetRequired | number | ad group daily budget, account currency (TikTok minimum ≈ USD 20 equivalent) |
video_idRequired | string | library video (list_tiktok_videos / upload_tiktok_video) |
ad_textRequired | string | 1-100 chars |
connection_methodOptional | chat_link | native | chat_link: wa.me link built from the number (CLICK only, no extra setup); native: number connected to TikTok's message management tool (CLICK or allowlisted CONVERSATION) |
prefilled_messageOptional | string | chat_link only: text pre-filled in WhatsApp; must name the offer or service in the ad, generic greetings are rejected |
optimization_goalOptional | CLICK | CONVERSATION | — |
phone_region_codeOptional | string | native only, when the calling code is shared (e.g. US for +1) |
message_event_set_idOptional | string | native + CONVERSATION only, when the number matches no event set |
image_idsOptional | array<string> | cover image id; omitted = the video's own cover is fetched and uploaded automatically |
call_to_actionOptional | string | default SEND_MESSAGE (CALL_NOW not allowed) |
ad_nameOptional | string | — |
identity_idOptional | string | — |
identity_typeOptional | string | CUSTOMIZED_USER | TT_USER | BC_AUTH_TT |
display_nameOptional | string | — |
goalOptional | string | — |
audienceOptional | object | countries (ISO list), age_min (18+), age_max, genders ([1]=male, [2]=female), tiktok_location_ids, tiktok_interest_ids |
ad_groupOptional | object | optional ad group targeting/schedule overrides; placements, promotion type and search results are fixed for messaging ads |
landing_page_urlOptional | string | NOT accepted: a messaging ad group has no website destination; give phone_number instead |
Write tool: the call first produces a preview; the change reaches the platform only after you approve it.