Daily operator review for Google Ads. Surfaces what changed, where waste is showing up, where signal is emerging, what is ready to scale, and what should be left alone.
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
Read first:
- google-ads/references/operator-thesis.md
- google-ads/references/query-patterns.md
- google-ads/references/tracking-playbook.md
- google-ads/references/structure-playbook.md
- google-ads/references/deliverable-templates.md
Read workspace if available:
- workspace/ads/account.md
- workspace/ads/goals.md
- workspace/ads/winners.md
- workspace/ads/findings.md
- workspace/ads/change-log.md
- workspace/ads/learnings.md
- workspace/ads/drafts/_index.md — check for pending drafts to surface
Pull these queries via the search tool on google-ads-mcp:
Campaign performance — last 7 days:
SELECT
campaign.name,
campaign.status,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value,
metrics.cost_per_conversion,
segments.date
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.cost_micros DESC
Recent account changes:
SELECT
change_event.change_date_time,
change_event.change_resource_type,
change_event.change_resource_name,
change_event.client_type,
change_event.user_email,
change_event.old_resource,
change_event.new_resource
FROM change_event
WHERE change_event.change_date_time DURING LAST_7_DAYS
ORDER BY change_event.change_date_time DESC
LIMIT 50
Budget-limited detection (search campaigns):
SELECT
campaign.name,
metrics.search_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share,
metrics.cost_micros,
metrics.conversions
FROM campaign
WHERE campaign.status = 'ENABLED'
AND campaign.advertising_channel_type = 'SEARCH'
AND segments.date DURING LAST_7_DAYS
For prior-period comparison, run the campaign performance query with BETWEEN dates for the preceding 7 days.
See data/gaql-recipes.md for additional queries.
If LAST_7_DAYS returns 0 rows, fall back to LAST_14_DAYS, then LAST_30_DAYS. For daily reviews, don't go further back — instead note "Account dormant: no activity in the last 30 days" and recommend running a full audit with historical data. Always state the date range used.
Ask the user for: - Campaign overview: last 7 days (Campaign, Status, Impressions, Clicks, Cost, Conversions, CPA) - Any recent change history - Optionally: impression share data
See data/export-formats.md for recommended export format.
deliverable-templates.md.workspace/ads/drafts/_index.md — surface any pending drafts that need review.workspace/ads/findings.md if something new matters.The daily review does not usually produce new drafts — its job is to surface what matters and flag urgency. However:
drafts/templates/negative-draft.mddrafts/templates/budget-draft.mdThreshold for daily-triggered drafts: only when the finding is time-sensitive enough that waiting for the next scheduled analysis would waste significant spend.