MCP tool · TikTok and Snapchat
get_platform_performance
One row per campaign, ad set (TikTok ad group, Snapchat ad squad) or ad, with its status, daily budget and metrics, sorted by spend by default. TikTok's Smart+ ads included.
What it does
TikTok or Snapchat: one row per campaign, ad set (TikTok ad group / Snapchat ad squad) or ad of an ad account over a date range, with its status, its daily budget and its metrics (spend, impressions, clicks, CTR, CPC, CPM, purchases, revenue, ROAS, CPA…), sorted (default by spend). Filters: campaign_id, adset_id, status, min_spend. TikTok ads: the standard ads and the Smart+ ads (smart_plus: true), not the variations TikTok generates. Money in the ad account's currency, days in its time zone; one platform at a time (never add TikTok and Snapchat up). For Meta: get_campaigns / get_adsets / get_ads.
Parameters
-
platformstring requiredtiktok or snapchat (Meta has its own reads and actions)
-
ad_account_idstring requiredThe ad account, from list_ad_accounts with the same platform: a TikTok advertiser id (digits), a Snapchat ad account id (a UUID)
-
levelstring requiredcampaign, adset (a TikTok ad group / a Snapchat ad squad) or ad
-
date_presetstring optionalDefault last_7d (the 7 days before today, today left out), in the ad account's time zone
-
sincestring optionalYYYY-MM-DD, with until (both included), instead of date_preset
-
untilstring optionalYYYY-MM-DD, with since
-
campaign_idstring optionalOnly this campaign (level campaign), or its ad groups / ad squads / ads
-
adset_idstring optionalOnly this ad group / ad squad (level adset), or its ads (level ad)
-
statusstring optionalOnly the active or only the paused ones
-
sortstring optionalDefault spend. cpa, cpc and cpm: the lowest first; the others: the highest first
-
min_spendnumber optionalOnly the rows that spent at least this much (account currency)
-
limitinteger optionalDefault 50
Example
Your assistant calls it for you when you ask in your own words. What it sends (MCP tools/call, JSON-RPC 2.0):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_platform_performance",
"arguments": {
"platform": "tiktok",
"ad_account_id": "7000000000000000001",
"level": "campaign"
}
}
} The same call over HTTP with an API key, for an MCP client of your own (an assistant that signs in sends its OAuth token instead):
curl -X POST https://app.apogee.ad/mcp \
-H "Authorization: Bearer $APOGEE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_platform_performance","arguments":{"platform":"tiktok","ad_account_id":"7000000000000000001","level":"campaign"}}}' Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | read: a connection or an API key without it does not see this tool (scopes). |
| Effect | Reads only: nothing is changed, in Apogee or on the ad account. |
| Credits | Free up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A call that fails costs nothing (credits). |
| Rate limit | 600 MCP requests per 15 minutes on Pro, 1,200 on Scale (rate limits). |
| Daily cap | Counts 1 unit toward the 2,000 units one API key or assistant connection can use in 24 hours. |
In the REST API
The same thing for your own code, with an API key:
- Get insights:
GET /ad-accounts/{acc}/insights
Related tools
TikTok and Snapchat: list_ad_accounts, list_campaigns, list_adsets, list_ads, get_launch_questions and prepare_launch take platform: "tiktok" or "snapchat" (default "meta"); launch and launch_status follow the plan whatever its platform: the same interview, the same recap, the same explicit yes. The tools below read their numbers and change their status and budgets, one platform at a time: money in the ad account's currency, days in its time zone, TikTok and Snapchat never added up.
get_platform_overview: One TikTok or Snapchat ad account's totals over a period: spend, impressions, clicks, CTR, CPC, CPM, reach, purchases, revenue, ROAS, CPA, add to carts. For Meta:get_account_overview.get_platform_daily_breakdown: Day by day (92 days at most, every day listed) for the ad account or one campaign, ad set or ad, with the period's totals. For Meta:get_daily_breakdown.get_platform_top_performers: The best and the worst ads, ad sets or campaigns by a metric, among those that spent: what to scale, what to cut. For Meta:get_top_performers.list_targeting: TikTok interests, behaviors and languages, Snapchat interests and countries, with the launch field their ids go in. Meta's targeting:search_targeting.list_tiktok_posts: TikTok Spark Ads: the existing posts a launch can run as ads, keeping their likes and comments.source: "account"(default): the video posts of one of the brand's TikTok accounts (the first one, oridentity_idfrom the launch interview), a page at a time;source: "authorized": the posts creators authorized for this ad account. Each post says whether it can run and gives itsspark_postforprepare_launch.list_tiktok_music: TikTok carousels (image ads run with a music): the music of TikTok's carousel library a launch can use.q: a keyword (e.g. "upbeat"); without one, the music this ad account used. Each gives itsmusic_idforprepare_launch(tiktok.ad_settings.music_id); none given, TikTok picks one for each carousel at the launch.list_platform_templates: TikTok and Snapchat: the Quick Bulk Edit templates saved in the Apogee app ("Save as template" in the ad group / ad squad and ad params), per ad account.level: "adgroup": an ad group's (TikTok) or an ad squad's (Snapchat) settings;level: "ad": an ad's (TikTok account, texts, URL, call to action…).prepare_launchuses one as its base:tiktok.adgroup_template_id/tiktok.ad_template_id,snapchat.adsquad_template_id/snapchat.ad_template_id. Saving and deleting templates stay in the app.set_platform_status: Prepares pausing or turning on TikTok or Snapchat campaigns, ad sets or ads;execute_actionruns it after your OK. TikTok GMV Max and legacy Smart+ campaigns, and the ads TikTok generates inside Smart+ ad groups, are changed in TikTok Ads Manager.set_platform_daily_budget: Prepares a new daily budget for a TikTok or Snapchat campaign or ad set, in the ad account's currency;execute_actionruns it after your OK. Refused above the safety cap, on a lifetime budget, on an ad set whose campaign holds the budget, and on TikTok Smart+ budgets.