Recently Updated: 18 min read

Why Ad Reports Do Not Match: Publisher vs Advertiser Data

Why Ad Reports Do Not Match: Publisher vs Advertiser Data

When a publisher's report and your own analytics disagree, the gap by itself is not proof that anything is broken. Google's Ad Manager help states that reporting discrepancies are expected whenever more than one system measures line item delivery. What matters is knowing why numbers split, which gaps are explainable, and in what order to investigate the ones that are not. If you sell garden furniture online and you are comparing a publisher's impression count with the pageviews on your spring sale page, the steps that follow take you from guesswork to evidence.

Why two reports rarely agree to the digit

The Ad Manager page on investigating report discrepancies (Opens in a new tab) says discrepancies are expected when multiple systems measure delivery, and that investigation works best while a line item is still running. After a campaign ends, a gap that has little data behind it cannot be investigated, so the time to raise a question is during the flight, not after it.

It follows that asking which number is correct is the wrong question. Each system is right by its own definition. The useful question is whether the size of the gap can be explained by where and when each system counts, and by what each filters out. You can only answer that after putting both reports on the same footing.

The page also notes that publishers are expected to work with their agency or advertiser relationships to agree on acceptable terms for questionable discrepancies, and that resolution is not guaranteed. In plain terms, part of the work is contractual rather than technical, and it helps to decide the rules of comparison before the first impression is served.

Impressions, pageviews and sessions measure different things

Advertising reports mix three units that are easy to confuse. An impression is an ad served on a page load. A pageview is a page load recorded by your analytics. A session is a run of activity by one visitor, which may contain several pageviews. A page with two ad slots can create two impressions from one pageview. The Ad Manager page adds that when a third-party creative has no ad and triggers a GPT passback, one pageview can produce two Ad Manager impressions while Analytics records one pageview.

The gap can also point the other way. If tracking code sits on both a framed page and the page framing it, Analytics registers two pageviews for that visit. Virtual pageviews, such as PDF downloads, are not tracked in Ad Manager and can inflate the Analytics count. Comparing impressions to sessions mixes units outright, like adding kilometers to minutes.

Because of this, the Ad Manager page recommends that you do not compare Analytics and Ad Manager numbers directly. For the closest comparison it suggests inventory reports segmented by ad slot, with the unfilled impressions column enabled so blank ads are visible. If your interface is in another language, those labels may look different. To read clicks and viewable impressions alongside delivery, see measuring banner ad performance. For the viewability side, see ad viewability and IAB standards.

Counting points by system

A large part of the explainable gap comes from counting at different points. The Display & Video 360 page on reporting discrepancies (Opens in a new tab) gives a precise example. Display & Video 360 counts an impression when it wins a bid and requests the ad. Campaign Manager 360 counts when the ad creative begins to render. Between those two moments lie latency, network errors and visitors who leave.

The page on Analytics and Ad Manager discrepancies (Opens in a new tab) draws the same kind of line between a publisher's ad server and a site's analytics. Ad Manager counts a display impression when the server responds with an ad response. Analytics counts a pageview only when its tracking code is executed by the visitor's browser. When the tracking code sits near the bottom of a page and the visitor leaves early, an impression can exist with no matching pageview.

SystemWhat it countsWhen it counts
Ad Manager, display creativesImpressionWhen the server responds with an ad response
AnalyticsPageviewWhen the tracking code executes in the browser
Display & Video 360ImpressionWhen it wins a bid and requests the ad
Campaign Manager 360ImpressionWhen the ad creative begins to render

Read the table before reading any gap. Once you know where each number came from, a difference stops looking like a mystery and starts looking like the distance between two checkpoints.

Where one visit is measured along its path

Follow a single visitor. A publisher page loads and its ad slot asks for an ad. The server answers, the creative draws, and the visitor may or may not see it. If they click, the click is routed to your page, which loads, and then your tracking code runs. That path has at least three checkpoints: the ad response, the creative rendering, and your code executing. Visitors can drop out between any two of them, and each system sits at a different checkpoint. Sketch this path on paper and mark where each of your numbers is taken. The question changes from which figure is wrong to between which two checkpoints the loss happened.

Latency, early exits and flaky servers

The Display & Video 360 page lists latency as a cause: lag between an initial line item request and the creative appearing can lead to differences in counts, and users may leave before a creative loads or a landing page finishes loading. It also notes that a third-party ad server may fail briefly or hit an issue that stops it from logging an impression. The Analytics page adds that iframe-wrapped tags add a round trip, so some users leave before both calls complete.

Practical suggestion: treat landing page speed as part of reporting hygiene. A slow page widens the gap between clicks and recorded visits, and you control that part. Measure the page before the flight starts, and re-check it on the busiest days. For the garden furniture store, that means opening the promotion page on a mid-range phone over a mobile connection, watching when the first visible content appears, and confirming that the analytics code fires without waiting for every product photo. Those few minutes of testing remove a share of the gap that no conversation with the publisher could ever explain, because the loss happens on the advertiser's own page.

Filtering and the timing of invalid traffic cleanup

Ad servers filter spam, bots and other non-representative traffic with different methods and timing, according to the Display & Video 360 page. The same page says each system applies invalid traffic filters at different times, that real-time interface statistics may fluctuate for 48 to 72 hours, and that you should compare generated reports rather than interface statistics, which may lack full invalid traffic filtering. A gap that looks large on day one can shrink once both sides finish filtering.

Invalid traffic is its own subject, and the verification methods are covered in invalid traffic and ad click verification. Here the point is only timing: do not judge a flight on numbers that have not been cleaned yet.

Blockers and corporate firewalls

Both the Display & Video 360 and Ad Manager pages name ad-blocking software. The first says it can prevent the line item from being delivered by the third party. The second says an ad blocker can stop a third-party creative after Ad Manager has already counted an impression. The Analytics page adds that firewalls and ad blockers can stop ads from displaying or partially obscure them, which lowers impressions.

So a blocker can make two systems see different things: one saw the request, the other never saw the creative. Neither you nor the publisher controls it, but knowing it exists keeps you from reading the gap as leaked budget. For the revenue side of the same behavior, see ad blockers and publisher revenue.

The percentage illusion at low volume

Both help pages flag low volume. The Ad Manager page says a small absolute gap becomes a large percentage when volume is low. The Display & Video 360 page says comparisons are more reliable with a significant number of impressions, for example over 1000.

Arithmetic example: a difference of three impressions is 3% of a day with a hundred impressions and 10% of a day with thirty. The absolute gap is identical, but the percentage tells a very different story. Look at the absolute difference first, the volume second and the percentage last.

Third-party creatives and what the percentages mean

The Ad Manager page says variances of up to 20% are expected for third-party creatives, while for the Campaign Manager 360 tag creative type it says Ad Manager coordinates impression counting to reduce discrepancies to within 2%. The Display & Video 360 page says it is expected to see campaign variances of up to 20% between Display & Video 360 and Campaign Manager 360.

Do not read those percentages as a threshold you can apply to every campaign. They describe specific creative types and specific system pairs. The pages leave the acceptable level of a questionable gap to the parties involved. Practical suggestion: write your own agreed tolerance into the booking summary as a number both sides accepted, rather than borrowing the figures from a help page. Percentages and wording in Google documentation can change, so check the current page before you quote them.

What widens third-party gaps

The Ad Manager page lists causes specific to third-party creatives. Some relate to setup, such as missing click trackers or macros. Some relate to counting, such as different impression counting, different invalid traffic filtering and different IP-to-geography mapping. Some relate to behavior: day or time targeting on the third-party server, third-party frequency capping, and passbacks where each additional third-party server adds to the expected variance. Creatives reused for other publishers can also add to it. Use the list as a checklist for your own creative.

Practical suggestion: before the flight, write down how the creative will be served: by a third party, from your own server, or from the publisher's. That one line decides which causes you test first when a gap appears.

Setup mismatches worth ruling out first

Before investigating further, the Ad Manager page asks you to confirm three things: both reports cover the same date range and time zone, both include the same line items or ads, and unfilled impressions, which can inflate Ad Manager numbers, are excluded. The Display & Video 360 page asks for exact date matches, the same time zone and identical filters in both systems.

The Analytics page adds items on the advertiser's side. Analytics profile filters can hide data that corresponds to Ad Manager figures. Customizations such as custom domains must be consistent across Ad Manager, Analytics and Tag Manager. Code placement and presence should be verified on every page. Analytics starts sampling after a set number of hits, which can add discrepancies. Consent matters too: consent to show an ad on a site may differ from consent on the landing page, which can explain click and tracker differences. For that last point, see cookie consent and measurement loss.

Settings to confirm before comparing

  • Do both reports cover the same dates and the same time zone?
  • Are the same line items or ad slots compared?
  • Were unfilled impressions removed from the Ad Manager count?
  • Do Analytics profile filters or sampling apply?
  • Is the tracking code on every page, in the right place, and firing once?
  • Are the reports finished reports, not real-time interface statistics?

Companion banners and video

The Analytics page also says Analytics includes Video Solutions companion impressions but not Video Solutions ad impressions. A package that mixes video and banners needs the video part read separately, and companions should be included when you compare totals.

Working through a growing gap

  1. Dates and time zone: identical in both reports?
  2. Scope: the same line items, slots and filters?
  3. Unit: impressions compared with impressions, not with pageviews or sessions?
  4. Volume: is the gap a small absolute difference that looks large?
  5. Timing: finished reports, not real-time statistics?
  6. Creative: third-party tag, passback, missing trackers?
  7. Tracking code: present, early enough, firing once per page?
  8. Blockers and consent: a component that removes measurement?

If a gap remains after the eighth step, contact the publisher or ad server support. The Ad Manager page says to do so while the campaign is live, and to have date-level reports from both systems and a live page URL or a test URL with the same configuration ready. Discrepancies with limited data cannot be investigated.

For the tagging side of campaign links, the method in sponsored post reporting with UTM and GA4 applies to ad links as well.

Hidden settings that change the count

Three third-party settings appear in the page's list of causes. A third party's day and time targeting can leave Ad Manager counting an impression when no creative comes back. A third party's frequency cap can block a fill even though Ad Manager has already counted. A creative tag reused with other publishers can behave differently from the way it behaves on your inventory.

SettingWhat it can do to the two counts
Third-party day and time targetingAd Manager counts, the third party returns nothing
Third-party frequency capFill is blocked after the publisher side counted
Tag shared with other publishersBehaviour on your inventory may differ from the advertiser's expectation
Creative reassigned mid-flightCounts split across two versions of the creative

Practical suggestion: ask the advertiser for these settings in writing before the flight, so a later gap can be checked against a known configuration rather than a memory.

Who owns each cause and what to do first

CauseWho controls itFirst step
Date range or time zoneBoth sidesAlign the two reports
Unfilled impressionsPublisherShow the unfilled column and remove it
Tracking code or filtersAdvertiserVerify code on every page and review profile filters
Slow landing pageAdvertiserMeasure load time before the flight
Creative setupAdvertiser or agencyCheck trackers and macros
Ad blockersNeitherRecord it as a known component
Filtering timingThe systemsWait for finished reports and compare again
Low volumeNeitherCompare absolute gaps and re-measure later

Where nobody controls the cause, the goal is to record it, not to close the gap. Where one side controls it, that side takes the first step.

What to ask the creative developer

The Ad Manager page says click trackers and macros must be properly implemented, and it tells the publisher to involve the creative developer, the advertiser or the third party. That turns a vague complaint into three concrete questions for whoever built the tag.

  1. Are the click macros present and unmodified in every creative version that ran?
  2. How many ad servers sit between the first request and the final creative?
  3. Did anyone reassign or replace a creative during the period being compared?

The page adds a warning on chains: if one third-party server points to yet another third-party server, the expected discrepancy increases. Each extra hop is another place where a count can be lost.

Drafting the opening note to the publisher

Practical suggestion: describe observations instead of accusing. Say which two numbers you compared, over which dates and time zone, using which units and filters, attach the daily reports, and ask for the review while the campaign is live. A message like that saves the publisher from repeating your first checks and shortens the reply.

Report types that cannot be compared

Some pairs of numbers should not be set side by side at all. The Display & Video 360 page says keyword and page category reports should not be compared with the general report, because impressions are not de-duplicated across keywords or categories. It also says YouTube reports and standard reports use different data sources. On reach, the Ad Manager page notes that Ad Manager estimates it with publisher first-party cookies, which Campaign Manager cannot access.

Once the campaign has ended

The Ad Manager page says fewer troubleshooting steps are available after a campaign ends and that discrepancies with limited data cannot be investigated. The sequence matters more than the intensity of the follow-up.

  • Check the daily gap while the line item is still running, not at the invoice stage.
  • Export day-level reports from both systems before the flight closes.
  • If the campaign has stopped serving, ask for a test page in an equivalent test environment.
  • Agree acceptable terms for questionable gaps with the advertiser or agency beforehand, as the page recommends.

Practical suggestion: schedule a mid-flight comparison at the halfway point of every flight. A gap noticed then is still fixable. The same gap found after the flight is only a negotiation.

Example scenario: spring promotion at a garden furniture shop

Example scenario: a garden furniture store buys a banner on a home and garden publisher for its spring promotion. Two weeks before the end of the flight, the marketing manager notices that the publisher's impression count and the store's landing page pageviews do not line up. A visit to the promotion page is not the same unit as an impression, and the store has also seen that its own dashboard reports fewer visits than the publisher reports clicks.

The manager starts by writing which units are being compared. Impressions are counted by the publisher's ad server. Pageviews are counted by the store's analytics. In between lie clicks, page loads and the tracking code. The manager draws the three-checkpoint path and marks which number comes from which point.

Next comes scope. Is the publisher's report in the same time zone? Does it cover the same dates? Does it include only the store's line item? Then volume: if the daily count is small, a percentage gap can look dramatic. After that comes the store's own page. The promotion page is image heavy and slow on mobile, and the tracking code is loaded at the end. Some visitors may leave before the code runs. The manager decides to compress the images and move the code earlier, and asks the publisher for finished daily reports.

No number is invented at any step. Each step names the thing being compared and the reason it could differ. By the end, the gap has been split into a part the store can reduce, a part nobody controls and a part that needs a conversation with the publisher.

Putting the agreed tolerance in writing

A booking summary can carry four lines: which report is the reference, which unit is used for comparison, the level at which a gap triggers a review, and the steps once it does. Because the help page offers no universal threshold and promises no resolution, those lines are an agreement between the two sides. The review-while-live principle can be written in too, as a rule that gaps are raised before the flight ends.

Misreadings to avoid

  • An impression, a pageview and a session are not the same unit, and one pageview can create more than one impression.
  • The 20% and 2% statements describe particular creative types and system pairs, not a threshold for every campaign.
  • Real-time interface statistics are not a substitute for a finished, filtered report.
  • A percentage gap at low volume can mislead. Look at the absolute difference first.
  • An explained gap does not mean the campaign failed. Applications, sales and leads need their own tracking, independent of the impression gap.
  • Asking which number is right is less useful than asking how each number was produced.

Frequently Asked Questions

Why does the publisher's report disagree with my analytics?

The two systems count at different points. Ad Manager counts a display impression when the server responds with an ad response, while Analytics counts a pageview when its tracking code runs in the browser. For this reason the Ad Manager page recommends not comparing the two directly.

Does a discrepancy mean someone made a mistake?

The Ad Manager page says reporting discrepancies are expected when multiple systems measure delivery. The size and cause still need investigation, but the existence of a gap is not proof of a fault.

How large a gap can I accept?

The Ad Manager page describes variances up to 20% for third-party creatives and within 2% for Campaign Manager 360 tag creatives. The two sides should agree their own tolerance in writing.

Why does a handful of impressions produce a large percentage?

A small absolute gap becomes a large percentage at low volume. Google's help page on reporting discrepancies says comparisons are more reliable with a significant number of impressions.

Do ad blockers widen the gap?

Yes. Both of Google's ad help pages on discrepancies say ad-blocking software can stop delivery of a third-party creative, which can make the systems disagree.

What should my message to the publisher contain?

Send date-level reports from both systems, the time zone and filters used, a live page URL or a test URL with the same configuration, and the creative type. Contact them while the campaign is still live.

Conclusion

A difference between publisher and advertiser data is a measurement difference first. The Ad Manager, Display & Video 360 and Analytics help pages name counting points, latency, ad blockers, filter timing, time zone, low volume and tracking setup as reasons. For a garden furniture store comparing impressions with page visits, the path is the same: align units, scope and dates, check volume and finished reports, then look at tracking code and consent. Raise what remains with the publisher while the campaign is running, with daily reports in hand, and put the agreed tolerance in writing before the next flight.

If you want to book ad placements on publisher sites with the reporting expectations set in advance, browse our ad spaces.

0 Comments

No comments yet for this article.

Post a comment

Please log in to leave a comment. Login