Google Ads placement exclusion list generator
Drop in your GDN or PMAX placement report. Get a spend breakdown, a list of placements worth a second look, and a deduplicated exclusion list you can paste straight into Google Ads. Your file never leaves your browser.
Drop your placement report here
or browse — .xlsx or .csv, English or German exports
Nothing is uploaded — the file is read in your browser
Don't have a report to hand?
How to export your placement report
- 1In Google Ads, open Reports → Predefined reports → Other → Campaign URL performance.
- 2Set the date range to at least the last 90 days. A short window hides the long tail, which is exactly where the junk lives.
- 3Download as .csv or .xlsx. Both work, in any account language.
- 4Drop the file above. Nothing uploads — parsing happens in your browser.
What it checks
Every signal below is computed from your spreadsheet and the shape of the domain name. None of them require visiting a website, which is why this can run for free in your browser — and also why none of them is proof of anything on its own.
What each signal means
Signals from your own numbers carry the most weight. Domain-name patterns count for less, because a name is only a hint. Nothing is flagged on one weak signal, and a placement that converts is never flagged on its name alone.
From your performance data
From the domain name — hints only
Your cost data stays on your machine
There is no upload. The parser is JavaScript that runs in your browser tab, and the file is read with the standard FileReaderAPI — it never touches our servers, is never stored, and is gone when you close the tab. Open your browser's Network tab while you use it and you will see no request carrying your data. We record only an anonymous count of how many placements were analysed, so we know the tool is being used. Placement names, domains and spend figures are not part of that.
Questions
Is my placement report uploaded anywhere?
No. The file is parsed by JavaScript running in your own browser tab. It is never sent to our servers, never stored, and never seen by us. You can confirm this by opening your browser devtools Network tab while using the tool — there is no upload request. This matters because placement reports contain your cost data.
Where do I get a placement report in Google Ads?
In Google Ads go to Reports → Predefined reports → Other → Campaign URL performance. Set the date range to at least the last 90 days, then download as CSV or Excel. That export contains one row per placement with impressions, clicks, cost and conversions.
Does it work with Performance Max and Demand Gen reports?
Yes. Performance Max placement reports only contain impressions, with no cost or clicks, so the tool recognises them and ranks placements by impressions instead of spend. Demand Gen and Display reports from "Where ads showed" work like any other placement report. It also shows how much of your spend, or of your impressions, went to mobile apps.
Does it work with non-English Google Ads accounts?
Yes. Google Ads localises both column names and number formats. The tool recognises English, German, Spanish, French and Italian column headings, and detects whether your account exports 1.234,56 or 1,234.56 so totals are not misread by a factor of a thousand.
What do the red flags actually mean?
Each placement gets a weighted score. Signals from your own performance data carry the most weight — implausible click-through rates, thousands of impressions with no clicks at all, and real spend with clicks but no conversions. Domain-name patterns like risky TLDs and clickbait vocabulary count for less, because a name is only a hint. Nothing is flagged on a single weak signal, and a placement that converts is not flagged on its name at all. High means several lines of evidence agree; medium means it is worth a look.
Can this tell me if a site is made-for-advertising?
No, and it does not claim to. The tool never visits any site — it only reads your spreadsheet. Detecting MFA sites, ad density, AI-generated content or brand-safety problems requires actually fetching and analysing each page. That is what the DisplayGG scorer does; this tool is the free first pass that tells you where your money went.
How do I apply the exclusion list?
Copy the output, then in Google Ads go to Tools → Shared library → Placement exclusion lists → + New list. Paste one domain per line and save. Apply it at the account level so it covers every Display and PMAX campaign automatically, including ones you create later.
Then what?
This tool tells you where your money went. It cannot tell you which of those sites are actually junk — that needs each page fetched and scored for MFA patterns, ad density, and brand safety. Start with the guide to account-level exclusions, or run the list through the scorer.
Running YouTube as well? Screen a YouTube placement list — same idea, channel names instead of domains, Google Ads or DV360.