-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
How to install the Negative Placement Guardian script in your Google Ads account. No API tokens, no developer account, no external services — Google Ads Scripts run natively inside your account.
- Admin or Standard access to the Google Ads account
- A blank Google Sheet for the report (optional but strongly recommended)
Single account (CID): Google Ads → Tools & Settings (wrench icon) → Bulk Actions → Scripts
Manager account (MCC): same path, but from the MCC
- Click the blue + button
- Name it (e.g.
Negative Placement Guardian — AHMEEGO) - Delete the placeholder code
- Paste the entire script from the
scripts/folder
Click Authorize when prompted. The script needs:
- Google Ads access (to read placement reports and create exclusions)
- Google Sheets access (to write the report)
At the top of every script is a CONFIG block:
var CONFIG = {
DRY_RUN: true, // start with true for a report-only pass
SPREADSHEET_URL: '', // paste your blank Google Sheet URL
LOOKBACK_DAYS: 90, // performance window for Display/Video
MIN_SPEND_NO_CONVERSIONS: 10.00,
MIN_CLICKS_FOR_CTR_RULE: 10,
CTR_ANOMALY: 0.05,
MAX_EXCLUSIONS_PER_RUN: 500,
BLOCK_PATTERNS: [ /* editable — see Customizing for Your Vertical */ ],
ALLOWLIST: [ /* your own properties, never excluded */ ]
};Recommended first-run settings:
-
DRY_RUN: true— report only, zero changes - Paste your Google Sheet URL so you get a reviewable report
- Click Preview — the script runs read-only and writes its report
- Open your Google Sheet and review every row
- If the removals look right, set
DRY_RUN: falseand click Run
Set a frequency (weekly is typical) in the script's schedule column. If auto-applied recommendations keep re-adding bad negatives, a weekly schedule keeps the account clean.
Every run writes a new tab to your sheet:
| Column | Meaning |
|---|---|
| Scope | Which campaign (Display/Video) or ACCOUNT (PMax) received the exclusion |
| Placement + Type | Website, mobile app, YouTube channel, or video |
| Reason | Exact pattern that hit, or which performance rule fired |
| Action | REMOVED / KEPT / SKIPPED / DRY RUN — nothing happens silently |
The Action column is your audit trail — every exclusion records exactly why it fired, so false positives are a one-line allowlist fix.
Part of the AHMEEGO™ open-source Google Ads toolkit by It All Started With A Idea LLC. Questions? Post in r/ppc_.