How to judge display traffic
Use IVT and click-to-page-view, not CTR. Zero invalid impressions means nothing is measuring if the creative has no vendor tag.
The industry already knows how to judge remnant display. We spent months not doing it.
As of 2026-09-05 every campaign Adprime Zero had ever run carried creative_addons: []. Our reporting sync asked for impressions, clicks, and spend. The two fields that actually grade traffic, invalid_impressions and viewable_impressions, live on the same performance_agg view we already query. Requesting them returned 200 and zeros, because nothing was measuring.
The meters that matter
Strict IVT rate is invalid_impressions / impressions. Do not use measurable_invalid_impressions as the numerator. On this seat that field frequently equals almost every impression and produces a nonsense percentage.
Anonymized main-seat brand-name display flights we can publish without naming the advertiser:
| Reading | Strict IVT | Click-to-page-view |
|---|---|---|
| Acceptable | 0.523 percent | 15.85 percent, about 1 in 6 |
| Problem | 1.544 percent, triggered intervention | 3.75 to 6.68 percent, about 1 in 15 |
Those are operator benchmarks from real trafficked campaigns, not invented industry averages.
Click-to-page-view needs a working join from exchange clicks to a first-party landing visit. Missing visit instrumentation is an instrumentation gap, not automatic fraud.
CTR is the trap. Open-exchange leftovers produce clicks readily. See CTR is a trap.
Truth hierarchy
Keep these as separate columns. Do not substitute one for another.
- Exchange delivery clicks. On this seat the Reporting API field is
clicksplural, notclick. - Click tokens and
/go/...redirects. Plumbing. Can be zero when the creative uses a normal click URL. - Landing visits. First presence.
- On-screen interaction. A visible tap, quiz step, or hold-confirm.
- Trap fires. Negative quality signal.
- IVT and viewability. Only after a vendor add-on is attached.
What it costs to stop guessing
HUMAN FraudSensor is vendor 7 on this seat, active, $0.05 CPM. Creative add-on 44 is the banner tag. That is 1 percent of a $5.00 CPM bid. The main adops seat already puts add-on 44 on its banner creatives. We are not discovering a new product. We are attaching the one we already pay the seat to offer.
Until that tag is on and the report returns non-zero quality fields, no Adprime Zero article will say a flight had low fraud. Concentration, implausible CTR, and click-to-page-view are allowed when labeled.
Reporting gotchas that look like zero quality
- Async report rows come back with label-cased keys.
campaign_idarrives asCampaign ID. A parser keyed on the requested snake_case name reads every metric as zero. - Snapshot spend rows store
clicks = 0on purpose. Summing them with reporting rows doubles spend and can pause a fleet on a cap it did not hit. generated_atis when our API responded. It is not provider freshness.
If your dashboard says zero clicks, read Why a dashboard can show zero clicks before you change targeting.