Lab

How we read results

CTR is not the score. Clicks, visits, IVT, freshness, and the meters we refuse to collapse.

MeasurementPlanPlan2026-09-09

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.

MeasurementArticleSeat-measured2026-09-09

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.

MeasurementArticleOperator-judged2026-09-09

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.

MeasurementArticleOperator-judged2026-09-09

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.

MeasurementArticleSeat-measured2026-09-09

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.

MeasurementArticleSeat-measured2026-09-09

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.

MeasurementArticleOperator-judged2026-09-09

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.

MeasurementArticleOperator-judged2026-09-09

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.

MeasurementArticleSeat-verified2026-09-09

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.

MeasurementArticleSeat-verified2026-09-09

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.

MeasurementArticleSeat-verified2026-09-09

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.

MeasurementArticleSeat-verified2026-09-09

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.