How we read results
CTR is not the score. Clicks, visits, IVT, freshness, and the meters we refuse to collapse.
Attach measurement before you optimize
HUMAN FraudSensor is vendor 7 on this seat at $0.05 CPM. Creative add-on 44 is the banner tag. Until it is on and fields are non-zero, we will not publish an IVT result.
Click macros that actually expand
Live-proven on 2026-09-05. 195 optimize-daily landings expanded PLACEMENT_ID, INVENTORY_SOURCE, EXCHANGE_HANDLE, and DOMAIN. /rest/macro cannot enumerate them.
Click-to-page-view benchmarks we trust
Anonymized main-seat brand-name display flights sat at 15.85 percent click-to-page-view when usable and 3.75 to 6.68 percent when not. We do not name those advertisers.
Clicks, visits, and conversions are different meters
Exchange clicks, click tokens, landing visits, and conversions are four columns. Substituting one for another is how a dashboard shows engagement that never reached a page.
CTR is the trap
Click-through rate on remnant display measures how clicky the inventory was. On our flights that was not the same as whether a person arrived.
Do not put a derived hour in a dedupe key
Beeswax bid_hour is a naive America/New_York wall clock. Appending Z stamped rows four hours early, duplicated an hour per campaign, and doubled spend from $24.46 to $48.92.
Freshness is not generated_at
generated_at is when our API responded. It is not provider freshness. Use freshness_status, metric sources, and Beeswax reporting sync timestamps.
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.
Label-cased report keys
Beeswax async report rows come back with label-cased keys. campaign_id arrives as Campaign ID. A snake_case parser reads every metric as zero.
measurable_invalid_impressions is not the rate
Strict IVT is invalid_impressions over impressions. On this seat measurable_invalid_impressions frequently equals almost every impression and produces a nonsense percentage.
Two spend sources, one auction
beeswax hourly rows and beeswax_snapshot lifetime rows cover the same auctions. A plain sum doubles spend. Use greatest of max snapshot and sum of non-snapshot.
Why a dashboard can show zero clicks
beeswax_snapshot writes clicks as 0. The performance endpoint excludes snapshot for clicks. Real clicks come from source=beeswax reporting. The field is clicks, plural.