From hopkin
Build reports and analyze TikTok Ads campaigns using the Hopkin TikTok Ads MCP. Includes prerequisite checks, authentication flow, campaign and ad group performance reporting, video/creative performance analysis, audience demographic insights, and advertiser management.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hopkin:hopkin-tiktok-adsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill enables Claude to build comprehensive reports and analyze TikTok Ads campaigns via the Hopkin TikTok Ads MCP. Use this skill to:
This skill enables Claude to build comprehensive reports and analyze TikTok Ads campaigns via the Hopkin TikTok Ads MCP. Use this skill to:
Check for tiktok_ads_ prefixed tools (e.g., tiktok_ads_check_auth_status). If none are found, the MCP is not configured.
Inform the user and provide setup instructions:
The Hopkin TikTok Ads MCP is not configured. To use this skill:
- Sign up at https://app.hopkin.ai
- Add the hosted MCP to your Claude configuration:
{ "mcpServers": { "hopkin-tiktok-ads": { "type": "url", "url": "https://tiktok.mcp.hopkin.ai/mcp", "headers": { "Authorization": "Bearer YOUR_HOPKIN_TOKEN" } } } }
- Restart Claude after updating configuration
Pause execution until the user confirms, then re-verify.
tiktok_ads_check_auth_status to verify authenticationtiktok_ads_get_login_url to get the TikTok OAuth login URL and direct the user to complete loginNote: If a previously-authenticated user gets auth errors, direct them to https://app.hopkin.ai to reconnect their TikTok account.
tiktok_ads_list_advertisers to look up advertisers.date_preset (e.g., LAST_7_DAYS, LAST_30_DAYS) or start_date/end_date (YYYY-MM-DD format).When tiktok_ads_list_advertisers returns multiple advertisers, present them as a numbered list and ask the user to confirm which advertiser to use.
| TikTok | Meta | |||
|---|---|---|---|---|
| Advertiser | Ad Account | Customer | Ad Account | Ad Account |
| Campaign | Campaign | Campaign | Campaign Group | Campaign |
| Ad Group | Ad Set | Ad Group | Campaign | Ad Group |
| Ad | Ad | Ad | Creative | Ad |
No manager/MCC hierarchy — advertisers are accessed directly; no login_customer_id needed.
tiktok_ads_ping — Health check and connectivity test. Params: message?, reasontiktok_ads_check_auth_status — Verify auth and troubleshoot connection issues; only call when another tool returns an auth error, not proactively. Params: reasontiktok_ads_get_login_url — Get TikTok OAuth login URL for user authentication. Params: reasontiktok_ads_get_user_info — Get authenticated user info. Params: reasontiktok_ads_list_advertisers — List accessible TikTok advertisers (ad accounts). Params: advertiser_id?, limit?, cursor?, reasontiktok_ads_get_advertiser — Get a single advertiser's details. Params: advertiser_id (required), reasontiktok_ads_list_campaigns — List campaigns for an advertiser. Params: advertiser_id (required), campaign_id?, campaign_ids?, status? (ENABLE/DISABLE/DELETE), search?, limit?, cursor?, reasontiktok_ads_get_campaign — Get a single campaign. Params: advertiser_id (required), campaign_id (required), reasontiktok_ads_list_ad_groups — List ad groups with targeting and bid details. Params: advertiser_id (required), adgroup_id?, adgroup_ids?, campaign_ids?, status? (ENABLE/DISABLE/DELETE), search?, limit?, cursor?, reasontiktok_ads_get_ad_group — Get a single ad group. Params: advertiser_id (required), adgroup_id (required), reasontiktok_ads_list_ads — List ads. Params: advertiser_id (required), ad_id?, ad_ids?, campaign_ids?, adgroup_ids?, status? (ENABLE/DISABLE/DELETE), search?, limit?, cursor?, reasontiktok_ads_get_ad — Get a single ad. Params: advertiser_id (required), ad_id (required), reasontiktok_ads_get_performance_report — Primary analytics tool. Performance report at campaign, ad group, or ad level. Params: advertiser_id (required), level (required: campaign, adgroup, or ad), date_preset?, start_date?, end_date?, campaign_id?, adgroup_id?, page?, page_size?, reasontiktok_ads_get_insights — Custom reporting with configurable dimensions and metrics. Supports AUDIENCE report type for demographic breakdowns. Params: advertiser_id (required), report_type? (BASIC/AUDIENCE), data_level (required), dimensions (required), metrics?, start_date?, end_date?, lifetime?, page?, page_size?, reasontiktok_ads_get_creative_report — Video/creative performance metrics including video completion rates and social engagement. Params: advertiser_id (required), campaign_id?, adgroup_id?, start_date?, end_date?, page?, page_size?, reasontiktok_ads_preview_ads — MCP App: visual ad previews with optional metric overlays. Params: advertiser_id (required), ads (required: array of {ad_id, metrics?}), metric_labels?, reasontiktok_ads_list_audiences — List audiences for targeting. Params: advertiser_id (required), limit?, cursor?, reasontiktok_ads_developer_feedback — Submit feedback about missing tools, improvements, bugs, or workflow gaps in the MCP toolset. Not for user-facing auth/API errors. Params: feedback_type (new_tool|improvement|bug|workflow_gap), title, description, priority?, current_workaround?, reasonNote: Every tool call requires a
reason(string) parameter for audit trail.
tiktok_ads_get_performance_report with level: "campaign"tiktok_ads_get_performance_report with level: "adgroup"tiktok_ads_get_performance_report with level: "ad"tiktok_ads_get_creative_reporttiktok_ads_get_insights with report_type: "AUDIENCE"TikTok is a video-first platform, and tiktok_ads_get_creative_report provides video-specific metrics unavailable on most other platforms:
Use
tiktok_ads_get_creative_reportto analyze which creatives and videos drive the highest engagement. This is essential for TikTok where creative quality directly determines ad performance.
tiktok_ads_get_insights with report_type: "AUDIENCE" provides demographic breakdowns unavailable through the standard performance report:
dimensions parameter to specify which demographic dimensions to includedata_level to scope the report to campaign, ad group, or ad levelAudience insights are only available through
get_insightswithreport_type: "AUDIENCE"— the standardget_performance_reportdoes not support demographic breakdowns.
TikTok Ads MCP does not include a render_chart tool. When the user requests charts or visualizations:
The MCP is read-only. When a user requests write operations (pause campaigns, adjust budgets, etc.):
tiktok_ads_developer_feedback with feedback_type: "workflow_gap" to report the gap to the development teamAnalyze top-level campaign performance, compare campaigns, and understand conversion metrics by objective.
Primary tool: tiktok_ads_get_performance_report with level: "campaign"
See detailed workflow: references/workflows/campaign-performance.md
Analyze video and creative performance to understand which content drives the best engagement and completion rates.
Primary tool: tiktok_ads_get_creative_report
See detailed workflow: references/workflows/creative-performance.md
Analyze audience demographics to understand which age groups, genders, and regions deliver the best results.
Primary tool: tiktok_ads_get_insights with report_type: "AUDIENCE"
See detailed workflow: references/workflows/audience-insights.md
Evaluate ad group targeting effectiveness, bid strategy performance, and budget allocation.
Primary tools: tiktok_ads_list_ad_groups + tiktok_ads_get_performance_report with level: "adgroup"
See detailed workflow: references/workflows/common-actions.md#optimization-workflow-by-campaign-objective
tiktok_ads_list_advertisers to find and confirm the advertiserdate_preset (e.g., LAST_30_DAYS) or start_date/end_date (YYYY-MM-DD)tiktok_ads_list_advertisers to find them; the ID goes in advertiser_id.tiktok_ads_list_campaigns to get campaign config.campaign_ids to drill into a campaign. Note: parameter names use adgroup (no underscore) — e.g., adgroup_id, adgroup_ids.adgroup_ids to scope to an ad group.date_preset: "LAST_7_DAYS"date_preset: "LAST_30_DAYS"start_date/end_date in YYYY-MM-DD formatdate_preset (e.g., LAST_7_DAYS, LAST_30_DAYS) OR start_date/end_date — do not mix bothTikTok uses different status values than other platforms:
| TikTok | Meta | ||
|---|---|---|---|
| ENABLE | ACTIVE | ENABLED | ACTIVE |
| DISABLE | PAUSED | PAUSED | PAUSED |
| DELETE | DELETED | REMOVED | ARCHIVED |
TikTok uses page-based pagination (page, page_size) for analytics tools, and cursor-based pagination (limit, cursor) for list tools. Use the appropriate pagination style for each tool.
TikTok advertiser IDs are numeric strings. Use them exactly as returned by tiktok_ads_list_advertisers.
tiktok_ads_check_auth_status; if auth fails, use tiktok_ads_get_login_url or direct to https://app.hopkin.ai to reconnecttiktok_ads_list_advertiserslevel must be one of: campaign, adgroup, adENABLE, DISABLE, or DELETE (not ACTIVE/PAUSED)page/page_size for analytics, limit/cursor for list toolsadvertiser_id — NOT account_id or customer_idadgroup_id / adgroup_ids (no underscore) — NOT ad_group_iddate_preset or start_date/end_date — NOT date_start/date_endENABLE/DISABLE/DELETE — NOT ACTIVE/PAUSED/ARCHIVEDget_insights with AUDIENCE report type for demographic breakdowns — unique among Hopkin pluginsget_creative_report for video-specific metrics — not available on all platformsrender_chart tool — present data as tablesstore_preference/get_preferences/delete_preferenceSee references/troubleshooting.md for full guidance.
tiktok_ads_get_login_url or direct user to https://app.hopkin.aitiktok_ads_list_advertisersadgroup_id (not ad_group_id) and status values (ENABLE/DISABLE/DELETE) are correctSkill Version: 1.0 Last Updated: 2026-03-22 Requires: Hopkin TikTok Ads MCP (https://app.hopkin.ai)
npx claudepluginhub pearmill/hopkin-plugins --plugin hopkinCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.