google-ads-report
Pull Google Ads performance data and generate reports. Use when asked about ad campaign performance, keyword costs, quality scores, ROAS, conversion tracking, or ad spend analysis. Trigger phrases: "google ads", "adwords", "campaign performance", "ad spend", "quality score", "CPC report", "ROAS", "a
By openclaudia · 435 installs
npx skills add openclaudia/openclaudia-skills --skill google-ads-report
Source repository · Upstream listing
Google Ads Report
Pull campaign, keyword, and conversion data from the Google Ads API.
Prerequisites
Requires:
GOOGLE CLIENT ID and GOOGLE CLIENT SECRET (OAuth)
GOOGLE ADS DEVELOPER TOKEN (apply at https://ads.google.com/home/tools/manager accounts/)
GOOGLE ADS CUSTOMER ID (the account ID, format: XXX XXX XXXX , passed without dashes)
GOOGLE ADS LOGIN CUSTOMER ID (if using a manager account, the manager account ID)
Set in .env , .env.local , or ~/.claude/.env.global .
Getting an Access Token
API Base
Google Ads API uses GAQL (Google Ads Query Language) via REST.
Headers:
1. Campaign Performance Report
Overview of all campaigns with key metrics.
Parsing Campaign Data
Important: Cost Micros
All cost values in Google Ads API are in micros (1/1,000,000 of the currency unit). Divide by 1,000,000 to get the actual amount.
2. Keyword Performance Report
See how individual keywords perform.
Quality Score Breakdown
Quality Score Components:
quality score : Overall score (1 10)
creative quality score : Ad relevance (BELOW AVERAGE, AVERAGE, ABOVE AVERAGE)
post click quality score : Landing page experience
search predicted ctr : Expected click through rate
3. Ad Group Performance
4. Search Terms Report
See what users actually searched for (vs. your keywords).
Use this to:
Find new keyword opportunities (high converting search terms)
Identify negative keyword candidates (irrelevant terms with spend)
Discover match type issues (broad match pulling in junk traffic)
5. Conversion Tracking
ROAS Calculation
6. Daily Spend Trend
GAQL Date Ranges
Use these built in date ranges in GAQL:
TODAY , YESTERDAY
LAST 7 DAYS , LAST 14 DAYS , LAST 30 DAYS
THIS MONTH , LAST MONTH
THIS QUARTER , LAST QUARTER
Custom: segments.date BETWEEN '2024 01 01' AND '2024 03 31'
Workflow: Monthly Google Ads Report
When asked for a full ads report:
1. Account Overview : Total spend, impressions, clicks, conversions, ROAS
2. Campaign Performance : All active campaigns ranked by spend
3. Top Keywords : Top 20 keywords by spend with quality scores
4. Search Terms : Top search terms and negative keyword candidates
5. Quality Score Distribution : How many keywords at each QS level
6. Conversion Analysis : Conversions and ROAS by campaign
7. Daily Trend : Spend and conversion trend over the period
Report Format
Error Handling
Error Cause
AUTHENTICATION ERROR Invalid or expired access token
AUTHORIZATION ERROR Developer token issue or account access
REQUEST ERROR GAQL syntax error
QUOTA ERROR API quota exceeded
Common GAQL Mistakes
Missing WHERE segments.date DURING ... (required for most metric queries)
Using REMOVED status filter incorrectly
Forgetting to handle costMicros division by 1,000,000
Requesting incompatible resource + segment combinations
Tips
Always filter out REMOVED campaigns/ad groups/keywords
Use searchStream instead of search for large result sets (no pagination needed)
Cache results when building multi section reports
Quality Score of 0 means "not enough data" treat as null