Placement Exclusions — Semi-Automated (PMax, Display, YouTube)
Collects placement data from Performance Max, Display and YouTube campaigns into a Google Sheet with checkboxes, then excludes the placements you tick — with optional ChatGPT content analysis.
by Charles Bannister & Erik Arter (shabba.io)·shabba.io/google_ads_scripts/placement-exclusions
Overview
Gathers where your ads actually showed across Performance Max, Display and Video/YouTube, writes them to a Google Sheet with checkboxes (YouTube channels/videos on their own tab), and on the next run excludes everything you ticked. Optional ChatGPT integration analyzes website content to help you decide. Use it to clean up junk placements without hunting through the UI.
Setup
- 1Copy the Google Sheet template linked on the source page.
- 2In Google Ads, go to Tools → Bulk Actions → Scripts and create a script named 'PMax Placement Exclusions'.
- 3Paste the code below and set SPREADSHEET_URL.
- 4Optional: add an OpenAI API key in the ChatGPT settings tab to enable content analysis.
- 5Authorize, run once to populate placements, tick the ones to exclude, then re-run (schedule weekly).
Configuration Variables
| Variable | Default |
|---|---|
SPREADSHEET_URL | YOUR_SPREADSHEET_URL_HERE |
DEBUG_MODE | false |
DISABLE_REPORTING | false |
Expected Output
Collected placements: 320 website, 45 YouTube channels, 12 mobile apps. Wrote to Output tabs with checkboxes for review. Next run: excluded 28 ticked placements across PMax/Display/YouTube.
Notes
EXTERNAL API OPTIONAL: ChatGPT website analysis needs your own OpenAI API key (billed by OpenAI); the script works without it. Requires a copied Google Sheet template. Co-authored by Erik Arter (idea via the God Tier Ads community). PMax placement exclusions apply account-level negative placements.