Discrepancy Investigation template thumbnail

AD OPERATIONS TEMPLATE

Discrepancy Investigation Template

Structured investigation of impression, click, or revenue discrepancies between any two ad tech systems (ad server vs. third-party, exchange vs. DSP, SSP vs. buyer).

Use this template

What's inside

Field

Details

Campaign

Campaign name

Advertiser

IO Number

IO-XXXX

Discrepancy Type

Impressions

System A

Your system (ad server, SSP, exchange, publisher)

System B

Their system (third-party, DSP, buyer, agency, exchange)

Investigated By

Your name

Status

Investigating

The Numbers

Metric

System A

System B

Difference

Diff %

Detail

System A

System B

Impressions

Clicks

Conversions

Revenue / Spend

Detail

Our Side

Their Side

Reporting period

Counting method

Ad server impression = served / rendered / viewable?

Data source

GAM, Xandr, Freewheel — report name

DCM, Sizmek, MOAT — report name

Filters applied

Any geo, device, or line item filters

Investigation Checklist

Work through these in order. Most discrepancies are caused by the first three items. Stop when you find the cause.

1. Date Range & Timezone

  • Confirm both reports cover the exact same dates

  • Confirm timezone alignment (UTC vs. Eastern vs. Pacific matters — a midnight boundary difference can shift a day's worth of impressions)

  • Check for partial-day data — did the campaign start or end mid-day?

2. Counting Methodology

  • Our ad server counts on serve vs. render vs. viewable — which one?

  • Their system counts on serve vs. render vs. viewable — which one?

  • If different: the gap IS the methodology difference, not a bug. Document and close.

  • Check if either system deduplicates (e.g., one user = one impression per session vs. per request)

3. Pixel / Tag Implementation

  • Is the third-party pixel firing on every impression? Check with browser dev tools

  • Is the pixel inside the ad creative or on the page? (Creative-level fires more reliably)

  • Is the pixel blocked by CORS, iFrame sandboxing, or Content Security Policy?

  • Is the pixel loaded synchronously or asynchronously? Async can miss fast-scrolling users

  • Check for cached pages — cached impressions fire our ad server but may not fire their pixel

4. Ad Blocking & Filtration

  • Ad blockers block third-party pixels but may not block our first-party ad server

  • IVT (Invalid Traffic) filtration — does one system filter bots more aggressively?

  • Check GIVT and SIVT rates in your verification vendor dashboard

5. Technical Issues

  • Latency: does the page unload before the pixel fires? (Common on mobile)

  • JavaScript errors: check browser console for errors near the ad tag

  • HTTPS/HTTP mismatch: mixed content blocking can silently drop pixels

  • Redirect chain: is the click tracker adding too many hops, causing timeouts?

Findings

What caused the discrepancy? Be specific — this is what you'll send to the buyer.

Finding

Details

Root cause

What specifically caused the number difference

Explainable gap

The portion of the discrepancy explained by this cause

Unexplained gap

Any remaining discrepancy after the root cause is accounted for

Within IAB tolerance?

IAB guidelines allow up to 10% discrepancy for display, 5% for video

Resolution

Dimension

Details

Agreed action

Bill on publisher numbers / bill on third-party numbers / split the difference / makegood

Credit / adjustment

$X,XXX credit applied (if any)

Makegood

X,XXX additional impressions to be delivered by [date]

Prevention

What we'll change to reduce this discrepancy in the future

Prevention

What should change so this doesn't happen again (or so it's caught earlier)?

  • Fix or action to prevent recurrence

  • Monitoring to add: automated discrepancy alert if gap > X% after day 2

  • Process change: reconcile third-party numbers at day 3 of every campaign, not end of flight

Communication Log

Track every touchpoint with the buyer. If this goes to finance or legal, the paper trail matters.

Date

What

Outcome

Name — buyer

Reported discrepancy

Investigation started

You → buyer

Shared findings

Other Ad Ops templates