Skip to main content
Glama

Adako: Google Ads, Meta Ads & Linkedin Ads MCP

Read TikTok campaign performance

tiktok_get_campaign_performance
Read-onlyIdempotent

๐ŸŸข READ-ONLY โ€” runs immediately, changes nothing. Cost: free (not counted against tasks).

Reports spend, impressions, reach, clicks, conversions and the TikTok video metrics โ€” 2-second and 6-second views, completion, average watch time โ€” per campaign, and compares every number with the equally long period immediately before it. Use when: the user asks how TikTok is doing, whether something is working, or what changed. Scope it with campaign_id; without it you get every campaign. Do not use it for a brief or a report to keep or forward: that is generate_report_now (monitoring router), which covers every connected account and saves a page. Do not read a single day and call it a trend โ€” TikTok's daily numbers swing hard, and video metrics keep settling for hours, which is why the presets end yesterday. Prefer last_7_days or longer before recommending anything. Returns three ratios worth more than the rest on this platform: hook rate (2-second views รท impressions) says whether the first frame stopped the scroll, hold rate (6-second views รท impressions) whether people stayed for the offer, and completion rate whether the edit held. A low hook rate is a creative problem and no bid change will fix it โ€” say that plainly rather than suggesting a budget move. A dash in the change column means the previous period was zero, not that nothing changed. If everything is zero, check tiktok_list_ads for a rejection before concluding the ads perform badly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows in the breakdown (default 25, by spend).
end_dateNoLast day, YYYY-MM-DD, inclusive. Needs start_date.
raw_dataNoReturn compact JSON only (no markdown). Use when you will compute on the result.
date_rangeNoPreset window. The "last N days" ones end yesterday, so no partial day is mixed in โ€” it matters on TikTok, where video metrics settle for hours. Either this or start_date + end_date, never both.
start_dateNoFirst day, YYYY-MM-DD. Needs end_date.
campaign_idNoOnly this campaign.
advertiser_idNoTikTok advertiser id (a long numeric string). Only needed when the user has authorised more than one advertiser. Omit it to use the primary one.
compare_previousNoCompare with the equally long period before the window. On by default; costs no extra call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds material context: cost ('free, not counted against tasks'), data-settling lag, that presets end yesterday, and the default comparison behavior. It even explains output semantics (a dash means the prior period was zero) that no structured field covers.

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-loaded with the safety/cost line and the purpose, then scoping, then exclusions, then interpretation guidance. It is on the long side and the hook/hold/completion coaching is close to advice rather than tool definition, but each sentence carries actionable information.

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

Completeness5/5

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

With no output schema and eight parameters, the description compensates by explaining what is returned (spend, video metrics, ratios) and how to read it, plus fallback behavior for all-zero results. An agent can call and interpret this tool without further context.

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 100%, so the schema already documents all eight parameters, but the description adds real meaning: campaign_id scoping behavior, that presets end yesterday to avoid partial days, and the reasoning behind the comparison default. It stops short of covering date versus custom-range exclusivity beyond what the schema states.

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?

States a specific verb and resource ('Reports spend, impressions, reach, clicks, conversions and the TikTok video metrics ... per campaign') and names scope behavior ('without it you get every campaign'). It is clearly distinguishable from the sibling generate_report_now and from tiktok_list_ads, which it references by name.

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

Usage Guidelines5/5

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

Explicit when-to-use ('the user asks how TikTok is doing, whether something is working, or what changed') and when-not ('Do not use it for a brief or a report to keep or forward: that is generate_report_now'). It also gives a methodological exclusion ('Do not read a single day and call it a trend') with the preferred alternative preset.

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.