How to investigate discrepancies
The definitive guide to why numbers don’t match
Reporting discrepancies are common and expected when multiple systems are used to measure line item delivery. If you want to investigate a reporting discrepancy, use the resources below for assistance. It's best to investigate discrepancies while a line item is still running, since there are fewer troubleshooting steps available after a campaign has ended.
Learn more about DoubleClick's counting methodologies and IAB Compliance.
When an ad server delivers line items that are hosted by a third party, reporting discrepancies between the two systems will occur, and it is common to see campaign variances of up to 20%. Check the lists in "More about third-party discrepancies," below, to learn why discrepancies may occur and what you can do to prevent them.More about third-party discrepancies
Discrepancies may result from:
Latency: Lag between an initial line item request and the appearance of the creative can lead to differences in counts. For instance, a user will often navigate away after the browser receives the DFP line item request but before the third party responds with the requested line item, or a user may click on a link but navigate elsewhere before the landing page has loaded.
Network connection and server reliability: A third-party ad server may fail briefly or encounter an issue that prevents it from logging an impression.
Ad blockers: Ad blocking software can prevent the line item from being delivered by the third party after DFP has already counted an impression.
Low impression goals: A small numerical discrepancy can cause a high percentage discrepancy if the line item delivered few total impressions. For example, if you have a campaign delivering 100 impressions per day, a single-day discrepancy of 30 impressions will lead to a single-day discrepancy of 30% even though the actual number of missed impressions is low.
Tracking methodologies: DFP counts line items requests, but a third party may record an impression at a different time (e.g., when a tracking pixel is rendered).
Filtering: Ad servers have different methods for filtering impressions from spammers, bots, spiders, back-to-back clicks, link analyzers, and other automated or non-representative web traffic.
Testing: DFP excludes impressions or clicks from anyone with an IP address that has signed in to a DFP account before. Third parties do not necessarily do so.
Things to check:
Are macros implemented properly? (Learn more about implementing macros.)
If DFP recognizes the third-party ad server you are using, let it automatically insert the macros. If you are unsure of where to place macros, talk to your creative developer, advertiser, or third party for guidance.
%%CACHEBUSTER%%-- Make sure there's a random number properly inserted in each call.
%%CLICK_URL_UNESC%%-- Verify that the click macro is included in the correct portion of the click-through URL in your code.
%%VIEW_URL_UNESC%%-- For interstitial creatives, ensure that this macro is included in your creative's code.
As a best practice, we recommend using an unescaped (...
UNESC) click macro when the creative hosted by another server is a standard image file such as a GIF or JPEG. You should use the escaped (...
ESC) click macro for Flash creatives.
- Have you defined more ad tags in the webpage header than you display in the body section of your webpage? Ad tags that are defined in the header but not displayed in the body will be counted as impressions whenever the tag is loaded, but they won't make calls to third-party servers. That will lead to discrepancies. Make sure that all ad tags defined in the header are also displayed in the body of the webpage.
Are you comparing the same date range across the third party and publisher?
Do both DFP and the third party use the same time zone? Ad servers that report based on different time zones will return different results.
Are you comparing the same line items/ads?
Do you use the same third-party tags in any other line items in your network?
Did you confirm with the third party that the same tags have not been provided to any other publishers?
How large is the creative asset? Large creatives can have long load times and can cause differences in impression count timing.
Does the DFP report include unfilled impressions? Unfilled impressions will inflate DFP’s numbers by including instances where the third-party ad server was not called. (Learn more about reporting unfilled impressions.)
Is the line item using geographic targeting on the third-party ad server? Different ad servers map IP address location data differently, leading to significant discrepancies.
Is the line item day- or time-parted on the third-party ad server? Day- or time-parting on the third-party ad server can lead to DFP counting impressions in situations where the third party does not return a line item.
Does the creative require calls to multiple third-party ad servers (also known as "daisy-chaining")? Each third-party ad server can lead to campaign variances of up to 20%. If one third-party server points to yet another third-party server, the expected discrepancy increases. (With 80% accuracy between each server, this results in a normal discrepancy of up to 36%, as shown in the following calculation:
1 - (1 - 0.2) × (1 - 0.2) = 0.36).
Does the third-party ad server use frequency capping? A third-party frequency cap will prevent an ad request from being filled despite the fact that DFP has counted an impression.
Do any of the line items in question involve passback tags? (Learn more about passbacks.)
Page views vs. impressions
Analytics tracking is based on page views. In contrast, DFP ad server concepts are, by design, not page-specific:
- An ad tag can be placed on multiple pages.
- An ad unit can be associated with many pages.
- A line item can be targeted to multiple ad units.
- A line item can serve to a single page multiple times.
DFP counts impressions delivered to ad tags; analytics packages count the execution of analytics tracking code. Since these snippets of code are located in different parts of your page code, both scripts might not load or execute on every page view.
For instance, some analytics packages recommend placing tracking code at the bottom of your HTML. If a user exits a page before the the tracking code is executed, the analytics package will not count a page view, but DFP will still count an impression.
Since there is no interaction between ad tag code and analytics tracking code, analytics packages cannot account for unfilled impressions, which can be caused by any number of variables:
- A lack of inventory
- Firewalls and misconfigured security software
- Ad blockers
- Intermittent network connections
- General latency
Some publishers serve DFP tags in iframes. Browsers that don't support the
<iframe> tag will not report an impression, but an analytics package will count a page view. Ad tags within an iframe can result in an extra round trip between the browser and server. This additional latency can cause some users to leave the page before the browser has enough time to make the calls to both the analytics package and DFP. If the analytics tracking code is present within both an iframe as well as the parent frame, the analytics software will register an inflated number of page views.
Analytics packages typically require cookies to track page views. Some packages only record visitor traffic associated with a visitor cookie. If this cookie information is not available for a hit, or if a user has disabled cookies, then that hit may be disregarded.
Comparing referrer URLs to DFP clicks is not advised. Referrers in analytics are not an accurate measure of clicks or landings for the following reasons:
Referrers can be disabled by users.
Internet security applications can block referrer data.
Firewalls and proxy servers can filter referrers.
Users can spoof referrers to prevent servers from knowing where they've been.
Internet Explorer does not send referrer data when switching from either (a) HTTP to HTTPS, or (b) any non-HTTP/HTTPS protocol (e.g., file://) to HTTP/HTTPS.
The best practice is to always traffic DoubleClick for Advertisers (DFA) or DoubleClick Campaign Manager (DCM) tags using the "DoubleClick tag" creative type. If you have trafficked your DFA/DCM tags as a DoubleClick tag creative type and are experiencing a discrepancy of greater than 2%, please read the troubleshooting steps below.More about DoubleClick discrepancies
Normally, DFP records an impression as soon as the ad server determines which creative to send. When the DoubleClick tag creative type is chosen, however, DFP does not record the impression until the line item has been sent and an impression has been recorded by DFA/DCM. As a result, this process reduces discrepancies between DFP and DFA/DCM, typically to within 2%. The DoubleClick tag creative type will also eliminate the need to add click tracking macros.
If a DoubleClick tag is booked as a custom or third-party creative, this enhanced functionality is lost; DFP will treat the DoubleClick tag as a third-party tag. It will not report clicks without the DFP click macro, and you will see a larger discrepancy in delivery numbers (as you would with any third-party ad server). If you have trafficked a DoubleClick tag as a custom or third-party creative type and are experiencing a reporting discrepancy between DFP and DFA/DCM, please see the “Third-party discrepancies” section above. Otherwise, explore the following possibilities.
Discrepancies may result from:
Invalid activity filtering: DFP and DFA/DCM differ slightly in filtration methodologies, which can result in discrepancies in instances when frequent invalid activities occur. (Learn more about DFP’s filtration.)
Things to check:
Has the correct DoubleClick tag been trafficked? Like DFP, DFA/DCM has many tag types, including one that is specifically intended for use in DFP.
Are you comparing the correct objects between DFA/DCM and DFP? Which DFA/DCM ads are included in the placement for the tag you’ve trafficked in DFP?
Have you or the advertiser made any changes during the time in question (e.g., reassigning or modifying creatives)?
Are you looking at daily data or aggregated results? Break out the data by day and line item.
Does the advertiser code load properly? Perform live tests on web pages where the line item should deliver to verify that the correct ad tag calls are being made.