Google Ads campaign performance with period-over-period change
google_get_campaign_performance🟢 READ-ONLY — runs immediately, changes nothing. Cost: free (not counted against tasks).
Reports spend, impressions, clicks, CTR, conversions, conversion value, CPA and ROAS per campaign for a period, plus the change against the immediately preceding period of the same length. Use when: the user asks how campaigns performed, whether results improved, or what a campaign costs per conversion. 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 use when: the user wants to know what exists rather than how it performed (google_list_campaigns), or wants search-query detail (google_analyze_search_terms). Pass either date_range (a preset) or start_date + end_date, never both. Periods are calendar days in the account's own timezone. Money is a decimal in the account currency. CPA is blank when there were no conversions and ROAS is blank when there was no spend — say so rather than printing zero. If you are unsure which account, campaign or period the user means, ask them — do not guess ids or dates.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum campaigns to return (default 50). | |
| end_date | No | Last day of the period (YYYY-MM-DD). Use with start_date. | |
| raw_data | No | Return compact JSON only (no markdown). Use when you will compute on the result. | |
| date_range | No | Preset range. Alternatively pass start_date and end_date (YYYY-MM-DD). Never both. | |
| start_date | No | First day of the period (YYYY-MM-DD). Use with end_date. | |
| customer_id | No | Google Ads customer id (10 digits, dashes optional). Omit to use the primary account; list_connected_accounts shows the valid ids. | |
| campaign_ids | No | Limit the report to these campaign ids. |