A do-this-now brief for the performance team: stop PMax wasting spend on mobile-game & arbitrage placements — without ever touching the Shopping inventory that drives the account.
Add the attached list as an account-level placement exclusion. PMax stops serving on junk apps & arbitrage sites.
Shopping (80.7% of delivery) can't be touched by placement exclusions. Worst case is <1 conversion/month, fully reversible.
Baseline the Display (CONTENT) network, apply, re-check in 7 days. Win = cost down, conversions flat.
30-day placement report. Four-fifths is the Shopping engine. The waste is the ~19% running on the Display network — in-app and random sites.
What that Display spend buys — pulled live from the account:
Games, utilities, news, dating, train apps + arbitrage sites. Zero art-buying intent — classic accidental-tap inventory.
Display is the account's weakest network — and too small to be hiding real sales.
Whole non-Shopping Display footprint = 46,279 impressions/mo. Drag the worst-case assumptions — the answer stays tiny.
Mobile apps alone (the highest-confidence cut) cap at <1 conversion/month. And Shopping is untouched regardless — placement exclusions only filter Display/video.
Do not blanket-exclude "all websites."
paste_value_UI column. Or Google Ads Editor → account-level negative placements. (API: CustomerNegativeCriterion.)performance_max_placement_view and auto-excludes new app/arbitrage placements. Removes the manual chore entirely.Run this before applying and again 7 days after. Watch the CONTENT row.
SELECT segments.ad_network_type, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND segments.date DURING LAST_30_DAYS
CONTENT cost is down, conversions flat (any drop ≤ ~1/week — that's the bound).
CONTENT conversions fall > ~1/week, or total PMax conv/day dips → roll back (instant, no learning reset).
SELECT performance_max_placement_view.placement_type, performance_max_placement_view.display_name, metrics.impressions FROM performance_max_placement_view WHERE segments.date DURING LAST_14_DAYS ORDER BY metrics.impressions DESC
Saved on this device — pick up where you left off.