A Lead-Gen Operator’s Guide to Auditing Google Ads Placements After the Demand Gen Migration

Article title on dark teal background with brand-green accents in centered full-bleed layout.

Share This Post

When Google made Display inventory available through Demand Gen, the placement controls you built last year stopped behaving the way the screen implies. Your account-level exclusion lists still show as active. Your ads can serve on junk apps anyway.

If you run lead-gen budget, you have probably seen the symptom: a spike of cheap clicks from mobile games and parked domains that never convert. You check your exclusion list. The placements draining your budget aren’t on it. So where is the money going?

This guide shows you how to find out. We will walk the exact placement audit a working operator runs on a live account, using the report Google buries under Insights, and the two-level exclusion that actually bites.

TL;DR

  • The control you can trust is the campaign-level ‘Where ads showed’ report under Insights, not the exclusion screen. It shows where ads actually served, not where you intended to block.
  • The GDN-only setup restricts the surface but does not stop the made-for-advertising and in-app leak. Google keeps onboarding new placement IDs after your list was built, and new IDs aren’t on any list you made.
  • The leak has a signature: a cluster of cheap clicks on the same app and game placement IDs, repeated across days, converting far below your account average.
  • Audit path: Campaign > Insights > ‘Where ads showed.’ Add cost and conversion columns, filter to app categories, then exclude by placement AND app category. Re-run monthly.
  • For low-volume accounts where one junk conversion poisons the bid signal, the call isn’t ‘exclude more.’ It’s whether to isolate Search plus Search Partners and skip Demand Gen until the report is clean.

Questions this article answers:

What Google Ads Placements Are, and Why the Old Definition Is Now Incomplete

Google Ads placements are the specific spots where your ads can appear across Google’s network: websites, YouTube channels and videos, mobile apps, and app categories. The classic definition stops there, calling them locations on the Display Network and YouTube (per Google Ads Help). That definition is now incomplete, and the gap is costing lead-gen accounts money.

Here is what changed. The Google Display Network (GDN) used to be its own thing. You ran a Display campaign, you saw where it served, and your exclusion list governed that serving. Then Google made GDN image and video inventory available as an additional surface through Demand Gen, the campaign type that also serves on Discover, Gmail, and YouTube (per Google Ads Help). The placements didn’t go away. They got blended into a larger pool you have less direct control over.

The legacy exclusion screen still looks the same. It still implies your list is a suppress-everywhere lever. We covered the broad strokes of this shift in our breakdown of the GDN-only toggle after the Demand Gen migration. This piece is the audit that follows.

Key Concept: A placement is any location your ad can serve, from a news site to a mobile game. After the migration, the list of placements where you CAN serve is no longer the same as the list you remember building. New inventory keeps getting added underneath you. That gap is the whole problem.

The symptom that sends operators searching is always the same. Cheap clicks. They come from app and game placements, they cost very little, and they almost never convert. You assume your exclusion list blocked them. The list you wrote last year couldn’t block inventory Google onboarded this year.

What Actually Changed When Display Inventory Moved Into Demand Gen

The single most important change most advertisers missed is this: you can no longer trust the exclusion screen to tell you where your ads served. The screen shows what you intended to block. It does not show what actually happened on Demand Gen’s blended inventory.

When GDN inventory became eligible through Demand Gen, your ads became eligible to serve across a bundled pool: the old Display sites, plus Discover feed, Gmail, and YouTube surfaces. Per Google’s placement targeting documentation, your ads can serve on content matching any of your topics, placements, or keywords. The word “any” is doing heavy lifting there. Broad eligibility plus a static block list is how leaks start.

Google now also supports account-level placement exclusions that apply across eligible campaigns (per Google Ads Help). That is real, and it helps with known offenders. But it does not solve the core problem, because the inventory keeps moving. A list that excludes today’s junk IDs says nothing about the IDs Google adds next month.

The takeaway is not “exclusions are useless.” The takeaway is that the only control you can fully trust is what you can verify. You verify per campaign, in the report that shows where ads actually served, not in the screen that shows what you intended to block.

Process-flow infographic in teal and green outlining steps for auditing Google Ads placements.
The google ads placements process, step by step.

Why the GDN-Only Toggle Doesn’t Stop the MFA and In-App Leak

Restricting your campaign to Display Network surfaces is not a permanent fix on its own, because Google keeps adding new placements and apps to the inventory pool, and a static exclusion list only blocks what existed when you wrote it (per Google Ads Help). That freshness gap is what lets made-for-advertising and in-app placements keep leaking through.

Think about what a made-for-advertising (MFA) site is: a low-quality page built mostly to carry ads, often paired with parked domains and auto-refreshing app placements. New ones appear constantly. Each gets its own placement ID. The moment Google onboards a new one, it can become eligible for your ad, and it is not on any list you made, because you made the list before that ID existed.

That is why the GDN-only mindset falls short. It controls the surface, the type of inventory. It does nothing about the freshness of the block list. A static exclusion file goes stale the same week Google expands inventory.

Operator Note: Treat your placement exclusion list like a negative keyword list, not a firewall. It is never “done.” New junk placement IDs show up the same way new junk search terms do, and the only fix is to keep pulling the report and adding them.

This is the structural reason an audit has to be a habit, not a setup task. You are not configuring a control once. You are maintaining one against inventory that moves every month.

How to Recognize a Real Leak: The Cheap-Click Cluster That Doesn’t Convert

A real placement leak tends to show up as a tight cluster of cheap clicks on app and game placement IDs that convert well below your account average and don’t appear on any exclusion list you built. That signature is how you tell a leak from noise without guessing.

Work the math directly. Placement conversion rate is conversions from a placement divided by clicks from that placement. Run it on each app or game placement ID. When a tight group of those IDs all sit far below your normal conversion rate, while costing you real click volume, that is not noise. That is budget draining into inventory that was never going to convert.

To size the bleed, estimate wasted spend as the clicks on those leaked IDs multiplied by their average cost per click. Use your own numbers from the report, not a borrowed benchmark. The point is to put a dollar figure on the leak so you can decide whether it is worth the hour to fix.

Not every cheap, low-converting placement is a leak. Some low-intent impressions are normal at the edges of any blended-inventory campaign. The tell that separates a genuine leak from background noise is concentration: the same handful of app and game IDs, repeated across days, all converting near zero. One stray cheap click is noise. A recurring cluster on the same junk IDs is a leak. Fix the cluster, ignore the stray.

The ‘Where Ads Showed’ Report Is the Only Screen That Tells You the Truth

The ‘Where ads showed’ report lives under Campaign > Insights, and it is the place that shows where your ads actually served rather than where you intended them to serve. Every other screen shows intent. This one shows reality. That difference is the entire audit.

Here is the workflow, step by step, on a live account:

  1. Open the campaign. Go to Insights, then find the placements view, labeled ‘Where ads showed.’
  2. Add the columns that matter: cost, conversions, and conversion rate. Without these, you are looking at a list of names, not a list of leaks.
  3. Sort by cost, descending. The expensive non-converters float to the top.
  4. Filter to app and app-category placements. This is where the junk concentrates. Mobile games and auto-refresh app units are the usual culprits.
  5. Flag the cluster that matches the leak signature: app and game IDs with real spend and conversion rates far below your account average.

Then you exclude at two levels, not one. Exclude the specific placement IDs you flagged, and exclude the broader app category they belong to. Excluding only the named IDs leaves the door open for the next ID in that category. Excluding the category closes the door behind the whole group.

Quick Win: Pull ‘Where ads showed’ on your top-spending Demand Gen campaign this week. Filter to app categories, sort by cost. Exclude the cluster that converts below your account average. Most accounts find a leak they swore they had already blocked.

On where to exclude in 2026: campaign-level exclusions are the control you can verify most directly, because you can check them against that campaign’s own serving report. Account-level placement exclusions still have a role for known offenders, and they apply across all your eligible campaigns (per Google Ads Help). Just don’t assume the list is the last word. Verify, every time, in the campaign report.

Cadence is the part most teams skip. Re-run the audit monthly, because the inventory moves monthly. If you run a multi-account agency book, build a recurring placement-hygiene pass into your monthly cycle: same report path, same filter, same two-level exclusion, applied account by account. A static list you set in January is stale by March. The same discipline that keeps your search term mining and negative keyword lists clean applies here, just on placements instead of queries.

When to Stop Excluding and Isolate Search Plus Search Partners Instead

For lead-gen accounts where a single junk conversion poisons the whole bid signal, the right move often isn’t “exclude more.” It’s deciding whether to skip Demand Gen’s blended inventory and isolate Search plus Search Partners until the placement report is verifiably clean. That is a strategy call, not a settings tweak.

Keep blended Demand Gen inventory when two things are true. First, your conversion volume is high enough that a handful of junk placement conversions don’t drag your Smart Bidding model off course. Second, your monthly audit consistently comes back clean enough that the leak is a rounding error, not a pattern. If Demand Gen is finding real leads at an acceptable cost and you can keep the report clean, there is no reason to abandon the surface.

Isolate Search and Search Partners when the junk is poisoning the math. The classic case: a low-volume lead-gen account where each conversion carries heavy weight in the bidding model. One fake app-install “conversion” can teach Smart Bidding to chase more of the same. When you cannot keep the placement report clean fast enough to stop that, pull back to the search-intent surfaces where the audit problem mostly disappears, and rebuild Demand Gen only once you can govern it.

This is the same logic we apply to Performance Max’s fast-conversion bias for lead gen. Blended inventory and automated surfaces are tools, not defaults. Use them when the economics hold. Cut them off when they train the machine on the wrong outcome.

Run the Audit Before It Eats Another Month of Spend

Placement control in Google Ads is no longer a setting you configure once. It is an ongoing operational discipline, because the inventory keeps moving and your block list keeps going stale behind it. The operators who stay clean treat the ‘Where ads showed’ report like a monthly habit, not a one-time fix.

The play is simple to state and easy to skip: pull the report, filter to app categories, flag the cheap non-converting cluster, exclude by placement and by category, then do it again next month. Skip it, and you keep paying for impressions you were sure you’d already blocked.

If you want a second set of eyes on where your budget is actually serving, across Google, Meta, Microsoft, LinkedIn, or native, book a free consultation with Elevarus. We will run the audit, find the leak, and tell you straight whether your account should keep blended inventory or isolate Search. No pitch, just the math.

Frequently Asked Questions

Do my old account-level placement exclusion lists still work after the Demand Gen migration?

They apply across your eligible campaigns, but they aren’t the full control you think they are. Google supports account-level placement exclusions across eligible campaigns (per Google Ads Help), but the list only blocks what existed when you built it. New placement IDs keep getting added, so verify per campaign in the ‘Where ads showed’ report rather than trusting the list to suppress everything.

Where is the ‘Where ads showed’ report in Google Ads?

It lives under Campaign > Insights, in the placements view labeled ‘Where ads showed.’ This is the report that shows where your ads actually served, not where you intended them to serve. Add cost, conversions, and conversion rate as columns, then filter to app categories to surface the leak.

Does the GDN-only toggle stop MFA and in-app serving?

Not on its own. It restricts the surface but a static list still goes stale as the inventory pool grows. Google keeps onboarding new placement IDs to the inventory pool after your exclusion list was built (per Google Ads Help), so those new IDs aren’t on any list you made. That freshness gap is how made-for-advertising and in-app placements keep leaking through.

How do I tell a real placement leak from normal cheap-impression noise?

Look for concentration, not stray clicks. A real leak is a recurring cluster of the same app and game placement IDs, all converting far below your account average, repeated across multiple days. One cheap, low-converting click is normal noise; the same junk IDs draining budget day after day is a leak worth excluding.

How often should I audit Google Ads placements?

Monthly, because the inventory moves monthly. Google keeps adding new placement IDs, so a list you set once goes stale within weeks. Build the audit into your recurring monthly cycle: pull the report, filter to app categories, exclude the cluster, and re-run it next month.

When should a lead-gen account skip Demand Gen inventory entirely?

When a single junk conversion can poison your bidding model and you can’t keep the placement report clean fast enough to stop it. In low-volume lead-gen accounts, one fake app-install conversion teaches Smart Bidding to chase more of the same. In that case, isolate Search plus Search Partners until the report is verifiably clean, then rebuild Demand Gen only once you can govern it.



Ready to put this into action?

Picture of SHANE MCINTYRE

SHANE MCINTYRE

Founder & Executive with a Background in Marketing and Technology | Director of Growth Marketing.