TikTok Ads
TikTok Marketing API for short-form video advertising
17 tools available
Installation
Claude Desktop
{
"mcpServers": {
"hopkin-tiktok-ads": {
"url": "https://mcp.hopkin.ai/tiktok-ads/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
CLI
npm install -g @hopkin/cli
hopkin auth set-key hpk_live_...
hopkin tiktok ping
Platform Overview
The TikTok Ads MCP server enables AI assistants to read and analyze TikTok short-form video advertising campaigns, creatives, and performance data. It integrates with TikTok's Marketing API to help users monitor campaign performance, explore audience demographics, review creative metrics, and manage their advertising hierarchy across multiple advertiser accounts.
Your prompt → Claude + Hopkin → TikTok Marketing API v1.3
↓
Advertiser Accounts
Campaign Data
Ad Groups & Ads
Video Performance
Audience Demographics
Creative Metrics
Common Workflows
Performance Reporting
"Show me how my TikTok campaigns performed over the last 7 days."
Uses tiktok_ads_get_performance_report with date preset "last_7d" and level "campaign". Returns spend, impressions, clicks, conversions, and engagement metrics aggregated by campaign and day.
"Break down my ad group performance by age group and country to see which demographics convert best."
Uses tiktok_ads_get_insights with data_level "AUCTION_ADGROUP", report_type "AUDIENCE", and dimensions ["age_group", "country"]. Returns demographic breakdowns with conversion and cost metrics.
"What are the video completion rates for my ads over the past 30 days?"
Uses tiktok_ads_get_creative_report with date preset "last_30d". Returns video watch metrics including p25/p50/p75/p100 completion rates, video views, and average watch time per creative.
Campaign Management
"List all my TikTok advertiser accounts."
Uses tiktok_ads_list_advertisers to fetch all accessible advertiser accounts with status, currency, and timezone info. Returns cached results with sync timestamp.
"Show me all active campaigns for advertiser ID 12345."
Uses tiktok_ads_list_campaigns with advertiser_id "12345" and status filter ["STATUS_ON"]. Returns campaign names, objectives, budgets, and budget modes.
"Get the details of a specific ad group and its associated ads."
Uses tiktok_ads_get_ad_group to fetch ad group details, then tiktok_ads_list_ads with the ad_group_id filter to list all ads in that group. Shows targeting, budget, optimization goal, and ad-level status.
Video & Creative Analysis
"Which videos in my campaigns are getting the most engagement?"
Uses tiktok_ads_get_creative_report to fetch ad-level metrics including video_play_actions, impressions, and spend. Returns per-creative breakdowns sorted by engagement.
"Show me a preview of the creatives in my top-performing campaign with their engagement metrics overlaid."
Uses tiktok_ads_preview_ads with ad IDs and custom metrics (e.g., impressions, clicks) to render visual previews of TikTok ads with configurable metric labels in an interactive UI.
"What's the audience split for my ad group by placement (Feed vs Explore)?"
Uses tiktok_ads_get_insights with dimensions ["placement"] and data_level "AUCTION_ADGROUP" to break down performance by where ads appear on TikTok.
Recipes
"I need a comprehensive performance summary of my TikTok account. List all my campaigns, show overall metrics for the last 14 days, and break down spend by ad group."
Calls tiktok_ads_list_campaigns to enumerate campaigns, then tiktok_ads_get_performance_report with level "adgroup" and date_preset "last_14d" to fetch granular spend, impressions, and conversion metrics for each ad group across all campaigns.
"Compare the video completion rates of my three best campaigns to identify which creative style resonates most with viewers."
Uses tiktok_ads_list_campaigns to fetch all campaigns, then calls tiktok_ads_get_creative_report with each campaign_id filtered to get ad-level video metrics (p25/p50/p75/p100 completion rates). Compares average completion rates across the three campaigns to find the pattern.
"I want to audit which audiences are delivering the best ROI. Show me a demographic breakdown (age, gender, country) of spend and conversions for my ad groups."
Uses tiktok_ads_list_ad_groups to get ad group IDs, then calls tiktok_ads_get_insights with data_level "AUCTION_ADGROUP", report_type "AUDIENCE", and dimensions ["age_group", "gender", "country"] to return spend, conversion, and cost_per_conversion for each demographic segment.
"Create a visual report of my top-performing ads with their video metrics embedded as overlays."
Uses tiktok_ads_get_creative_report to fetch ad IDs and their video metrics (impressions, video_play_actions, completion rates), then calls tiktok_ads_preview_ads with those ad IDs and metrics to render interactive previews showing creative content with performance data.
"I need to investigate why one of my campaigns underperformed. Show me the campaign details, all ad groups within it, and the daily performance trend for the past 30 days."
Uses tiktok_ads_get_campaign to fetch campaign metadata, tiktok_ads_list_ad_groups with campaign_ids filter to list ad groups, then tiktok_ads_get_performance_report with level "campaign", the campaign_id, date range for 30 days, and dimensions ["stat_time_day"] to show daily spend/impressions/conversions trends.
"I want to check my auth status and verify I have access to all my TikTok advertiser accounts."
Uses tiktok_ads_check_auth_status to verify the connection and auth method, then tiktok_ads_get_user_info to see the authenticated user's profile (email, role), and finally tiktok_ads_list_advertisers to confirm all accessible advertiser accounts are visible.
Tips
- Always provide advertiser_id for most operations: TikTok requires an advertiser ID (equivalent to Meta's ad account or Google's customer ID) for nearly every API call. Use
tiktok_ads_list_advertisersfirst if you don't know the ID, or ask the user for it.
- Video-specific metrics are in the creative report: If you need completion rates, video play actions, or watch-time metrics, use
tiktok_ads_get_creative_reportinstead oftiktok_ads_get_performance_report. The creative report returns TikTok-specific video engagement data with p25/p50/p75/p100 watch percentages.
- Use insights with dimensions for flexible analysis:
tiktok_ads_get_insightsaccepts custom dimension arrays (age_group, gender, country, placement, stat_time_day) and report types (BASIC vs AUDIENCE), making it ideal for demographic breakdowns and flexible pivoting. Performance reports are fixed to campaign/adgroup/ad levels and standard metrics.
- Cached data refreshes in the background: List operations (campaigns, ad groups, ads, audiences) return cached data with a
cached: trueflag andsynced_attimestamp. Passrefresh: trueif you need a synchronous fetch, but background refresh is automatic for non-refresh calls—results update without blocking.
Tools
ad-groups
tiktok_ads_list_ad_groups List TikTok Ad Groups
List TikTok ad groups for an advertiser. Shows name, status, targeting, and budget.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
8 optional parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (1–100). Default: 20. |
cursor | string | Opaque pagination cursor from a previous response. |
refresh | boolean | Force a fresh fetch bypassing the cache. |
adgroup_id | string | Fetch a single ad group by ID. |
adgroup_ids | array | Fetch specific ad groups by IDs. |
campaign_ids | array | Filter by parent campaign IDs. |
status | array | Filter by primary status. |
search | string | Search ad groups by name (case-insensitive). |
ad-group
tiktok_ads_get_ad_group Get TikTok Ad Group
Get details for a single TikTok ad group by ID.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
adgroup_id required | string | Ad group ID. |
reason required | string | Why this tool call is needed |
ads
tiktok_ads_list_ads List TikTok Ads
List TikTok ads for an advertiser. Shows name, status, creative, and ad group association.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
9 optional parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (1–100). Default: 20. |
cursor | string | Opaque pagination cursor from a previous response. |
refresh | boolean | Force a fresh fetch bypassing the cache. |
ad_id | string | Fetch a single ad by ID. |
ad_ids | array | Fetch specific ads by IDs. |
campaign_ids | array | Filter by parent campaign IDs. |
adgroup_ids | array | Filter by parent ad group IDs. |
status | array | Filter by primary status. |
search | string | Search ads by name (case-insensitive). |
ad
tiktok_ads_get_ad Get TikTok Ad
Get details for a single TikTok ad by ID.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
ad_id required | string | Ad ID. |
reason required | string | Why this tool call is needed |
advertisers
tiktok_ads_list_advertisers List TikTok Advertisers
List TikTok advertiser accounts accessible to the authenticated user. Shows name, ID, status, currency, and timezone.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
4 optional parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (1–100). Default: 20. |
cursor | string | Opaque pagination cursor from a previous response. |
refresh | boolean | Force a fresh fetch bypassing the cache. |
advertiser_id | string | Fetch a single advertiser by ID. |
advertiser
tiktok_ads_get_advertiser Get TikTok Advertiser
Get details for a single TikTok advertiser by ID.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
audiences
tiktok_ads_list_audiences List TikTok Audiences
List custom and lookalike audiences for a TikTok advertiser.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (1–100). Default: 20. |
cursor | string | Opaque pagination cursor from a previous response. |
refresh | boolean | Force a fresh fetch bypassing the cache. |
auth
tiktok_ads_check_auth_status Check TikTok Ads Authentication Status
Check whether the user's TikTok Ads account is authenticated. Returns auth method and email. Use ONLY when the user asks about auth status or connectivity — to get advertiser accounts, use tiktok_ads_list_advertisers instead.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
tiktok_ads_ping Ping TikTok Ads MCP Server
Health check for the TikTok Ads MCP server.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
message | string | Optional message to echo back |
login-url
tiktok_ads_get_login_url Get TikTok Ads Login URL
Get the URL to connect a TikTok Ads account via OAuth.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
user-info
tiktok_ads_get_user_info Get TikTok Ads User Info
Get detailed profile information about the authenticated TikTok Ads user (email, display name, role). Use this for user profile details — for checking auth status or listing advertiser IDs, use tiktok_ads_check_auth_status instead.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
campaigns
tiktok_ads_list_campaigns List TikTok Campaigns
List TikTok ad campaigns for an advertiser. Shows name, status, objective, and budget.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of results to return (1–100). Default: 20. |
cursor | string | Opaque pagination cursor from a previous response. |
refresh | boolean | Force a fresh fetch bypassing the cache. |
campaign_id | string | Fetch a single campaign by ID. |
campaign_ids | array | Fetch specific campaigns by IDs. |
status | array | Filter by primary status. |
search | string | Search campaigns by name (case-insensitive). |
campaign
tiktok_ads_get_campaign Get TikTok Campaign
Get details for a single TikTok campaign by ID.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
campaign_id required | string | Campaign ID. |
reason required | string | Why this tool call is needed |
feedback
tiktok_ads_developer_feedback Submit Developer Feedback
Submit feedback about missing tools, improvements, bugs, or workflow gaps in the TikTok Ads MCP toolset. Not for user-facing issues like auth or API errors.
| Parameter | Type | Description |
|---|---|---|
feedback_type required | string | Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow) |
title required | string | Concise title summarizing the feedback |
description required | string | What is needed and why |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
current_workaround | string | Current workaround, if any |
priority | string | Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue) |
interface | string | Interface the feedback originated from: MCP (default) or CLI |
reporting
tiktok_ads_get_performance_report Get TikTok Ads Performance Report
Get a performance report for a TikTok advertiser over a date range, with optional breakdowns and entity filters.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
level required | string | Reporting level — mapped to data_level internally. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
date_preset | string | Shortcut date range. Overridden by explicit start_date/end_date. |
start_date | string | Start date in YYYY-MM-DD format. |
end_date | string | End date in YYYY-MM-DD format. |
campaign_id | string | Filter to a specific campaign. |
adgroup_id | string | Filter to a specific ad group. |
page | integer | Page number (1-indexed). Default: 1. |
page_size | integer | Results per page. Default: 20. |
insights
tiktok_ads_get_insights Get TikTok Ads Insights
Get aggregated insights and analytics for TikTok ad entities with custom dimensions (age, gender, country, placement). Use this for audience demographic breakdowns and flexible dimension-based analysis — for video/creative metrics, use tiktok_ads_get_creative_report instead.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
data_level required | string | Granularity level for the report. |
dimensions required | array | Grouping dimensions, e.g. ["campaign_id", "stat_time_day"]. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
report_type | string | Type of report. AUDIENCE for demographic breakdowns (age, gender, country). Default: BASIC. |
metrics | array | Metrics to retrieve. Defaults to standard funnel metrics if omitted. |
start_date | string | Start date in YYYY-MM-DD format. |
end_date | string | End date in YYYY-MM-DD format. |
lifetime | boolean | If true, return lifetime metrics instead of date-ranged. |
page | integer | Page number (1-indexed). Default: 1. |
page_size | integer | Results per page. Default: 20. |
creative-report
tiktok_ads_get_creative_report Get TikTok Ads Creative Report
Get video creative performance metrics for TikTok ads — video views, watch time, completion rates (p25/p50/p75/p100), engagement, and per-creative breakdowns. Supports filtering by campaign_id or adgroup_id to narrow results. Use this tool for video-specific metrics and creative-level analysis.
| Parameter | Type | Description |
|---|---|---|
advertiser_id required | string | TikTok advertiser ID. |
reason required | string | Why this tool call is needed |
6 optional parameters
| Parameter | Type | Description |
|---|---|---|
campaign_id | string | Filter to a specific campaign. |
adgroup_id | string | Filter to a specific ad group. |
start_date | string | Start date in YYYY-MM-DD format. |
end_date | string | End date in YYYY-MM-DD format. |
page | integer | Page number (1-indexed). Default: 1. |
page_size | integer | Results per page. Default: 20. |