The Placement Audit: Cleaning Up a Programmatic Publisher Report
Objective: Given a 20-row publisher-level performance export, apply the lesson's brand-safety and waste-reduction framework to decide which placements to keep, cut, or whitelist.
You manage paid media for Halo Top's programmatic display retargeting campaign, which has been running open-web for 3 months with no manual review.
Read the supplied publisher report, flag the waste and brand-safety risk, and build a whitelist recommendation.
Before you start
What you'll need
Free path (everything below is enough to finish)
Free, handles a 20-row export easily
The process
3 steps
Step 01 of 03
The lesson's RTB sequence ends in a second-price auction: the winner pays the second-highest bid plus one cent, with a floor price as the publisher's minimum. A placement's real CPM should track close to the account average, not spike far above it.
Given a 20-row export of CPM by publisher domain, which rows are CPM outliers worth investigating first?
Procedure
- Import publisher-report.csv and freeze row 1
- Sort by CPM descending
- Flag any publisher CPM more than 2x the account average of ₹340
- Cross-check flagged rows against their viewability and conversion columns
publisher-report.csv (sorted, excerpt) adnetwork-xyz.com CPM ₹890 Viewability 31% Conversions 0 quiz-clickbait.net CPM ₹710 Viewability 24% Conversions 0 timesofindia.com CPM ₹410 Viewability 68% Conversions 12 hindustantimes.com CPM ₹365 Viewability 71% Conversions 9
Healthy
CPM outliers correlate with low viewability and zero conversions, a fraud or waste signal.
Unhealthy
Treating a high-CPM, high-viewability, high-converting publisher as waste just because the CPM number looks high.
What this means
CPM alone doesn't identify waste, it's CPM combined with low viewability and zero conversions that flags a placement worth cutting.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| Two publishers show CPM over 2x average with 0 conversions and under 35% viewability | Add both domains to the exclusion list before the next flight | 5 min |
Step 02 of 03
The lesson's JPMorgan Chase example cut programmatic buying from roughly 400,000 sites down to a ~5,000-domain whitelist with little to no change in cost or reach, showing most open-web inventory adds cost and risk without adding real reach.
Of the 20 publishers in this export, only 6 have both viewability above 60% and at least 1 conversion. What do you recommend for the other 14?
Procedure
- Mark the 6 publishers meeting the >60% viewability + 1+ conversion bar as 'Whitelist'
- Mark publishers with 0 conversions and any brand-safety flag as 'Exclude'
- Mark the remaining publishers with some signal but below the bar as 'Monitor, do not scale yet'
Recommendation summary Whitelist (6): timesofindia.com, hindustantimes.com, ndtv.com, ... Exclude (9): adnetwork-xyz.com, quiz-clickbait.net, ... Monitor (5): remaining mid-performing domains
Healthy
A tight, mostly-whitelisted buy that concentrates spend on proven publishers, mirroring the JPMorgan pattern.
Unhealthy
Leaving all 20 publishers active because 'more inventory means more reach', the exact set-and-forget mistake the lesson warns about.
What this means
Cutting weak inventory rarely costs you real reach, most of it was adding cost and risk, not incremental audience.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| 14 of 20 publishers show weak or zero performance signal | Move to a whitelist-first buying strategy and re-expand only from verified performance data | 30 min |
Step 03 of 03
The lesson recommends setting brand safety filters, using a verified ad verification tool, checking placement reports weekly, and excluding low-quality categories from day one.
The export has no brand-safety or fraud-verification column at all. What's missing from the campaign setup itself, not just this report?
Procedure
- Confirm there is no viewability-verification or fraud-flag column sourced from a third-party verification tool
- Note this as a setup gap, not just a reporting gap
- Recommend adding a verified ad-verification integration before the next flight
Setup gap log Missing: third-party brand-safety/fraud verification (e.g. IAS, DoubleVerify) Current state: viewability numbers self-reported by ad server only Risk: fraud and unsafe placements have no independent check
Healthy
A verification tool feeds an independent viewability/fraud signal into every future report.
Unhealthy
Relying only on the DSP's self-reported numbers with no independent brand-safety check.
What this means
Self-reported delivery numbers can't catch fraud or brand-safety issues, that requires an independent verification layer.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| No independent verification column exists in the report | Add a verified ad-verification tool to the stack before the next campaign flight | dev ticket |
Final deliverable
A 20-row publisher report tagged Whitelist/Exclude/Monitor, plus a one-line note on the missing verification tooling.
See a reference example
Grab, programmatic publisher audit (excerpt) Whitelist (7): straitstimes.com, channelnewsasia.com, ... Exclude (11): 2 domains with 0% viewability and 0 conversions, 9 domains under the CPM/viewability bar Monitor (2): new domains with under 2 weeks of data Gap flagged: no independent fraud-verification tool in current stack
Success criteria
You're done when you can:
- Correctly flags the 2 CPM-outlier, zero-conversion publishers in Step 1
- Whitelist recommendation matches the >60% viewability + 1+ conversion bar
- Identifies the missing independent verification tooling as a setup gap, not a report error