Log in / Create free account🌐 ES☀️

Advanced training · Module 4 — Smart Bidding II — portfolios, cross-mode, the judge and anomalies

Anomalies, currencies and safety: keeping the judge from doing harm

⏱️ 9 min read · 💰 Bids and budgets 🥷 Scripts · updated on 2026-08-22

🎧 Listen to the lesson · ≈ 4 min🔒 Subscribers only

A judge that moves money every night is as dangerous as it is useful if you feed it broken data. The difference between serious automation and a time bomb lies in what it refuses to do. This lesson closes the module with the safety engineering: anomalies, currencies, limits and auditing the judge itself.

The data that fools you

Anomaly What it looks like What it is How you spot it
A one-day CPA at 20× A campaign running wild Today's expensive clicks whose conversions will land tomorrow (latency) An isolated day, with no conversions yet, outside the latency window
Conversions at zero with normal clicks A campaign that stopped working Broken measurement The action flagged "no recent conversions"; diagnosis
A one-day conversion spike A brilliant campaign A massive offline upload (a batch from the CRM), duplicates, spam Conversions by conversion date vs click date; the batch in the upload sheet
Spend halved overnight An impossible target Budget changed by another user, an account spending limit, a disapproval Change history; ad status
An actual CPA far from what you expected in a new account in the MCC A bad campaign A different currency (pesos, krona) with thresholds designed in euros The account's currency

Thresholds that scale with the currency

A real case from the Suite: an anti-anomaly threshold of "CPA > 1,000 = broken data" worked in euros and reset CPAs to zero in an account in Colombian pesos, where 1,000 COP is small change and a normal CPA runs into the tens of thousands. The lesson: every absolute threshold must scale with a currency factor (an approximate rate to EUR or USD), and any judge operating in an MCC with several currencies must read each account's currency when it starts its run. What applies to scripts applies to any sheet of rules.

"If it fails, it touches nothing" design

The engineering rules of a safe judge:

  1. Read everything before writing: if any piece of data is missing (conversions, IS, status), nothing is decided for that campaign.
  2. One transaction per campaign: a failed write on one campaign does not leave another half done; and the one that failed is left as it was.
  3. Verify afterwards: after writing, read back and confirm the value is what you expected; if not, raise a warning.
  4. TEST mode as the default state of every new campaign in the system: weeks of verdicts recorded without being applied.
  5. No decisions during learning, nor inside the waiting period after the last move.
  6. A record of everything, including what was not done and why ("anomaly", "no data", "waiting").

Absolute limits

Even if the matrix says otherwise:

They are firebreaks: they rarely fire; when they do, they prevent a disaster.

Other people's changes

The judge is not alone: other users, automated rules, applied recommendations and third-party scripts all touch the account. Before each decision, check the campaign's change history for the window: if there was an external budget or target change, the judge abstains and raises a warning. Two systems pulling the same lever is the recipe for eternal learning.

The monthly audit of the judge itself

Once a month, with the record in front of you:

  1. Accuracy: of the moves from 3-4 weeks ago, how many improved compliance? How many had to be reverted?
  2. False positives: anomalies flagged that turned out to be real, and decisions taken on data that later turned out to be broken.
  3. Bands and steps: too twitchy (lots of small moves) or too slow (long stretches of missing the target with no action)? Adjust.
  4. Limits: did any firebreak trip? Why?
  5. Coverage: chronically "no data" campaigns → restructure.

A judge that audits itself improves; one that does not accumulates biases.

💡 Ninja trick: most of these safeguards were born from real incidents in the Suite — the currency threshold, "if it fails, it touches nothing", the check after writing, abstaining in the face of external changes. None of them is elegant; all of them are cheap compared with a Monday of reset budgets. If you build your own judge, copy the list before you copy the matrix.

What you should remember

That is the end of Module 4. Module 5 moves on to ad fraud: site farms, apps, bots, IPs — and how an account defends itself.

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeSmart Bidding beyond Search: Demand Gen, PMax, Shopping and video under the same judgeSmart Bidding II — portfolios, cross-mode, the judge and anomaliesRelacionadaLead quality: scoring every contact and teaching Google the difference between a customer and a browserMeasurement II — offline conversions, values, GA4, attribution and lead qualityRelacionadaControlling monthly spend: pacing, variances, alerts and a month-end with no surprisesBudgets and planning — impression share, curves, allocation and spend controlRelacionadaWhere NOT to touch: the ten management mistakes that sabotage an accountBudgets and bids — concepts, CPC/CPA/ROAS and where NOT to touchRelacionadaThe judge: judging each campaign by its business target, not by the strategy targetSmart Bidding I — strategies, portfolios, learning and the target judge

Ver el temario completo

🎓
You're reading, in the open, a lesson from the subscribers' training

This page is read-only. With the Suite subscription you get the full academy — all three levels with audio, quizzes, favorites, highlights and certificates — plus the scripts working in your Google Ads account.

See the full Suite → Create my free account →
🥷

Subscriber feature

This option is part of the Ninja Scripts Suite subscription.

See the subscription →