google_ads_keywords_audit
Audit a Google Ads campaign's keyword portfolio and get grouped recommendations: pause underperformers, raise bids, tighten match types, and discover new keyword ideas. Read-only guidance.
Instructions
Runs a holistic keyword-portfolio audit for a campaign and returns grouped recommendations: pause candidates (zero-spend or zero-conversion), bid-raise candidates (below first-page bid), match-type-tighten candidates (broad stealing spend), and unused keyword-planner ideas. Each item includes criterion_id, text, spend, conversions, and a reason string. Read-only — recommendations are not applied. Materialize accepted ones via google_ads_keywords_pause / add / negative_keywords.add.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Analysis window for the keyword metrics. Default 'LAST_30_DAYS'. Also accepts an explicit range in GAQL spelling — "BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'", both endpoints inclusive, in the account's time zone — for a window no trailing constant can reach (e.g. a single past calendar month). One asymmetry to know about: every constant except LAST_90_DAYS is resolved by Google Ads in the account's reporting time zone, whereas LAST_90_DAYS has no API constant and is expanded by mureo into the 90 days ending yesterday **on the server's date**, so its edges can differ by a day when the server and the account are in different zones. Pass an explicit range when the exact boundary matters. | |
| target_cpa | No | Target CPA in the account's currency used to score efficiency. Falls back to the campaign's configured target_cpa when omitted. | |
| campaign_id | Yes | Campaign to audit. | |
| customer_id | No | Google Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted. |