Language Targeting Audit
Reports every campaign's language targeting and flags market campaigns missing their market's language — the classic copy-paste artifact from cloning campaigns across countries.
by Dmytro Tonkikh·chiliad.io
Reports every campaign's language targeting and flags market campaigns missing their market's language — the classic copy-paste artifact from cloning campaigns across countries.
by Dmytro Tonkikh·chiliad.io
Monitors your account for unexpected performance deviations by comparing today's stats against historical averages for the same weekday. Sends an alert email when impressions, clicks, conversions, or cost deviate beyond configurable thresholds.
One 0-100 score for the whole account, built from seven objective checks — tracking flatlines, disapprovals, serving status, budget losses, negative coverage and query hygiene — with the deduction breakdown as your fix list.
Finds the structural gaps that stop ad groups from serving: ad groups without active ads, without an RSA, without keywords, keyword-stuffed themes, and multi-RSA ad groups.
Generates a daily at-a-glance performance overview of your entire Google Ads account. Writes prior-day stats to a Google Sheet with running history and optionally emails a formatted comparison of yesterday vs. two days ago vs. one week ago.
Generates a Google Spreadsheet with ad performance stats segmented by headline and final URL, including distribution charts. Covers all ad types and optionally emails the report link weekly.
Maps every campaign's ad schedule and flags forgotten narrow serving windows, stale schedule bid modifiers that Smart Bidding ignores, and (optionally) campaigns running 24/7.
Language targeting is set at launch and never looked at again — until someone clones the German campaign for France and it keeps targeting German. Language Targeting Audit lists every campaign's targeted languages (resolved to names) and applies your MARKET_RULES: campaigns whose name carries a market token (NL, DE, FR...) must target at least one of that market's expected languages. Campaigns with no language restriction are listed informationally — that's Google's recommendation for Search, but in a single-language account it deserves a conscious decision.
| Variable | Default |
|---|---|
MARKET_RULES | {} (examples in the code comments) |
FLAG_ALL_LANGUAGES | true |
EMAIL_ADDRESS | (empty) |
Search | Brand | NL languages: Dutch, English Search | Brand | DE languages: German, English Search | Generic | FR languages: German, English === Language Targeting Audit (16 campaigns) === Market mismatches: 1 Unrestricted (all languages): 3 [MISMATCH] Search | Generic | FR - market "FR" expects French, targeting: German, English Email sent to you@example.com
Language targeting matches the user's Google interface/browser language, not the query language — which is why Google recommends 'all languages' plus language-specific ads for Search. The mismatch check is about consistency with YOUR convention: if your market campaigns restrict languages, they should restrict to the right ones.