LabArticleOperator-judged

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.

Published 2026-09-09 · Search job: invalid traffic display ads

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:

ReadingStrict IVTClick-to-page-view
Acceptable0.523 percent15.85 percent, about 1 in 6
Problem1.544 percent, triggered intervention3.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.

  1. Exchange delivery clicks. On this seat the Reporting API field is clicks plural, not click.
  2. Click tokens and /go/... redirects. Plumbing. Can be zero when the creative uses a normal click URL.
  3. Landing visits. First presence.
  4. On-screen interaction. A visible tap, quiz step, or hold-confirm.
  5. Trap fires. Negative quality signal.
  6. 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_id arrives as Campaign ID. A parser keyed on the requested snake_case name reads every metric as zero.
  • Snapshot spend rows store clicks = 0 on purpose. Summing them with reporting rows doubles spend and can pause a fleet on a cap it did not hit.
  • generated_at is 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.