Programmatic broadsheet · Set in real time
adon3
The Real-Time Bidding Exchange
Supply

Why Your Numbers Don't Match the Exchange's

Your dashboard says 1 million impressions. The exchange says 940,000. Before calling it a discrepancy, make sure both systems are counting the same event. Here is where impression numbers diverge, what to check and when it is worth opening a ticket.

CirculateXLinkedInEmail

A Bid Response Is Not an Impression

One of the most common reporting mistakes in programmatic advertising is comparing two metrics that sound similar but represent different events.

A typical RTB transaction moves through several stages:

Request > Bid Response > Win > Render > Impression Notice > Billable Impression

Every step can reduce the count.

For example, an exchange might return a valid bid, but the user leaves before the creative renders. A browser may block the creative. The page may close. The impression notice may never fire.

Adon3's RTB reporting deliberately separates responses from impressions. A response means Adon3 returned a bid. An impression is counted when the billing notice is received after the creative renders.

That means:

Responses will normally be higher than impressions.

The difference is not automatically a discrepancy.

Where Should an Impression Be Counted?

The cleanest reconciliation point is the event closest to the actual delivered advertisement.

With Adon3 OpenRTB integrations, the publisher or SSP should fire nurl when the auction is won and burl when the impression is counted. Reporting then reconciles against the impression.

For Adon3 XML integrations, the equivalent is imp_url.

It should fire when the advertisement is actually shown, not when the system merely receives the ad response. For pop traffic specifically, the notice should fire after the pop window opens and loads. Blocked pops that never render should not be counted as shown impressions.

So if your platform records an impression when it receives an ad, while the exchange records one only after render, your numbers will naturally differ.

Rendered, Measured and Billable Are Not Always the Same

It helps to separate three concepts.

Rendered impression

The creative successfully appears to the user.

Measured impression

The required impression tracking event reaches the exchange.

Billable impression

The impression satisfies the conditions used for reporting and settlement.

These numbers can be close, but they do not have to be identical.

The important part is agreeing on which event is authoritative for reconciliation.

At Adon3, RTB reporting reconciles to the impression and is the authoritative record for billing.

Why Impression Numbers Commonly Differ

Small differences can come from normal delivery conditions.

A visitor may close the page before rendering completes. A creative can be blocked. A network request can fail. A pop-up can be prevented by the browser. Tracking can be implemented at different stages on each platform.

A much larger difference often points to an integration issue.

One of the first things to check with OpenRTB is whether burl is actually firing. Adon3's documentation identifies a missing burl as a common cause of a large response-to-impression gap.

For XML traffic, verify that imp_url fires once and only after the ad has actually been shown.

What Is a Normal Discrepancy?

There is no universal percentage that makes an impression discrepancy "normal" across every exchange.

Different platforms count at different points, and formats such as banner, video, pop and direct link behave differently.

A better approach is to establish a stable baseline for your integration.

If your numbers normally differ by a small, consistent percentage and suddenly the gap doubles, investigate the change.

For Adon3 XML CPC reporting, there is a more specific benchmark for click filtering. A gap below 5% between recorded clicks and billable clicks is described as ordinary filtering, while a gap above 20% indicates that upstream traffic deserves investigation.

That benchmark applies to click filtering, not as a universal impression-discrepancy threshold.

Do Not Compare Today's Numbers Too Early

Another easy mistake is reconciling before the reporting period has settled.

Adon3 RTB figures appear within minutes but remain provisional for 48 hours while impression reconciliation completes. After that, they become final and match the invoice.

So if today's dashboard differs slightly from the exchange, give reconciliation time to complete before escalating it.

Compare finalized periods whenever possible.

Revenue Can Disagree Even When Impressions Match

Sometimes impression counts look correct but revenue still differs.

For OpenRTB, Adon3 settles against the substituted ${AUCTION_PRICE}, not the raw bid.price.

Using the original bid price in your internal reporting can therefore consistently overstate expected revenue, particularly in a second-price auction.

For XML feeds, price precision matters too. Adon3 returns CPC prices as strings, with additional decimal precision for some formats. Rounding or truncating these values can create small revenue differences that become meaningful at scale.

When Should You Open a Ticket?

Do not open a discrepancy ticket simply because two dashboards are not identical.

First check:

  1. Are both systems using the same timezone and date range?

  2. Are you comparing impressions with impressions rather than bid responses or wins?

  3. Is burl or imp_url firing correctly?

  4. Are notices firing once rather than multiple times?

  5. Has the 48-hour reconciliation period completed?

  6. Are you comparing the substituted auction price rather than the raw bid price?

If those checks pass and the difference remains unusually large compared with your normal baseline, then it is worth escalating.

When contacting Adon3 about RTB traffic, include the affected BidRequest ID where possible. Adon3 retains full request and response bodies for seven days and can replay an affected auction, which can make integration issues much easier to isolate.

Discrepancy claims should be raised within 30 days of the period in question.

The Bottom Line

When your numbers do not match the exchange's, the first question should not be:

"Which platform is wrong?"

Ask:

"Are we counting the same event?"

A bid response, auction win, rendered creative and billable impression represent different stages of the transaction.

Define your counting point, fire impression notices at the correct moment, allow reconciliation to finish and compare like with like.

Most apparent discrepancies become much easier to explain once both sides are measuring the same thing.

Filed3 October 2026
Last revised3 October 2026
Length878 words · 4 min
Written by
Amit Joshi
CirculateXLinkedInEmail
sellers.json · schain enforced · OpenRTB 2.5 / 2.6 / 3.0 · XML
Printed on the Open Exchange
—  Supply  —