Run the exact same campaign through two ad platforms, and you will likely end up with two different numbers. Your publisher ad server might report 100,000 impressions, while the advertiser’s platform logs only 92,000.
This difference is known as ad discrepancy. It stems from varying measurement methodologies, browser privacy controls, latency, or setup errors. A minor gap is standard in digital advertising, but a sudden or substantial divergence can indicate structural issues that directly hurt delivery, reporting, and revenue.
Ad discrepancy is the percentage difference between data recorded by two independent tracking systems for the same campaign or placement.
For publishers, this usually means comparing their own ad server or ad management plugin against an advertiser’s demand platform. Depending on the setup, teams compare ad requests, served impressions, viewable impressions, or clicks.
The standard calculation is straightforward. The formula measures the absolute difference between publisher and advertiser counts as a percentage of the publisher's total. Simply divide the raw difference between both platforms by your total reported publisher impressions and multiply the result by 100.
If your ad server counts 100,000 impressions and the buyer records 95,000, your discrepancy is 5%. Because these systems rarely trigger tracking events at the exact same millisecond or under identical conditions, variances are natural.

No universal threshold applies across every setup because platforms use different traffic filters, measurement protocols, and reporting windows.
A baseline difference of 3% to 5% is generally acceptable according to IAB measurement guidelines, but when the gap exceeds 10%, it stops being normal operational noise and requires an operational audit.
Rather than relying purely on generic industry standards, establish campaign baselines. If a long-term demand partner typically maintains a 3% variance that suddenly jumps to 15%, that shift points to an isolated failure. Always verify that you are comparing identical metrics, because contrasting raw served impressions with viewable impressions will always produce a false discrepancy.
Ad discrepancy rarely has a single cause. Modern advertising involves several systems between the moment a page loads and the moment an impression is recorded. Each system can introduce a small difference in timing or measurement.
Publishers often log an impression as soon as an ad request fires in the DOM. Buyers, however, may delay counting until an external tracking pixel loads. Viewability standards amplify this gap. An ad unit at the top of an article may trigger an immediate request, but if a reader scrolls away before the creative renders for the required duration, the buyer registers zero viewable impressions.
For WordPress publishers, AdPresso bridges this measurement gap. By incorporating Active View Tracking directly into the ad management workflow, AdPresso allows site owners to track actual viewport visibility alongside raw delivery metrics, keeping sell-side data aligned with buy-side viewability requirements.
Browser-level privacy controls, ad blockers, and strict Consent Management Platform (CMP) rules frequently strip out third-party tracking scripts while allowing first-party publisher requests to clear. The publisher delivers the ad, but the advertiser’s verification beacon is blocked, which creates an unresolvable reporting gap.
Platforms use different algorithms to identify Non-Human Traffic (NHT) and Invalid Traffic (IVT). If an advertiser’s fraud-detection software automatically filters out a cluster of data-center IP addresses that the publisher's system considers legitimate, reporting totals will diverge even if the technical delivery was flawless.
Reporting discrepancies often boil down to simple calendar mismatches. A publisher system that aggregates data in UTC will not match an advertiser platform reporting in EST. Discrepancies can also temporarily appear when platforms update their data caches on different schedules.
Not every discrepancy requires a deep investigation into ad-tech architecture. Configuration mistakes are surprisingly common and are usually much easier to resolve.
Incorrect or incomplete ad code can prevent tracking events from being sent correctly. This can include missing parameters, broken macros, incorrect tags, or outdated integrations, all of which can affect measurement.
This is particularly important when working with third-party ad servers. Make sure the complete tag has been implemented as provided and that required tracking parameters are passed correctly.
Cache-busting also deserves attention. If an implementation relies on a cache-busting parameter and it is missing or incorrectly configured, caching can interfere with how often a fresh ad request is generated.
The two sides of a campaign need to target the same traffic. Check geographical targeting, devices, frequency caps, campaign dates, ad sizes, and other delivery restrictions. A publisher may be serving an ad to a specific audience while the advertiser’s campaign is configured differently.
Even a small configuration difference can become significant when it is multiplied across thousands of impressions.
A creative does not necessarily finish loading just because the initial ad request was made.
Large or complex creatives can take longer to download, particularly on slower connections. If a visitor leaves the page before the creative or its tracking event finishes loading, the publisher and advertiser may record different events.
This is one reason why lightweight creatives and efficient ad delivery remain important even when the ad itself is technically valid.
You cannot realistically eliminate every difference between advertising platforms. The goal is to understand your baseline and prevent avoidable discrepancies from becoming large enough to affect reporting or billing.
Start by agreeing on the measurement standard before a campaign goes live. Everyone involved should know which platform is authoritative for billing and which metric is being compared.
Then make sure the technical setup is consistent. Use valid ad tags, check required macros, keep campaign targeting aligned, and compare reports using identical dates and time zones.
Your WordPress ad setup also matters. Centralized ad management can make it easier to maintain consistent placement rules, loading behavior, and campaign configurations across your site.
AdPresso provides this control directly within WordPress, including features such as Lazy Loading and Active View Tracking that help publishers understand both delivery and actual visibility.
When a discrepancy suddenly increases, do not start by changing everything at once. Compare the affected campaign with a normally performing one. Check when the discrepancy started, which device or geography is affected, and whether the difference appears across all placements or only one. This usually gives you a much clearer path to the underlying problem.
When the difference between two platforms becomes unusually large, work through these checks.