-
Notifications
You must be signed in to change notification settings - Fork 0
Customizing For Your Vertical
The Negative Placement Guardian ships tuned for a beauty / facial / med-spa brand targeting women 25–55. Every vertical has different "wrong inventory" — this page shows two ways to retune it: using Claude (2 minutes) or manually.
Paste the script into Claude (or any capable AI assistant) with this prompt — fill in the three brackets:
I'm attaching a Google Ads Script that automatically excludes bad placements
from Display, YouTube, and Performance Max campaigns. It's currently tuned
for a beauty/facial brand.
My business: [WHAT YOU SELL — e.g. "B2B SaaS for accountants"]
My target customer: [WHO BUYS — e.g. "finance professionals 30–60, US"]
Never exclude: [YOUR OWN PROPERTIES / KNOWN-GOOD SITES]
Please rewrite ONLY the BLOCK_PATTERNS and ALLOWLIST arrays in the CONFIG
section for my vertical:
1. Keep the universal junk-inventory patterns (mod apk, wallpaper, ringtone,
fake call, free coins, cheat, hack)
2. Replace the beauty-specific and audience-specific patterns with ones that
are misaligned for MY audience
3. Keep patterns short and generic enough to catch variations, but not so
short they'd match legitimate placements (e.g. 'game' also matches
'gamechanger' — flag any risky patterns you include)
4. Add my never-exclude properties to ALLOWLIST
5. Don't change any other part of the script
Return the complete updated CONFIG block only.
Paste the returned CONFIG block over the original, run once with DRY_RUN: true, review the sheet, then go live.
Pro tip: after your first weekly report, paste the flagged-placements list back into Claude and ask "which of these look like false positives for my vertical, and what allowlist/pattern changes would fix them?" — the script gets smarter every week with about 90 seconds of effort.
Everything you touch lives in the CONFIG block at the top. The two arrays:
Each entry is a case-insensitive regex tested against the placement URL + app name + channel/video title. Rules of thumb:
- Think in three buckets: (1) wrong-audience content, (2) low-intent environments, (3) universal junk. Keep bucket 3 from the shipped list — it's vertical-agnostic.
-
Short but not too short.
'kid'catches kids/kidz/forkids — good.'art'would catchsmartwatch— bad. Test mentally against compound words. -
Spaces are part of the regex.
'idle '(trailing space) matches "Idle Miner" but not "idlewild".
Vertical starter ideas:
| Vertical | Add patterns like… |
|---|---|
| B2B SaaS |
celebrity, gossip, viral, quiz, astrology, soap opera, fan page
|
| Luxury goods |
coupon, discount, free stuff, sweepstake, deal finder, penny
|
| Legal / medical |
meme, prank, funny video, fail compilation, plus anything sensational |
| Kids' products (inverted!) | Remove the kids patterns entirely — that's your audience — and block dating, casino, crypto instead |
| Home services |
celebrity, kpop, anime, fan cam, unboxing toys
|
Add your own domains, YouTube channels, and app names, plus partner properties. Allowlist beats blocklist every time — one entry protects forever.
-
MIN_SPEND_NO_CONVERSIONS— set to roughly half your target CPA. A $500-CPA law firm shouldn't exclude at $10; a $30-CPA ecommerce brand shouldn't wait for $100. -
LOOKBACK_DAYS— long sales cycles (B2B, legal) deserve 120–180 days before declaring a placement a zero-converter. -
CTR_ANOMALY— 5% is right for Display; loosen to 8–10% if you run a lot of native-style inventory where higher CTRs are legitimate.
- Set
DRY_RUN: true - Run and read every row of the report — the Reason column tells you exactly which pattern fired
- False positives → refine the pattern or add to
ALLOWLIST - Flip
DRY_RUN: false, run, schedule weekly
By AHMEEGO™ / It All Started With A Idea LLC — makers of Buddy, the Google Ads AI Agent. Questions? r/ppc_.