Privacy preferences

Your account works regardless of these choices. Preferences are remembered for 180 days.

Anomaly Detection & Alerts

AI Anomaly Detection for Google Ads —
Know Before It Costs You

Statistical outlier detection plus AI judgment scans your Google Ads accounts every night. When something breaks — a CPC spike, ROAS collapse, or conversion drop — you get a plain-English email the next morning.

Get Pro — from $25/account Try Free First

What is anomaly detection — and why does it matter?

Anomaly detection is the automated process of finding data points that don't fit an account's normal pattern. Every Google Ads account has a rhythm: weekday traffic differs from weekends, CPCs drift with auction pressure, conversions ebb and flow with seasonality. An anomaly is a day that breaks that rhythm — spend that doubles with nothing to show for it, a conversion tag that silently stops firing, an impression share that falls off a cliff because a competitor raised bids overnight.

The reason it matters is simple: the cost of a problem in paid media compounds by the hour. A broken conversion action doesn't just lose tracking — it starves Smart Bidding of signals, and the algorithm starts optimizing toward the wrong outcome. A disapproved ad in your top campaign doesn't just pause one asset — it reroutes budget into weaker ads. The longer an issue runs undetected, the more expensive it becomes and the longer the recovery takes.

Most advertisers find out about these problems one of three ways:

  • Manually — someone happens to look at the right report on the right day. This doesn't scale past a handful of accounts.
  • Retroactively — the month-end report shows the damage after the budget is already spent.
  • From the client — the worst way. "Why did our leads stop last Tuesday?" is a conversation no agency wants to have.

Anomaly detection flips the model: instead of humans hunting for problems in dashboards, statistical models learn what "normal" looks like for every metric and surface only the days that genuinely don't fit — so the first person to know about a problem is you, not your client.

For exactly what runs each night, layer by layer, see how Google Ads anomaly detection works.


Statistical outliers, filtered by AI, grounded in your change log

Pure statistics catch too much. Pure human review catches too little, too late. AdCortex layers the two: deterministic rules and per-metric statistical models do the tireless nightly scanning that no human can, and an AI judgment layer applies the context a statistician can't — so what reaches your inbox is only the identifiers that actually deserve attention. Each layer only sees what the one before it produced.

1

Threshold Rules

Six deterministic business rules, each a ratio against the entity's own recent history rather than a fixed number: CPC above 2× its 14-day median, CTR below half its 21-day median, always-on spend or conversions hitting exactly zero, spend with no conversions past 3× the historical clicks-per-conversion, and same-regime spikes above 3× the weekday-or-weekend median. This is the only layer that evaluates ad groups, because median-based rules degrade honestly on thin data. The six rules, exactly →

2

Statistical Outlier Detection

Ten metrics per account and campaign, each routed to the model that fits its shape: a beta-binomial for rates like CTR and conversion rate, a negative-binomial for counts like clicks and conversions, a lognormal deviation for CPC and conversion value, and a ratio decomposition for CPA and ROAS that reports which half of the ratio moved. Baselines are centred on the median and scaled by median absolute deviation, so one catastrophic day cannot hide the next. The models, metric by metric →

3

AI Judgment + Change Log Context

Only entities that failed a check go to the AI — about half of what judging everything would cost — along with a 28-day daily table and your account's Google Ads change history: did someone raise budgets yesterday? edit an asset group? pause an ad group? It returns a 1–5 severity with a written reason; 4 or 5 is emailed, and the threshold is fixed rather than tuned. Improvements are explicitly not incidents. What the model sees and is told →

Why human judgment still matters — and how we encode it

A model can tell you Tuesday's spend was unusual. It cannot tell you that Tuesday was Black Friday, that you launched a new campaign Monday night, or that the "conversion collapse" is actually a known tag migration. That contextual reasoning has always been the human's job — which is exactly why pure statistical alerting tools drown users in false alarms until they stop reading them.

AdCortex encodes that judgment into the pipeline. The AI layer sees the statistical evidence and the account's change log side by side, the same way you would, and asks: is this surprising given what we know changed? Anomalies explained by deliberate changes are named as such; anomalies with no explanation get escalated with the context attached. You stay in the loop for the decisions that matter — nothing an alert says is ever applied to the account without a person — and the system makes sure the only things reaching you are worth your attention. Every mechanism that keeps alerts quiet →

Alert fatigue is the failure mode of every monitoring system. A tool that cries wolf twenty times a week gets muted by week three. The entire design goal of the 3-layer engine is that when an AdCortex digest lands in your inbox, it means something.


Account averages hide problems. Segments expose them.

The most dangerous anomalies are the ones invisible at the account level. If one campaign's conversion rate collapses while another surges, the account-wide average barely moves — the dashboard looks green while a real problem burns underneath. This is Simpson's paradox in action, and it's why detection that only watches account totals misses the failures that matter most.

AdCortex runs detection at three grains — the account, every campaign, and every ad group — with the rules tuned to each: ad groups get the median-based rules because their history is short, while account and campaign grain get the statistical models too. A campaign under 4% of the account's 28-day spend is folded into the account's judgement rather than alerted on its own, so a two-conversion campaign cannot page you. When an alert fires, it names the exact identifier that triggered it, so you're never left diffing reports to figure out where the problem lives — and the reports below carry the diagnosis into the segment that moved. For a whole MCC, the portfolio view shows whether it is one client or everyone: monitoring multiple accounts →

Account

Top-level guardrail: cost, clicks, impressions, conversions, value, and the rates between them, against the account's own history — and the level every folded finding lands on.

Campaigns

Per-campaign baselines on all ten metrics, judged separately once a campaign carries at least 4% of the account's 28-day spend; smaller ones fold into the account.

Ad Groups

The six rules run per ad group, so a single ad group whose CPC or conversions break pattern is caught and attached to its campaign's judgement as evidence.

Audiences

When an alert names a campaign, the Audience Performance report shows which segment or demographic moved — same nightly data, one click on.

Keywords & Search Terms

A CPC or conversion alert usually resolves on the keyword and search-term reports: the query that drifted, the keyword whose quality score dropped, the negative to stage.

Devices & Geography

Conversion Trends splits a drop by device and the geo report by location — the mobile landing-page break that desktop totals conceal is two clicks from the alert.

Every segment draws from the same nightly data pipeline that powers AdCortex reporting, so an alert is never based on stale or sampled data — it's the same finalized numbers you'd see in the report the next morning.


Quantifying outliers: a model per metric, robust baselines, and significance

"That looks high" is not a detection strategy. Every anomaly AdCortex surfaces is backed by explicit statistical evidence — here's what's actually running under the hood, and why each model earns its place. A z-score on a rolling mean is the obvious tool and the wrong one for ads data: counts are over-dispersed, rates depend on their denominators, costs are skewed, and a rolling mean is dragged by exactly the outlier you are trying to catch.

Rates: beta-binomial, because the denominator sets the certainty

CTR and conversion rate are successes out of trials. One click from ten impressions and a hundred from a thousand are the same rate with wildly different certainty, and a rate model has to know that. The beta-binomial asks how surprising today's rate is given today's denominator:

surprise = P(rate as extreme as today | trials today, the entity's historical rate distribution)

Conversions-out-of-clicks is the same model as clicks-out-of-impressions with different columns, which is why one block covers both rates.

Counts: negative-binomial with an exposure offset

Clicks, impressions, and conversions are counts whose variance grows faster than their mean — Poisson noise plus the day-to-day variation of an auction. The negative-binomial captures that over-dispersion, and an exposure offset means expected conversions depend on the clicks actually bought that day:

expected conversions today ∝ clicks today × the entity's historical conversions-per-click

Four conversions from 400 clicks on a campaign that usually gets four from 100 is a drop. A flat average calls it normal; the count model does not. How a conversion drop is caught the same night →

Costs and values: lognormal deviation, centred on the median

CPC and conversion value are positive, right-skewed, and move multiplicatively — a 2× day is as likely as a 0.5× day, which no symmetric test respects. The lognormal model works in log space and centres on the median, scaled by median absolute deviation:

deviation = (log(today) − median(log history)) / MAD(log history)

Median and MAD are what make the baseline robust: with a mean and standard deviation, one day of runaway spend widens the band enough that the next runaway day looks normal — the detector is blinded by the incident it should have caught. Spend anomalies, spikes and silence →

Ratios: decomposition, so the alert names which half moved

Cost per conversion and ROAS are ratios of two noisy quantities, undefined when the denominator hits zero — exactly when you most need the alert. Modelling them directly produces a detector that fires on every low-conversion day and explains nothing. AdCortex models the numerator and denominator separately and reports the ratio with the side that drove it:

"169.3 vs typical 52.4 (3.23×), driven by the denominator (−67%)"

That is conversions falling two-thirds while spend held — a tag, not a bid problem — and it is the sentence the email prints. Why did my CPA spike? →

Statistical significance ≠ practical significance

Here's the part most tools get wrong: a statistically significant change is not automatically an important one. A campaign spending $3/day can triple its CPC with total damage of a few dollars — statistically extreme, practically irrelevant. The statistical layer is deliberately high-recall and direction-blind; the decision about materiality is made downstream, with evidence:

  • Two gates before the AI. An entity is judged only if a rule or model failed, and a campaign under 4% of the account's 28-day spend folds into the account rather than being judged alone.
  • Direction is handled explicitly. A conversion rate six times better than expected is detected and then held — the judgement is told that improvements are not incidents. On the live model it scored 1 of 5.
  • A check that cannot run says SKIP, never PASS. Volume floors and thin history are reported as coverage gaps, not counted as clean.
  • The AI applies the practical test. Even a statistically airtight anomaly is weighed against the 28-day history and the change log before it earns a place in your inbox — and the send threshold of 4 is where its decision is written down, not a dial.

The output of all this math is deliberately unmathematical: a plain-English sentence telling you what changed, where, by how much, and what to look at first. The statistics are the evidence — the digest is the verdict.

Test Question it answers Why it's in the stack
Business rules (Layer 1) Did a ratio against the entity's own median trip — CPC 2×, CTR 0.5×, always-on metric at zero, spend with no conversions, same-regime spike? Degrades honestly on thin data; the only layer that reaches ad groups.
Beta-binomial rate Is today's CTR or conversion rate surprising given today's denominator? Certainty scales with trials — small denominators cannot page you.
Negative-binomial count Are today's clicks, impressions, or conversions improbable given exposure? Over-dispersion and an exposure offset — a drop is judged against clicks bought, not a flat average.
Lognormal deviation Is today's CPC or conversion value far from the median in log space? Multiplicative moves, robust baseline — one bad day cannot hide the next.
Ratio decomposition Did CPA or ROAS move, and which half of the ratio drove it? Names cost-up versus conversions-down in the alert itself.
Weekly and monthly cadences Did the week or month that just closed break from prior periods? Catches slow bleeds that no single day reveals; a partial period is never judged.

Cost Impressions Clicks CTR CPC Conversions Conversion Rate CPA ROAS Impression Share Search Lost IS

3-Layer Detection Engine

Business rules, per-metric statistical models, and AI judgment with change-log context work in sequence — daily, weekly on Mondays, monthly on the 1st — to surface only real anomalies, not every small fluctuation your account naturally makes. How it works →

Nightly Automated Scans

Detection runs automatically every night after Google Ads finalizes the previous day's data. No setup required — just enable Pro and it starts running.

Daily Digest Email

One brief per MCC every day listing every account, plus a deep dive per account with an anomaly: each failed check as actual vs. expected, the likely cause, and a link to the evidence. What the emails contain →

Per-Account Configuration

Enable or disable anomaly detection independently for each client account. Each account gets its own detection settings, digest recipient list, and history.

Anomaly History & Audit Trail

Browse every anomaly ever flagged — when it was detected, what the AI said, and when it resolved. Never re-investigate the same spike twice.

Portfolio Health Dashboard

Cross-account grid for agencies: which checks failed in how many accounts, and an account × metric view where a red column is the portfolio moving together and a red row is one client. Monitoring multiple accounts →


1

Upgrade to Pro

Anomaly detection is part of Pro, from $25 per account per month. All reports and dashboards remain free — Pro adds the AI layer on top of the accounts you choose.

2

Nightly scans start automatically

No configuration required. Detection begins running the night after you activate Pro. Configure the digest email recipient per account in settings if needed.

3

Receive your morning digest

When anomalies are detected, a digest email arrives the next morning. On quiet days, no email is sent. Check the Anomaly History page any time to review the full log.


What is anomaly detection in Google Ads?

Anomaly detection is the automated process of identifying data points that deviate significantly from an account's normal behavior — a CPC that doubles overnight, conversions that suddenly stop tracking, or spend that spikes far beyond its historical range. Instead of a human checking dashboards every day, statistical models learn each metric's baseline and flag the days that don't fit the pattern.

How does Google Ads anomaly detection work in AdCortex?

AdCortex uses a 3-layer detection engine. Layer 1 runs six business rules — each a ratio against the entity's own recent median — at account, campaign, and ad-group grain. Layer 2 fits a statistical model per metric across ten metrics: beta-binomial for rates, negative-binomial for counts, lognormal for CPC and value, ratio decomposition for CPA and ROAS. Layer 3 sends only entities that failed a check to an AI judgement, with a 28-day daily table and your account's change history, and emails at severity 4 or 5. It runs daily, weekly on Mondays, and monthly on the 1st. Full walkthrough → For how it compares with Google's own rules, see automated rules vs. anomaly detection.

What levels of segmentation does detection cover?

Detection runs at account, campaign, and ad-group grain — rules at all three, statistical models and AI judgement at account and campaign. A campaign under 4% of the account's 28-day spend folds into the account's judgement so small-number noise cannot page you. Once an alert names a campaign, the audience, keyword, search-term, device, and geo reports carry the diagnosis into the segment that moved, from the same nightly data.

How do you quantify whether a change is statistically significant?

Each metric is scored against its own history by a model suited to its shape: beta-binomial for rates, negative-binomial for counts, lognormal deviation for CPC and value, ratio decomposition for CPA and ROAS, each returning an expected value and a probability score. Baselines are median-centred so one extreme day cannot distort them. Statistical significance alone does not send an email — the AI judgement decides materiality with the change history in hand. The models in detail →

How quickly will I be notified when a problem occurs?

Anomaly detection runs every night after Google Ads finalizes the previous day's data. If an anomaly is detected, a digest email is delivered the following morning — typically within 12–16 hours of the issue occurring. For agencies, each client account generates its own digest so you're never sifting through a combined report.

Is Google Ads anomaly detection free?

Anomaly detection is part of Pro, from $25 per account per month — you only pay for the accounts where Pro is enabled. Pro also includes daily digest emails, AI negative keyword suggestions, AI headline creator, AI ad group creator, automated weekly email reports, portfolio health dashboard, and anomaly history audit trail. All standard reports and dashboards remain free for every connected account.

Recent posts about anomaly detection

See all anomaly detection posts →

Stop finding out about problems days later

Let AI watch your Google Ads accounts every night. Get the digest. Fix it in the morning. Pro starts at $25 per account per month — all reports stay free.

Get Pro — from $25/account Try Free First