Skip to content

Installation Guide

John Williams edited this page Jul 20, 2026 · 1 revision

Installation Guide — Google Ads Scripts Setup (2 Minutes)

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.

Prerequisites

  • Admin or Standard access to the Google Ads account
  • A blank Google Sheet for the report (optional but strongly recommended)

Step 1 — Open the Scripts Editor

Single account (CID): Google Ads → Tools & Settings (wrench icon) → Bulk ActionsScripts

Manager account (MCC): same path, but from the MCC

Step 2 — Create the Script

  1. Click the blue + button
  2. Name it (e.g. Negative Placement Guardian — AHMEEGO)
  3. Delete the placeholder code
  4. Paste the entire script from the scripts/ folder

Step 3 — Authorize

Click Authorize when prompted. The script needs:

  • Google Ads access (to read placement reports and create exclusions)
  • Google Sheets access (to write the report)

Step 4 — Configure

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

Step 5 — Preview, Review, Run

  1. Click Preview — the script runs read-only and writes its report
  2. Open your Google Sheet and review every row
  3. If the removals look right, set DRY_RUN: false and click Run

Step 6 — Schedule (Optional)

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.

Reading the Report

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.

Next Steps


Part of the AHMEEGO™ open-source Google Ads toolkit by It All Started With A Idea LLC. Questions? Post in r/ppc_.

Clone this wiki locally