Skip to main content
Glama

Opus Growth, Ad Platforms MCP Connector

Create TikTok Ad Group

create_tiktok_adgroup

Creates a TikTok ad group — targeting/budget/billing event. Starts DISABLED (paused). location_ids REQUIRED (comma-separated; from tiktok_region_search). optimization_goal: CLICK|CONVERT|REACH|VIDEO_VIEW|LEAD_GENERATION|CONVERSATION|... billing_event: CPC|CPM|OCPM|CPV. Use optimization_goal=CONVERSATION for TikTok Direct Message (messaging) ad groups — promotion_type defaults to LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE, billing_event to OCPM and optimization_event to MESSAGE automatically; no pixel is needed. age_groups: AGE_18_24,AGE_25_34... genders: GENDER_MALE|GENDER_FEMALE. For CONVERT, pixel_id + optimization_event are required. placements (optional, comma-separated): PLACEMENT_TIKTOK,PLACEMENT_PANGLE,PLACEMENT_GLOBAL_APP_BUNDLE — leave empty for TikTok's automatic placement. schedule_start / schedule_end: 'YYYY-MM-DD HH:MM:SS' in the ad account's timezone — leave schedule_start empty to start now, schedule_end empty to run open-ended. search_result_enabled=true also serves on TikTok Search results. promotion_type (what is being advertised — TikTok requires it): WEBSITE|APP_ANDROID|APP_IOS|LEAD_GEN_INSTANT_FORM|LEAD_GEN_CLICK_TO_CALL|LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE|LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE|LEAD_GEN_EXTERNAL_WEBSITE|FOLLOWERS|LIVESTREAM. INSTANT MESSAGING APPS (WhatsApp / Messenger / LINE / Zalo, per TikTok's official API guide "Create a Lead Generation ad with optimization location as instant messaging apps"): campaign objective LEAD_GENERATION + promotion_type=LEAD_GEN_CLICK_TO_SOCIAL_MEDIA_APP_MESSAGE, then messaging_app_type (cannot be changed later): IM_URL (default) = a custom chat link set on each ad, e.g. https://wa.me/ via create_tiktok_ad(whatsapp_number=...), works with no extra setup, CLICK only; WHATSAPP = TikTok fills the chat from messaging_phone (international format, e.g. +14155550123; phone_region_code only when the calling code is shared, like +1), but TikTok requires that number to be connected to its Messaging Management Tool (MMT); MESSENGER = messaging_app_account_id is the Facebook Page ID; LINE = messaging_app_account_id is the LINE Business ID (CLICK only); ZALO = messaging_phone (CLICK only). optimization_goal CONVERSATION is allowlist-only at TikTok and only for MESSENGER/WHATSAPP. BUDGET MINIMUMS: TikTok sets the ad group daily minimum per currency (base 20 USD, converted with each currency's budget ratio); when a budget is too low TikTok's error states the exact minimum for that account's currency — leave empty for website campaigns (TRAFFIC/REACH/VIDEO_VIEWS/ENGAGEMENT/WEB_CONVERSIONS) and it is derived from the campaign objective; set it explicitly for app/catalog/lead-form campaigns. bid_type: BID_TYPE_NO_BID (automatic bidding, default) | BID_TYPE_CUSTOM (manual bid — bid_price required, in the account currency, e.g. manual CPC). pacing: PACING_MODE_SMOOTH (standard delivery, default — spreads the budget over the day) | PACING_MODE_FAST (accelerated; only valid with BID_TYPE_CUSTOM, TikTok rejects it with automatic bidding). automation: AUTO (default) reads the campaign and uses the matching endpoint — TikTok refuses classic ad-group creation inside a Smart+ campaign, so this is what makes an ad group possible there at all; MANUAL or SMART_PLUS force one path. In a Smart+ ad group TikTok requires a real placement list (automatic placement is rejected, so PLACEMENT_TIKTOK is used when none is given) and treats your targeting as a starting point it can widen; pacing and search_result_enabled do not apply. confirm=false previews, confirm=true applies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
budgetNo
pacingNo
confirmNo
gendersNo
bid_typeNo
pixel_idNo
bid_priceNo
age_groupsNo
automationNoAUTO
placementsNo
budget_modeNoBUDGET_MODE_DAY
campaign_idYes
audience_idsNo
location_idsYes
schedule_endNo
advertiser_idYes
billing_eventNoCPC
promotion_typeNo
schedule_startNo
messaging_phoneNo
optimization_goalNoCLICK
phone_region_codeNo
messaging_app_typeNo
optimization_eventNo
excluded_audience_idsNo
interest_category_idsNo
search_result_enabledNo
messaging_app_account_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added
  4. Removed
  5. Added
  6. Removed
  7. Added
  8. Removed
  9. Added
  10. Removed
  11. Added
  12. Removed
  13. Added
  14. Removed
  15. Added
  16. Removed
  17. Added
  18. Removed
  19. Added
  20. Removed
  21. Added
  22. Removed
  23. Added
  24. Removed
  25. Added
  26. Removed
  27. Added
  28. Removed
  29. Added
  30. Removed
  31. Added
  32. Removed
  33. Added
  34. Removed
  35. Added
  36. Removed
  37. Added
  38. Removed
  39. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the ad group starts DISABLED (paused), the confirm=false preview / confirm=true apply gate, how automation=AUTO switches endpoints, Smart+ restrictions (real placement list required, targeting can be widened, pacing/search disabled), currency-derived budget minimums and that TikTok's error reports the exact minimum. This is unusually rich behavioral context for a mutation tool.

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

Conciseness3/5

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

Front-loaded with the essentials (creates ad group, starts paused, location_ids required), and most sentences carry parameter-specific value. But it is a single ~450-word wall of text with no bullets or grouping, making it hard to scan under a 29-parameter surface. Length is partly justified by complexity, but structure is weak.

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?

An output schema exists, so return values need not be described, and the description covers the conditional logic (billing events, promotion types, messaging paths, budget minimums, preview/apply) an agent needs to invoke it correctly. A few targeting-related parameters remain undocumented, leaving minor gaps for a tool of this complexity.

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 description coverage is 0% and there are no enums in the schema, so the description carries the full burden — and it largely does, enumerating allowed values for optimization_goal, billing_event, promotion_type, age_groups, genders, placements, bid_type, pacing, scheduling formats, and messaging_app_type semantics. However audience_ids, excluded_audience_ids, interest_category_ids and budget_mode are never explained, so it doesn't fully compensate for the gap.

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?

The opening sentence states a specific verb (Creates) and resource (TikTok ad group) plus the scope of what it configures (targeting/budget/billing event). The resource is distinct enough that an agent can tell it apart from create_tiktok_campaign, create_tiktok_ad and update_tiktok_adgroup without opening schemas.

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 rich conditional guidance: use optimization_goal=CONVERSATION for messaging ad groups, automation=AUTO to work inside Smart+ campaigns, confirm=false to preview. It also points to prerequisite/sibling helpers (tiktok_region_search for location_ids, create_tiktok_ad for whatsapp_number). It stops short of explicitly contrasting this tool with the sibling update_tiktok_adgroup or stating ordering vs create_tiktok_campaign, so not a 5.

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.