DKI & Customizer Audit
Finds the silently broken ad insertions: countdowns pointing at past dates, keyword-insertion defaults that are empty or too long, and malformed braces that serve literally as ad text.
by Dmytro Tonkikh·chiliad.io
Finds the silently broken ad insertions: countdowns pointing at past dates, keyword-insertion defaults that are empty or too long, and malformed braces that serve literally as ad text.
by Dmytro Tonkikh·chiliad.io
Proofreads every enabled RSA for outdated years, double spaces, repeated punctuation, placeholder text, policy-risky ALL-CAPS words and stray spaces — the embarrassing details reviews always miss.
Ad Strength distribution across all enabled RSAs plus a worklist of POOR and AVERAGE ads ranked by impressions — so rewriting effort goes where the traffic actually is.
Write RSAs in a Google Sheet — one row per ad, 15 headline and 4 description columns — and the script validates character limits and creates them in bulk. Copywriters work in the sheet; nobody pastes ads into the UI one by one.
Finds RSAs with identical headline sets reused across multiple ad groups — the copy-paste ads that show the same generic message everywhere regardless of each ad group's keywords.
Finds promotion assets whose redemption window has passed but that are still attached to campaigns, plus promotions expiring within the week — so ad real estate never quietly goes dark.
Reports which Search campaigns have image assets attached and which serve text-only — the free CTR lift still missing from a surprising share of accounts.
Dynamic Keyword Insertion and countdown customizers are powerful right up until they quietly break. This audit scans every enabled RSA's headlines and descriptions for three failure modes: {COUNTDOWN(...)} pointing at a date that already passed (the asset silently stops serving), {KeyWord:default} with an empty default or one long enough that real keywords push the combined text over the 30-character headline limit, and unbalanced braces that make the insertion syntax serve literally as ad text.
| Variable | Default |
|---|---|
DKI_DEFAULT_MAX | 20 |
EMAIL_ADDRESS | (empty) |
=== DKI & Customizer Audit ===
RSAs checked: 46 Using insertions: 12 With issues: 2
Sneakers > Promotions (ad 712345678903)
- PAST COUNTDOWN (2026/06/30) in headline "Sale ends in {COUNTDOWN("2026/06/30 23:59:59")}"
Brand — Exact > Core (ad 712345678901)
- LONG DKI DEFAULT (28 chars: "Premium Running Shoes Online") in headline "Buy {KeyWord:Premium Running Shoes Online}"
Email sent to you@example.comAll DKI capitalization variants ({keyword:}, {Keyword:}, {KeyWord:}) are valid Google syntax and audited alike. GLOBAL_COUNTDOWN and ad customizer attributes ({CUSTOMIZER...}) are only checked for brace balance, not semantics. A flagged past countdown in a still-relevant ad usually means: update the date or remove the asset.