Docs menu
Get started
What is Opus GrowthQuickstartAdd to your AIHow it worksSafety and approvalCreditsPlansFAQAI apps
All AI appsChatGPTClaudeGrokPerplexityClaude CodeCodexGemini CLIOpenClawCursorVS CodeWindsurfOther MCPConnect ad platforms
Google AdsMeta AdsLinkedIn AdsMicrosoft AdvertisingTikTok AdsChatGPT AdsAgencies and MCCConnect data sources
Search ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWebsites and SEO
AI ServerWordPressSEO IntelligenceClick fraudTool reference
All toolsGoogle AdsMeta AdsTikTok AdsLinkedIn AdsMicrosoft AdvertisingChatGPT AdsSearch ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWordPressAI ServerSEO IntelligenceClick fraudCross-channelAccount and billingLanguage
Performance Report
Performance report (cost, clicks, impressions, conversions).
- Type
- Reads only
- Credits
- 2
- Platform
- Google Ads
- Approval
- Not needed, nothing changes
What it does
Performance report (cost, clicks, impressions, conversions). level: campaign | ad_group | ad | keyword. Keyword level reports from keyword_view and is where pause / negative-keyword decisions are actually made, because one ad group usually mixes match types and intents; negative criteria are excluded (they have no performance and would read as "keywords with zero results"). Keyword rows come back flattened: campaign, ad_group, keyword, match_type, metrics. Every matching row is kept: limit controls only how many fit in this response (0 = as many as fit, about 370 KB). When has_more is true, call again with page_token=next_page_token for the next rows without re-running the Google query or using another credit; offset=next_offset remains supported for compatibility. segment: empty | device | date | day_of_week | hour | network | city | region | country | conversion_action | audience — adds a breakdown ("day" is accepted for date, "geo" for country). network splits Search / Search partners / Display / YouTube. Geo segments (city/region/country) report from geographic_view and always come back at campaign level with a readable `location` field. conversion_action shows which conversion actions each campaign produces (the UI's Segment > Conversions > Conversion action): one row per campaign x conversion action, with primary `conversions` and `all_conversions` side by side, which reconciles a campaign total against an account total when offline/CRM uploads are mixed with website tags. That segment returns NO cost, clicks or impressions — Google does not split spend by conversion action and would repeat the campaign total on every row, so anyone summing it would inflate the spend. AUDIENCE: segment="audience" reports performance per audience (the UI's Audiences > Segments). One row per audience, at ad group level when level is ad_group/ad/keyword and at campaign level otherwise, with the audience NAME resolved: Google returns internal codes like uservertical::93017 for in-market, affinity and demographic segments, which is unreadable on its own. Each row carries taxonomy (IN_MARKET vs AFFINITY), audience_type, bid_modifier and the usual metrics. `targeting_mode` is the field the decision rests on: observation means measure only, delivery is NOT narrowed, while targeting means delivery is restricted to that audience. manage_audience_targeting attaches or excludes an audience, so a change can be measured before and after. IMPRESSION SHARE (no segment only): campaign returns all three — impression_share_pct, lost_is_rank_pct, lost_is_budget_pct; ad_group and keyword return impression share and rank-lost but NOT budget-lost, because Google only exposes budget-lost at campaign level (budget is a campaign constraint); the ad level has none at all. Values come as readable percentages next to Google's raw 0-1 fractions, and a missing field means the metric does not exist for that row (Display/PMax, or no impressions) rather than zero. This is what separates "efficient but saturated, no headroom" from "efficient and budget-starved, scale it". DATE: period overrides days: 'today' (TODAY 00:00–now), 'yesterday', 'this_week', 'last_week', 'this_month', 'last_month', 'last_7_days'/'last_14_days'/'last_30_days', or an explicit 'YYYY-MM-DD' / 'YYYY-MM-DD:YYYY-MM-DD'. If period is empty, days applies (days=0 = today only).
MCP: performance_report
How to use it
You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.
Parameters
| Name | Type | Required | Default | |
|---|---|---|---|---|
| customer_id | string | Required | · | Google Ads customer account ID to query or change. Use the numeric ID returned by list_accounts; omit separators unless this tool explicitly says otherwise. |
| days | integer | Optional | 30 | Number of calendar days to look back from now for this analysis or report. |
| level | string | Optional | campaign | campaign · ad_group · ad · keyword · keywords · kelime · anahtar · Entity or reporting aggregation level to use, such as campaign, ad group, ad, or keyword when supported. |
| segment | string | Optional | · | Exact segment value for performance report. Supply text in the provider's required format; when it selects an existing resource, use the exact identifier returned by the relevant list or search operation. |
| period | string | Optional | · | Reporting period or date-range preset accepted by this operation. |
| limit | integer | Optional | 0 | Maximum number of rows returned in this response. When the result has_more flag is true, continue with next_page_token rather than assuming the list is complete. |
| offset | integer | Optional | 0 | Zero-based position at which to start reading results. Use the next_offset returned by the previous response when present. |
| page_token | string | Optional | · | Continuation token returned as next_page_token by a previous call. Leave empty for the first page; pass it unchanged to retrieve the cached next page. |
Related tools
account_auditAccount Snapshotaccount_snapshotAdd Keywordsadd_keywordsAdd Negative Keywordadd_negative_keywordAdd PMax Imagesadd_pmax_imagesApply Recommendationapply_recommendationBudget Pacing Alertsbudget_pacing_alertsCompetitor Adscompetitor_adsConnect Business Profileconnect_business_profile