- Published
- Aug 15, 2026
- Updated
- Aug 23, 2026
- Reading time
- 19 min read
How to Verify a Digital Ad Campaign Actually Ran
A platform total does not prove every ad rendered correctly. Verify campaign delivery using tags, event logs, viewability, IVT, and reconciliation.
To verify that a digital ad campaign actually ran, build an evidence chain from the buying instruction to the delivery event: approved creative, live placement, ad response, render or playback signal, valid-traffic result, target match, and reconciled reporting. A platform impression total is one piece of evidence. It is not proof of every downstream step.
What does "the ad ran" mean?#
Teams use that phrase to mean several different things:
- the campaign was active and eligible to bid;
- the platform won auctions;
- an ad server returned a creative;
- the creative began to render or play;
- the ad met a viewability rule;
- the impression came from valid traffic;
- delivery matched the intended site, app, device, audience, and location; or
- the exposure contributed to a business outcome.
These are separate claims. Decide which one the stakeholder needs before collecting evidence.
A finance team checking an invoice may need valid, billable delivery. An ad-operations team debugging a tag needs the exact event path. A brand team may need in-target viewable reach. A performance team may care about qualified sessions and accepted orders. No single screenshot answers all four.
The six levels of campaign-delivery proof#
| Level | Claim | Useful evidence | What remains unproven |
|---|---|---|---|
| 1. Configured | The campaign was set up and active | Campaign export, creative approval, schedule, targeting | That the campaign won or delivered |
| 2. Served | An ad-serving system counted delivery | Ad-server logs, impression beacon, auction and response IDs | That the creative rendered on the device |
| 3. Rendered | The creative or video began to display | Client render signal, player event, supported device callback | That the ad was sufficiently visible |
| 4. Viewable | The event met a defined visibility rule | Viewability measurement and measurability status | That a person paid attention |
| 5. Valid and in target | The event passed agreed quality and targeting checks | IVT result, source, device, geo, app or domain evidence | That advertising caused an outcome |
| 6. Outcome-linked | A later action was matched or tested | Analytics, CRM, conversion API, experiment | Incrementality unless the design supports it |
Use the lowest level that proves the decision, but do not describe it as a stronger level. "Served" should not become "seen." "Viewable" should not become "remembered." "Attributed" should not become "caused."
Does an impression prove the creative appeared?#
Not always. It depends on when and where the impression is counted.
A server-initiated count can occur when the ad-serving system sends an ad response. A client-initiated count occurs closer to the user's device, often after the creative or player reaches a defined state. The MRC and IAB measurement framework favors measurement that occurs closer to the opportunity to see the ad. The MRC's viewable impression guidelines explain the distinction between served and viewable measurement.
Even a client event has limits. A browser can fire an event while the tab is in the background. A video beacon can be relayed through server-side ad insertion. A compromised client can falsify signals. Verification therefore combines event timing with environment, source, device, fraud, and consistency checks.
What should you collect before launch?#
Delivery verification is much easier when the campaign has a measurement contract. Record the following before spend starts.
Campaign identity
- advertiser, brand, campaign, line-item, insertion-order, and creative IDs;
- naming conventions and stable external IDs;
- start and end times in a stated time zone;
- budget, buying model, and billable event;
- publisher, exchange, app, site, channel, and placement expectations.
Delivery rules
- included and excluded geographies;
- audience and contextual requirements;
- device and environment rules;
- frequency caps and the identity unit used;
- brand-safety or suitability policy;
- invalid-traffic treatment;
- viewability or video-completion goals; and
- rules for unknown or unmeasurable events.
Measurement specification
- which event creates an impression;
- where every beacon or SDK callback fires;
- expected VAST events for video inventory;
- cache-busting and unique event identifiers;
- macros supplied by each partner;
- retry and deduplication behavior;
- event timestamp source;
- reporting latency and adjustment window; and
- retained evidence and privacy controls.
For video, the IAB Tech Lab's VAST specification defines a common way for ad servers, players, and measurement vendors to exchange creative and tracking information. A valid VAST document still does not guarantee that every host player fires every event correctly. Test the actual supply path.
How do you test the campaign before spending at scale?#
1. Validate the creative and destination
Confirm that the exact production creative loads, meets platform requirements, and sends users to the correct HTTPS destination. Follow all redirects and test campaign parameters.
For video, validate the VAST response, media files, duration, MIME types, tracking URLs, error handling, and any supported verification resources. For display, inspect asset requests, click destination, render behavior, and responsive sizes.
2. Test the measurement tag or SDK
Generate controlled events in a test campaign or placement. Confirm:
- one eligible event produces one expected impression record;
- retries do not create duplicates;
- cache-busting values change as required;
- campaign and creative IDs resolve correctly;
- timestamps and time zones are correct;
- consent and limited-measurement states behave as designed;
- the tag does not fire on preview, prefetch, or non-delivery states unless documented; and
- malformed or unauthorized requests are rejected.
3. Compare event order
The expected web flow may look like:
ad response -> creative render -> impression -> viewability checks -> click -> landing request
A video flow may add start, quartiles, complete, pause, mute, skip, and error events. Server-side ad insertion changes who fires the beacon and how closely it represents device playback. Read how SSAI changes CTV verification before using server beacons as device-level proof.
4. Run negative tests
A good verifier must also avoid counting events that should fail. Test:
- invalid signature or tracker claims;
- wrong campaign or creative ID;
- duplicate event ID;
- event outside the campaign window;
- incompatible channel payload;
- blocked or excluded geography;
- known test bot or data-center source under controlled conditions; and
- missing required fields.
The test result should explain whether the event was rejected, accepted but unmeasurable, accepted and later filtered, or accepted as valid delivery.
5. Start with a bounded pilot
Run a small set of known publishers, creatives, devices, and regions. Compare source-level results daily before adding inventory. A pilot is useful because it contains the number of variables. A campaign spread across dozens of exchanges on day one makes every discrepancy harder to isolate.
What should impression-level evidence contain?#
An investigation-ready event record typically needs:
- unique event ID;
- event type and event timestamp;
- receive timestamp;
- organization or tenant scope;
- campaign, line-item, creative, and tracker IDs;
- channel and environment;
- publisher, app, domain, source, and placement identifiers where supplied;
- device, user-agent, and network classifications;
- derived geo with precision and provider version;
- viewability or playback fields where supported;
- fraud class, score, and reason codes;
- target-validation result;
- deduplication status; and
- the version of configuration used to evaluate the event.
Do not expose raw identifiers more broadly than necessary. Tenant isolation, consent, access control, retention, and lawful processing remain part of measurement quality.
The event record should be append-only or auditable. If a later fraud model or partner adjustment changes the reported total, retain the original observation, the derived result version, and the reason for the change.
How do you reconcile publisher and advertiser reports?#
Reconciliation works best as a staged calculation.
Stage 1: align the window
Convert both reports to the same time zone and event-time window. Account for late-arriving events and the stated finalization delay.
Stage 2: align the scope
Use stable IDs to match campaign, creative, publisher, placement, channel, and device. Remove test traffic only under a shared rule.
Stage 3: align the event definition
Confirm whether each total is requests, served impressions, render events, valid impressions, or billable impressions. A difference caused by unlike definitions is not fixed by arithmetic.
Stage 4: calculate both directional discrepancies
If publisher count is the contractual baseline:
publisher discrepancy = (publisher count - verifier count) / publisher count x 100
Also show the absolute event difference. A 2 percent gap on 100 million impressions can matter more than a 25 percent gap on a small test line.
Stage 5: build a discrepancy waterfall
Start with the upstream total, then show categories that explain the difference:
- unmatched campaign or creative IDs;
- out-of-window events;
- duplicate events;
- malformed or unauthorized requests;
- unmeasurable environments;
- invalid traffic;
- out-of-target delivery;
- late events or partner adjustments; and
- unexplained residual.
Do not hide the residual. Track it as an operational metric and investigate when it changes.
Google's Campaign Manager 360 discrepancy guidance recommends collecting live or test URLs, tags, reports, and exact campaign details for material discrepancies. That evidence package is useful beyond Google because it allows both sides to reproduce the measurement path.
How do you verify viewability?#
Viewability requires a measurable environment and a defined threshold. The measurement system needs to determine how much of the ad was in the viewable area and for how long.
Report:
- total measured impressions;
- measurable impressions;
- viewable impressions;
- viewability rate using the declared denominator;
- reasons an impression was not measurable; and
- distribution by site, app, placement, device, creative size, and source.
Do not assume the same method works on every channel. Cross-origin iframes, native apps, CTV, SSAI, and closed platforms expose different signals. An honest report says "not measurable" when the necessary evidence is unavailable.
How do you verify invalid traffic?#
Invalid-traffic verification is a classification problem, not a single blocklist lookup. The MRC IVT standards distinguish general and sophisticated forms of invalid traffic and describe a wide range of signals and manipulations.
A useful campaign report provides:
- valid and invalid impression counts;
- classification and reason codes;
- the stage at which filtration occurred;
- model or rule version;
- source, placement, device, ASN, and time-series concentration;
- unknown or inconclusive status where appropriate; and
- whether invalid events were removed from billing, reach, and performance denominators.
No verifier detects every form of invalid traffic with perfect accuracy. Ask what the method can observe in each environment and what evidence supports each classification.
For definitions and examples, read GIVT and SIVT explained.
How do you verify delivery on CTV and OTT?#
CTV often lacks the same browser-based measurement available on the open web. Server-side ad insertion can move ad selection, stitching, and beaconing away from the device. Host apps and players vary in the callbacks they expose.
Use a layered CTV evidence model:
- VAST or ad-decision response;
- stitcher or server beacon;
- player or device callback where supported;
- playback start and quartile sequence;
- app, publisher, device, and source validation;
- fraud and anomaly analysis;
- household reach and frequency with disclosed identity rules; and
- independent recording or creative detection where the campaign and environment support it.
Do not claim that a server beacon proves a person watched the television. It is evidence of a specific system event. Its strength depends on implementation and corroboration.
See the CTV measurement challenges guide for channel-specific context.
When is third-party ad verification worth it?#
Independent verification is most valuable when at least one of these conditions applies:
- the campaign spans multiple publishers or buying platforms;
- invoices depend on impression volume or delivery quality;
- geo, audience, brand-safety, or frequency constraints are material;
- CTV, in-app, or programmatic supply is difficult to observe directly;
- platform and analytics totals diverge enough to affect budget decisions;
- the buyer needs event-level evidence for makegoods or partner escalation;
- regulated or sensitive campaigns require a documented audit trail; or
- internal teams need one stable quality taxonomy across channels.
It may be unnecessary for a small, low-risk test when the integration cost exceeds the decision value. Start with the risk, expected spend, and evidence gap.
Questions to ask a verification provider#
- Exactly when do you count an impression in each channel?
- Which environments are measurable, partially measurable, or unsupported?
- How do you authenticate tags and prevent replay or duplicate events?
- What GIVT and SIVT signals do you use, and which results are rules versus models?
- How are geo, device, app, domain, and source fields derived?
- What is the identity unit for reach and frequency?
- Can we export impression-level evidence and reason codes?
- How are late events, reprocessing, and model-version changes handled?
- What privacy, tenant-isolation, retention, and access controls apply?
- Which metrics or methods are independently audited or accredited?
- What does the provider explicitly not claim to measure?
- How will we reconcile the pilot against the ad server and publisher?
A provider should answer with definitions and evidence, not only dashboard screenshots.
How AdProof approaches campaign verification#
AdProof provides an independent measurement path for supported web, mobile, video, and VAST campaign events. Tracker claims and event shape are validated before accepted events enter a normalized model. Enrichment adds geo, device, ASN, and IP-intelligence fields; fraud, identity, frequency, and rollup stages derive quality and reporting views. Raw and derived evidence can then support source-level analysis and discrepancy reporting.
The product is intended to complement the buying platform, site analytics, and business systems. It does not make an unmeasurable environment measurable by assertion, guarantee that every impression was noticed, or convert attribution into causality.
If your next campaign needs a second delivery record, review AdProof's verification capabilities and request a bounded pilot. Define the decision, event contract, and reconciliation plan before launch so the result can be evaluated against agreed evidence.
Frequently asked questions#
How do I know if my Google, Meta, or programmatic ads are running?
Check campaign eligibility and platform delivery first, then confirm the expected impression or click events at the destination or independent measurement layer. For material spend, reconcile by campaign, creative, source, device, location, and time instead of relying on the account-level total.
Can I verify an ad with a screenshot?
A timestamped screenshot can prove that one creative appeared in one observed context. It cannot prove campaign-wide volume, valid traffic, reach, frequency, or targeting compliance. Use it as one artifact alongside event-level reporting.
What is the difference between ad verification and attribution?
Verification checks delivery and quality claims such as render, viewability, validity, source, and target match. Attribution assigns credit for later outcomes. A campaign can be correctly delivered but poorly attributed, or well attributed from low-quality delivery.
Does third-party verification eliminate reporting discrepancies?
No. It adds another independently defined observation. Its value is that the team can locate and explain discrepancies using event-level evidence instead of accepting or rejecting a platform total without context.
What should count as the billing source of truth?
The contract should specify the billable event, filtration rules, reporting window, adjustment process, and dispute evidence before launch. Independent verification can inform that decision, but it does not replace the commercial agreement.
Put the platform report next to the event log.
Start with one campaign. AdProof will measure the supported delivery path independently and show where the numbers diverge.