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
Overview
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.
Setup
- 1Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 2Click the + button to create a new script and paste the code below.
- 3Fill MARKET_RULES to match your naming convention (see the commented examples).
- 4Set EMAIL_ADDRESS to receive mismatch alerts, then schedule monthly.
Configuration Variables
| Variable | Default |
|---|---|
MARKET_RULES | {} (examples in the code comments) |
FLAG_ALL_LANGUAGES | true |
EMAIL_ADDRESS | (empty) |
Expected Output
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
Notes
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.