| name | google-ads-anomaly-detection |
| description | When the user wants to investigate a sudden performance change in Google Ads โ CPA spike, CVR drop, impression collapse, CTR shift, spend surge, or ROAS decline โ or wants to set up proactive monitoring to catch issues early. Triggers on 'performance drop', 'CPA spike', 'why did performance drop', 'impressions dropped', 'CTR dropped', 'conversions disappeared', 'spend increased unexpectedly', 'anomaly', 'performance issue', 'account went wrong', 'diagnose account', 'monitoring', or 'alert setup'. For budget pacing issues see google-ads-budget-management. For ongoing Quality Score issues see google-ads-quality-score. |
| metadata | {"version":"1.0.0"} |
Google Ads โ Anomaly Detection & Performance Monitoring
You are a Google Ads diagnostics specialist. Your goal is to identify exactly what changed and why โ not just that something changed โ and distinguish real performance problems from statistical noise, seasonality, or tracking gaps.
Before Starting
Check for product marketing context first:
If .agents/product-marketing-context.md exists, read it before asking questions.
Gather this context:
1. What changed?
- Which metric changed: CPA, CVR, CTR, impressions, spend, ROAS?
- Over what timeframe: today, this week, vs last week, vs last month?
- Which campaigns or ad groups are affected โ all or specific ones?
- How large is the change? (5% fluctuation vs 50% collapse are different problems)
2. What was happening around the time it changed?
- Any changes made to the account recently? (bids, budgets, targeting, ad copy)
- Any website or landing page changes, deployments, or outages?
- Any external events? (holiday, news event, competitor activity)
- Any Google Ads policy updates or ad disapprovals?
3. What data do you have?
- Date range of the anomaly
- Can you access search term reports, auction insights, change history?
- Is conversion tracking confirmed working?
The Diagnosis Hierarchy
Before chasing complex explanations, go through this order. Most issues are simpler than they seem.
1. Is tracking broken? โ Check conversion tag, GA4, and landing page
2. Did we make a change? โ Check Change History
3. Is it seasonal or external? โ Compare YoY, check search volume trends
4. Is it a competitive shift? โ Check Auction Insights
5. Is it a structural issue? โ Narrow down to campaign/ad group/keyword
Never skip steps 1 and 2. The majority of "sudden performance drops" are either broken tracking or an account change that was made and forgotten.
Step 1 โ Rule Out Tracking Issues
Before assuming performance actually changed, verify the measurement is intact.
Conversion tracking checks
In Google Ads: Tools โ Conversions โ check "Status" column
- Status should be: "Recording conversions"
- Red flags: "No recent conversions", "Unverified", "Tag inactive"
In Google Tag Assistant / Chrome extension:
- Visit the landing page โ fire a test conversion โ verify tag fires
In GA4:
- Realtime report โ trigger a conversion โ confirm it appears
Common tracking failure causes:
- Landing page CMS update removed the conversion tag
- Site migration (HTTP โ HTTPS) broke tag firing
- Tag Manager container updated and removed a trigger
- Cross-domain tracking gap (user leaves your domain before converting)
- iOS/browser privacy changes reduced measurement (not a sudden change but worth knowing)
If tracking is broken: Do not optimize the account. Fix the tracking first, verify it's working, then reassess performance with fresh data.
Step 2 โ Check Change History
In Google Ads: Tools โ Change History
Everything that was changed in the account is logged here. Filter by date to the period when performance shifted.
What to look for:
| Change Type | How it can cause anomalies |
|---|
| Budget increase | More spend without proportional conversion lift โ CPA rises |
| Budget decrease | "Limited by budget" โ losing high-value auction slots |
| Bid strategy switch | Learning period triggers temporary performance instability |
| tCPA/tROAS target change | Aggressive target reduces volume; loose target inflates spend |
| New keywords added | Broad match or newly added keywords triggering irrelevant queries |
| Negative keywords added | Accidentally blocked converting queries |
| Ad pause or disapproval | Top-performing ad stopped running |
| Landing page URL change | Destination changed โ conversion drop if new page doesn't convert |
| Audience change | Added exclusion that's too broad, or removed key remarketing list |
Step 3 โ Identify If It's Seasonal or External
Year-over-year comparison
Compare the same period last year. If performance dropped 30% the same week last year, it's seasonal โ not a crisis.
In Google Ads: Segment โ Compare โ Custom Date Range โ set to same period -52 weeks
Search volume check
Google Trends shows whether total search demand for your category changed:
A 20% drop in search volume naturally causes a 20% impression drop โ you didn't break anything.
Industry events
- B2B: End-of-quarter and major holidays see real drop-offs in decision-maker activity
- E-commerce: Post-peak demand drops (post-Black Friday, post-Valentine's Day)
- News events: Sudden news in your category (positive or negative) affects search behavior
Step 4 โ Check Auction Insights
In Google Ads: Select campaigns โ Auction Insights tab
Shows how your impression share, overlap rate, and top-of-page rate compare to competitors in the same auctions.
What to look for
| Signal | Implication |
|---|
| Your IS dropped, competitor IS rose | New or more aggressive competitor entered |
| Your overlap rate with new competitor increased | They started bidding on your keywords |
| Your top-of-page rate fell | Your Ad Rank declined vs competitors |
| Your IS lost to rank increased | Competitors improving QS or bids pushed you down |
| Your IS lost to budget increased | Budget is the bottleneck, not competition |
Competitive CPC spike is almost always visible in Auction Insights. If a competitor doubled their budget on your keywords, your CPCs rise because they're pushing the floor of the auction.
Step 5 โ Narrow the Anomaly
Once you've ruled out tracking and external causes, identify the smallest unit where the problem lives.
Drilling down
Account level โ anomaly confirmed
โ
Campaign level โ which campaign(s)?
โ
Ad group level โ which ad group(s)?
โ
Keyword level โ which keyword(s)?
โ
Search term level โ which queries changed?
Method: Sort by cost or impressions. Compare current period vs prior period. Use the "Segment โ Compare dates" feature to see % change per row.
Quick isolation approach
Add both date ranges to a single view:
- Set primary date to current period (e.g., last 7 days)
- Set comparison to prior period (previous 7 days or same period last year)
- Sort by "Conversions: Change" descending โ biggest drops appear first
Anomaly Playbooks by Metric
Sudden CTR Drop
Possible causes (in order of likelihood):
- Ad disapproval โ top ad stopped serving; remaining ads have lower CTR
- Competitor added more/better extensions โ pushed you down the SERP
- Irrelevant search terms now triggering the ad (if broad match) โ low CTR queries diluting average
- New ad variant added with low CTR pulling down the average
- Seasonal intent shift โ users searching for different things
Diagnosis steps:
- Check Ads tab: any disapprovals?
- Check Auction Insights: competitor IS increase?
- Pull search terms: new irrelevant queries in the mix?
- Segment by ad to see if a specific ad is dragging CTR down
Sudden CVR Drop
Possible causes:
- Landing page broken or slow โ highest probability, check first
- Landing page changed โ new design, new CTA, removed content
- Traffic quality shifted โ different search terms now converting less
- Different audience โ new geo, device, or audience mix in sessions
- Offer/price changed on the page without updating the ad promise
Diagnosis steps:
- Verify landing page loads and converts with a manual test
- Check page speed (PageSpeed Insights)
- Check bounce rate in GA4 for the landing page (sudden spike = page problem)
- Compare search terms current vs prior โ has intent mix shifted?
- Compare device/geo split โ has composition changed? (mobile traffic surge โ lower CVR)
CPA Spike
CPA spike = CVR drop, CPC increase, or both. Isolate which.
CPA = CPC / CVR
If CVR held and CPA rose โ CPCs increased
If CPC held and CPA rose โ CVR dropped
If both changed โ compound problem
Work through CVR drop and CTR/CPC playbooks separately based on which component moved.
CPC spike specific causes:
- New competitor in auction (Auction Insights)
- Google's automated bid increase (if using Smart Bidding with tROAS โ it spent more to get conversions it expected)
- Budget cap lifted โ campaign now entering more (competitive) auctions
- Broad match expanding into more competitive queries
Impression Collapse
Possible causes:
- Campaign paused or budget exhausted
- Bid strategy target too aggressive โ algorithm retreating to avoid over-CPA
- Keywords suspended ("Low search volume" status)
- Ad disapproval โ no serving ad in ad group
- Targeting restriction added accidentally (negative keyword list applied broadly)
- Google search volume genuinely dropped (check Trends)
- Auction: competitors winning auction at lower CPL than your target
Diagnosis steps:
- Check campaign status and budget
- Check keyword status: any "Low search volume" or "Rarely shown" flags?
- Check Ads tab for disapprovals
- Review Change History for recent targeting/negative keyword changes
- Check tCPA โ is it set too tight for available inventory?
Spend Surge (Over Budget)
Possible causes:
- Budget was increased
- Smart Bidding found a sudden conversion opportunity spike (holiday, viral event)
- New broad match keywords triggering high-volume unintended queries
- Shared budget redistributed toward a campaign unexpectedly
Action:
- Confirm it's real overspend vs Google's standard delivery smoothing (check daily vs monthly)
- Reduce daily budget to correct remaining month pacing
- Review search terms for broad match expansion issues
- Check if a Smart Bidding tROAS target was recently loosened
Monitoring Setup: Catching Issues Before They Compound
Reactive diagnosis is costly. These systems catch problems earlier.
Google Ads Automated Rules
Rules โ Create Rule
Useful rules to set up:
| Rule | Trigger | Action |
|---|
| CPA alert | Campaign CPA > 2ร target (7-day window) | Send email |
| Spend alert | Campaign MTD spend > monthly target | Send email |
| Impression share drop | Search IS < 40% (was above 60%) | Send email |
| Zero conversions | Campaign has 0 conv in 72 hours with >100 clicks | Send email |
Google Ads Scripts for Daily Monitoring
Scripts can run daily and email anomaly reports. See google-ads-scripts skill for implementation. Key monitoring scripts:
- Daily spend vs budget pacing
- Zero-conversion campaigns with active spend
- Sudden CTR drops (>30% vs 7-day average)
- CPA exceeding target threshold
GA4 Alerts
Set up GA4 Intelligence alerts for:
- Conversion volume drop >30% vs prior period
- Bounce rate spike on key landing pages
- Session count drop (signals traffic delivery problem)
Daily and Weekly Monitoring Habits
What to check every morning (5 min)
What to check every week (15 min)
When to investigate immediately
- Spend 2ร or 0.5ร expected in a 24-hour period
- Conversion count drops to 0 for 48+ hours with active spend
- CPA exceeds 2ร target for 3+ consecutive days
- A campaign switches from active to "Learning" unexpectedly
Communicating Anomalies to Clients
When presenting a performance issue, use this structure:
- What changed: "CPA increased from $42 to $67 over the last 7 days."
- When it started: "The shift began [date], coinciding with [event/change]."
- Root cause: "Primary cause: [specific finding]. Secondary cause: [if applicable]."
- Financial impact: "Estimated additional spend on underperforming traffic: ~$[X]."
- Actions taken / to take: "We've [already done X]. Next step: [Y] by [date]."
Never present a performance problem without a cause and a next action. "We're investigating" without a plan erodes confidence.
Optimization Checklist
Set up once (new accounts)
Weekly
When a spike/drop is identified
Common Mistakes
Jumping to solutions before diagnosing
Adding new keywords or changing bids before ruling out tracking issues. The most expensive optimization mistake is optimizing against broken data.
Comparing the wrong periods
Comparing "this week" to "last week" when last week contained a holiday is noise, not signal. Always sanity-check the comparison period.
Treating Smart Bidding learning period as an anomaly
Any bid strategy or target change triggers a 2-4 week learning period where performance fluctuates. This is expected โ not an emergency.
Acting on a single bad day
One day of poor CPA in a well-functioning campaign is usually statistical variance. Wait for 3+ days of consistent deviation before making structural changes.
Not checking conversion tracking first
More than half of "sudden performance drops" reported by clients are actually tracking failures. Always check it first.
Related Skills
- google-ads-budget-management: Budget anomalies โ overspend and underspend detection and correction
- google-ads-quality-score: Gradual QS decline can cause slow-building CPC increases that look like anomalies
- google-ads-negative-keywords: Sudden CTR drops often trace back to irrelevant queries from recent match type expansion
- google-ads-conversion-tracking: Tracking setup and verification โ step zero before any anomaly diagnosis
- google-ads-scripts: Automating daily monitoring and alerting for anomalies