Skip to main content
Glama

Create a TikTok campaign (Smart+)

tiktok_create_campaign

Create a complete TikTok campaign on the upgraded Smart+ API: campaign + ad group, and an ad when video_ids are given. Everything is created PAUSED. Goals: sales (website conversions with a Pixel event) or leads (instant form, a website form tracked by the Pixel, or a chat on WhatsApp, Messenger or TikTok direct messages). Targeting can be automatic (TikTok finds the audience) or manual (countries/locations, ages, gender, languages, custom audiences). Budget is daily or lifetime, at campaign level (TikTok distributes it) or ad group level. Always offer dry_run=true first and show the plan; turning it on later needs the user's confirmation.

Input Schema

NameRequiredDescriptionDefault
agesNo
goalYes
nameYes
eventNoPixel event to optimise for. Default purchase (sales) / submit_form (website leads).
budgetYesIn the account currency.
folderNoClient folder name.
genderNo
accountNoTikTok advertiser account name or ID. Optional when only one is enabled.
dry_runNo
form_idNoInstant form page_id for lead_destination=instant_form.
ad_textsNo
end_timeNoOptional 'YYYY-MM-DD HH:MM' in UTC; required for lifetime budgets.
languageNoLanguage of the card: the language the user is writing in (ar for any Arabic dialect).
pixel_idNoPixel ID (numeric, from tiktok_tracking_audit). Required for sales and website leads.
countriesNoCountry codes, e.g. ["SA","AE"].
languagesNoLanguage codes, e.g. ["ar","en"].
targetingNoDefault automatic (TikTok's audience targeting, location still applies).
video_idsNoFrom tiktok_upload_video. TikTok rotates them automatically.
placementsNoDefault automatic.
start_timeNoOptional 'YYYY-MM-DD HH:MM' in UTC. Default now.
budget_typeNoDefault daily.
identity_idNoFrom tiktok_identities; needed to create the ad.
audience_idsNo
bid_cost_capNoOptional target cost per result (cost cap). Omit for maximum delivery.
budget_levelNocampaign = TikTok distributes it (default).
location_idsNoExtra location IDs from tiktok_search_locations.
identity_typeNo
call_to_actionNo
whatsapp_numberNoFor whatsapp: the WhatsApp Business API number in international format, e.g. +9665XXXXXXXX.
facebook_page_idNoFor messenger: the Facebook Page ID that receives the messages.
landing_page_urlNo
lead_destinationNoFor goal=leads. instant_form needs form_id (see tiktok_lead_forms); website needs pixel_id and an event like submit_form; whatsapp needs whatsapp_number (a WhatsApp Business API number); messenger needs facebook_page_id; tiktok_dm sends people to the TikTok account's direct messages (needs a TikTok account identity).
message_event_set_idNoOptional messaging event set (from a TikTok Messaging Partner). With it the ad group optimises for conversations; without it, for clicks to chat.
excluded_audience_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: everything is created PAUSED, so nothing spends until explicitly enabled, and the dry_run/confirm workflow is spelled out. The sales path requires a Pixel and event, and the leads path branches by destination, which tells the agent what side effects and prerequisites to expect from an openWorld write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then layers goal, targeting and budget, and ends with the safety workflow — a sensible order with little filler. It is dense, and the goal sentence partially duplicates what the lead_destination schema description already enumerates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 34-parameter composite creation tool with no output schema, the description covers scope, the paused state, prerequisite IDs (pixel, form, identity, video) and the dry-run contract. It omits what is returned (campaign/ad group IDs) and how partial failures behave, which are the remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 68%, and the description adds conceptual meaning on top: what 'automatic' vs 'manual' targeting covers, that budget can be daily or lifetime and live at campaign or ad group level, and how goal values constrain which other parameters matter. Some of this restates the schema's own enum descriptions (targeting, lead_destination), so it is additive but not fully novel.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Create a complete TikTok campaign') and immediately scopes it: campaign + ad group, plus an ad when video_ids are given. This distinguishes it from tiktok_create_ad and from the sibling list/read tools without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit operational guidance: always call with dry_run=true first, show the plan, and require user confirmation before a real launch. It also routes goal choice (sales vs leads) to the required supporting inputs. It stops short of naming when to use tiktok_create_ad or tiktok_campaigns instead, so it is clear context rather than full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources