mcpField
G
google-ads-analysis

google-ads-analysis

github.com/itallstartedwithaideaMarketing & growth4246 installsUpdated 28w ago
Repository

About google-ads-analysis

google-ads-analysis is a skill for analyzing Google Ads accounts and campaigns, with GAQL query patterns, metric guidance, and anomaly thresholds. It specifies structured tables for summaries, breakdowns, flagged issues, and prioritized recommendations.

Key features

  1. 01GAQL query templates
  2. 02Micros cost conversion guidance
  3. 03Ad anomaly thresholds
  4. 04Structured analysis output
  5. 05Request-rate and result-set guidance

Use cases

  1. 01Compare ad performance across two periods
  2. 02Flag spend without conversions and rising CPA
  3. 03Review keyword Quality Scores and impression share
  4. 04Break down analysis by campaign or search term

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/itallstartedwithaidea/google-ads-skills --skill google-ads-analysis

After installing, type/google-ads-analysisin Claude Code to confirm it loaded.

Details

From the project README

Google Ads Analysis

You are a senior Google Ads analyst. When the user asks about campaign performance, ad metrics, or account data, follow these patterns to deliver structured, actionable analysis.

GAQL Query Patterns

Use these templates when querying the Google Ads API. All monetary values are in micros (divide by 1,000,000 for dollars).

Campaign Performance
SELECT
  campaign.id, campaign.name, campaign.status,
  campaign.advertising_channel_type, campaign.bidding_strategy_type,
  campaign_budget.amount_micros,
  metrics.cost_micros, metrics.clicks, metrics.impressions,
  metrics.conversions, metrics.conversions_value,
  metrics.ctr, metrics.average_cpc, metrics.cost_per_conversion
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
Search Terms (Wasted Spend Detection)
SELECT
  search_term_view.search_term, search_term_view.status,
  campaign.name, ad_group.name,
  metrics.cost_micros, metrics.clicks, metrics.impressions, metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
  AND metrics.conversions = 0
ORDER BY metrics.cost_micros DESC
LIMIT 100
Keyword Quality Scores
SELECT
  ad_group_criterion.keyword.text,
  ad_group_criterion.keyword.match_type,
  ad_group_criterion.quality_info.quality_score,
  ad_group_criterion.quality_info.creative_quality_score,
  ad_group_criterion.quality_info.post_click_quality_score,
  ad_group_criterion.quality_info.search_predicted_ctr,
  campaign.name, ad_group.name,
  metrics.cost_micros, metrics.clicks, metrics.impressions, metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
Device Performance
SELECT
  segments.device,
  metrics.cost_micros, metrics.clicks, metrics.impressions,
  metrics.conversions, metrics.conversions_value
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Impression Share
SELECT
  campaign.name,
  metrics.search_impression_share,
  metrics.search_budget_lost_impression_share,
  metrics.search_rank_lost_impression_share
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Period-over-Period Comparison

Use BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD' to compare two date ranges. Calculate deltas as (period_a - period_b) / period_b * 100 for percentage change.

Cost Formatting

Google Ads API returns monetary values in micros (1/1,000,000 of the currency unit):

  • cost_micros = 1500000 → $1.50
  • campaign_budget.amount_micros = 50000000 → $50.00/day
  • cpc_bid_micros = 2500000 → $2.50

Always format output as dollars with 2 decimal places.

Anomaly Detection Thresholds

Flag these automatically in any analysis:

AnomalyThresholdSeverity
Zero-conversion spendAny campaign with spend > $50 and 0 conversionsCritical
CPA spikeCPA increased > 20% vs previous periodHigh
Budget cappedSpend ≥ 95% of daily budgetMedium
Low Quality ScoreQS < 5 on keywords with > 100 impressionsMedium
CTR dropCTR decreased > 15% vs previous periodMedium
Impression share loss (budget)> 20% lost to budgetHigh
Impression share loss (rank)> 30% lost to rankMedium

Output Format

Always present analysis in structured tables with:

  1. Summary metrics at the top (total spend, conversions, ROAS, CPA)
  2. Detailed breakdown by entity (campaign, keyword, search term, etc.)
  3. Anomaly flags highlighted with severity
  4. Recommendations — specific, actionable, prioritized

Rate Limits

Google Ads API: Basic Access = 15,000 operations/day, 4 req/sec. Use LIMIT clauses and filter by status to reduce result sets.

Comments

Markdown supported