In-House Programmatic
How to audit your agency's programmatic buys: contract rights, data, benchmarks and a ten-step plan
Published · Last updated
Next scheduled review:
A programmatic audit checks three things: that your agency followed the contract, that every dollar billed can be traced to media and fees, and that the media bought was real, viewable and on suitable sites. You need audit rights, log-level data and invoices from each platform. The ANA's 2026 benchmarks give the yardstick.
Contents
Key facts
- Most of the dollar still does not reach consumers. The ANA's 2023 study of 21 advertisers' log-level data found that only 36 cents of every dollar entering a demand-side platform effectively reached the consumer (ANA, accessed 9 November 2026).
- The latest benchmark is better, but uneven. In Q2 2026 TrueAdSpend reached 45.1% and transaction costs 27.2%. Higher performers converted 52.3% of spend into quality impressions, lower performers 31.1% (Fiducia on ANA, 6 August 2026).
- Principal buying is growing faster than its governance. 58% of marketers used principal media in the past year, but only 57% have guidelines for it and 90% doubt it is in their interest (ANA, 19 March 2026).
- Non-disclosed rebates were found to be pervasive. The K2 Intelligence study for the ANA (October 2015 to May 2016) found rebates in cash, free media and service agreements not returned to advertisers. Principal mark-ups ran between 30 and 90 percent (ANA, media transparency recommendations).
- Platform logs expire. Google deletes Display & Video 360 Data Transfer files after 60 days, so an audit that starts late cannot recover them (Google, updated 14 October 2024).
- Audits now spill into public view. Publicis pulled The Trade Desk from its recommended DSP list after an internal audit; the two issued a joint statement resolving the dispute on 12 June 2026 (PPC Land, 13 June 2026).
Definition
Programmatic audit: an independent review of an advertiser's automated media buying that tests contract compliance and reconciles invoices against platform records down to the impression. It also measures how much of the spend bought media that met agreed quality standards.
It differs from a media pitch or a performance review. The question is not whether the agency is good, but whether the money went where the contract says it should. The answer feeds a decision: fix the contract, change how the agency buys, or bring some buying in-house. This page sits in the in-house programmatic hub.
What a programmatic audit checks
An audit has three layers. Each needs different evidence, and each can fail on its own. An agency can follow the contract to the letter and still buy poor media; it can buy excellent media through a path the contract never allowed.
3 of 3 rows
Contract compliance | Did the agency act as the contract says: as agent or principal, with disclosed fees and returned rebates? | Contract, statements of work, agency invoices, rebate statements | Procurement, legal |
Financial reconciliation | Does every billed dollar trace to a platform cost or an agreed fee? | DSP invoices and fee reports, log-level data, ad server logs | Finance, internal audit |
Media quality | Was the media real, measurable, viewable and on suitable sites? | Verification vendor logs, domain and app lists, made-for-advertising (MFA) lists | Programmatic lead, auditor |
Contract compliance
- Question
Did the agency act as the contract says: as agent or principal, with disclosed fees and returned rebates?
- Evidence
Contract, statements of work, agency invoices, rebate statements
- Typical owner
Procurement, legal
Financial reconciliation
- Question
Does every billed dollar trace to a platform cost or an agreed fee?
- Evidence
DSP invoices and fee reports, log-level data, ad server logs
- Typical owner
Finance, internal audit
Media quality
- Question
Was the media real, measurable, viewable and on suitable sites?
- Evidence
Verification vendor logs, domain and app lists, made-for-advertising (MFA) lists
- Typical owner
Programmatic lead, auditor
Table by AdSovereign, CC BY 4.0.
The layers interact. A fee that looks fair can hide poor media, because a low platform fee on invalid traffic is still money wasted. A strong quality score can hide a billing gap, because good impressions bought through an unapproved markup still cost too much. Report each layer separately before you combine them. The ANA benchmark combines the second and third layers into one number, TrueAdSpend. What it counts and leaves out is explained in working media vs non-working media.
Contract rights to confirm before you start
An audit can only test what the contract lets you see. Read the agreement first. The ANA's media agency contract template, written with the law firm Reed Smith, was first issued in July 2016 and updated on 11 July 2018 (ANA). Its clauses are a useful checklist even if your contract uses other wording.
7 of 7 rows
Audit rights | Advertiser may appoint an independent auditor, covering contract compliance and media value, at least annually | Audit limited to the agency's own reports, or to a single year |
Auditor NDA | A standard NDA attached to the contract as an exhibit | NDA negotiated only when the audit starts; the ANA calls it "a major battleground" |
Agent or principal | Each buy is labelled agent or principal; principal buys need written opt-in | No mention of principal buying, or blanket consent in the master agreement |
Rebates and incentives | All rebates, including "value pots" of free or discounted media, belong to the advertiser in proportion to its spend | Rebates defined narrowly, or barter excluded without a separate agreement |
Transaction data | Advertiser has access to transaction data, even if a vendor claims rights over it | Data access depends on each vendor's terms |
Platform seats | Advertiser owns the DSP seat, or has read access and log-level exports | Agency-owned seat with no export rights |
Fee schedule | Agency fees stated separately from media; platform and data fees passed through at cost | A single "media" line that bundles fees |
Audit rights
- What good looks like
Advertiser may appoint an independent auditor, covering contract compliance and media value, at least annually
- Red flag
Audit limited to the agency's own reports, or to a single year
Auditor NDA
- What good looks like
A standard NDA attached to the contract as an exhibit
- Red flag
NDA negotiated only when the audit starts; the ANA calls it "a major battleground"
Agent or principal
- What good looks like
Each buy is labelled agent or principal; principal buys need written opt-in
- Red flag
No mention of principal buying, or blanket consent in the master agreement
Rebates and incentives
- What good looks like
All rebates, including "value pots" of free or discounted media, belong to the advertiser in proportion to its spend
- Red flag
Rebates defined narrowly, or barter excluded without a separate agreement
Transaction data
- What good looks like
Advertiser has access to transaction data, even if a vendor claims rights over it
- Red flag
Data access depends on each vendor's terms
Platform seats
- What good looks like
Advertiser owns the DSP seat, or has read access and log-level exports
- Red flag
Agency-owned seat with no export rights
Fee schedule
- What good looks like
Agency fees stated separately from media; platform and data fees passed through at cost
- Red flag
A single "media" line that bundles fees
Table by AdSovereign, CC BY 4.0.
The template's definitions of value pots and transaction data, and the NDA recommendation, come from the ANA's summary of its 2018 update (ANA). Rebates and kickbacks as a contracting topic are covered in media agency rebates and kickbacks.
Advertisers in the UK and Europe often start from a different template. The ANA built its master media buying agreement with permission to use the framework of ISBA, the UK advertisers' association, and its counsel Fieldfisher (ANA). The two documents share the same core ideas: audit access, disclosure of non-transparent buying and ownership of rebates. Whichever you use, check that the clauses survive into the statements of work, where fees are often changed.
Agent or principal: why it changes the whole audit
When an agency buys as your agent, it passes media costs through and earns a disclosed fee. When it buys as principal, it buys inventory on its own account and resells it to you at a price it sets. The margin is not disclosed, and a standard audit cannot see it.
Principal buying is not banned or always bad. The ANA's 2026 study found that 76% of marketers cite reduced costs as its main benefit (ANA, 19 March 2026). But the same study found only 63% of contracts address it, and more than a third of marketers say theirs do not or are unsure. The ANA's chief executive put the test simply: marketers should always understand "whether their agency is acting as an agent or a principal in any media transaction".
For the audit, the consequence is practical. Agent buys can be reconciled line by line against platform costs. Principal buys can only be tested on price and quality, by comparing what you paid per quality impression with agent-based buys of similar media. Ask the agency to flag every principal buy before the audit starts. If it cannot, sample invoices for media vendors you know sell through principal arrangements, and ask how each line was bought.
Data to request, and from whom
Send the request early. Some platform data expires, and gathering it from several companies takes weeks. The table works as the core of a request letter.
8 of 8 rows
Agency invoices and statements of work | Agency | PDF and line-item export | Per contract | The billed side of the reconciliation |
DSP invoices and fee reports | Agency, or the DSP directly if you own the seat | Monthly invoices, fee breakdown by line item | Per contract | Media cost versus platform, data and other fees |
Log-level impression data | DSP (for example DV360 Data Transfer, The Trade Desk raw data feeds) | Hourly or daily files, CSV or Parquet | DV360 deletes files after 60 days (Google) | Impression-level cost, fees, domain, supply path |
Ad server logs | Ad server (for example Campaign Manager 360) | Data transfer files | Varies by platform | Independent count of impressions and clicks |
Verification logs | Verification vendor | Impression-level or daily by domain | Varies by vendor | Invalid traffic, viewability, measurability, suitability |
Data provider invoices | Agency or data provider | Invoices by segment | Per contract | Third-party data charges per impression |
Deal and supply path list | Agency, DSP | Deal IDs, supply-side platform (SSP) seats, curator fees | Not applicable | Hidden curation fees and duplicate paths |
Rebate and incentive statements | Agency | Annual statement by vendor | Per contract | Rebates owed back to you |
Agency invoices and statements of work
- From whom
Agency
- Format
PDF and line-item export
- Retention limit
Per contract
- Why you need it
The billed side of the reconciliation
DSP invoices and fee reports
- From whom
Agency, or the DSP directly if you own the seat
- Format
Monthly invoices, fee breakdown by line item
- Retention limit
Per contract
- Why you need it
Media cost versus platform, data and other fees
Log-level impression data
- From whom
DSP (for example DV360 Data Transfer, The Trade Desk raw data feeds)
- Format
Hourly or daily files, CSV or Parquet
- Retention limit
DV360 deletes files after 60 days (Google)
- Why you need it
Impression-level cost, fees, domain, supply path
Ad server logs
- From whom
Ad server (for example Campaign Manager 360)
- Format
Data transfer files
- Retention limit
Varies by platform
- Why you need it
Independent count of impressions and clicks
Verification logs
- From whom
Verification vendor
- Format
Impression-level or daily by domain
- Retention limit
Varies by vendor
- Why you need it
Invalid traffic, viewability, measurability, suitability
Data provider invoices
- From whom
Agency or data provider
- Format
Invoices by segment
- Retention limit
Per contract
- Why you need it
Third-party data charges per impression
Deal and supply path list
- From whom
Agency, DSP
- Format
Deal IDs, supply-side platform (SSP) seats, curator fees
- Retention limit
Not applicable
- Why you need it
Hidden curation fees and duplicate paths
Rebate and incentive statements
- From whom
Agency
- Format
Annual statement by vendor
- Retention limit
Per contract
- Why you need it
Rebates owed back to you
Table by AdSovereign, CC BY 4.0.
DSP fees deserve a careful look. The Trade Desk, for example, charges "a platform fee generally based on a percentage of our clients' total spend on our platform" (The Trade Desk, 10-K for 2025). Its revenue of $2,896.3 million on gross spend of $13,394.7 million implies an average take rate of 21.6% in 2025. Your contracted rate may differ; what each line means is set out in The Trade Desk fees explained. How log files arrive and how to store them is covered in log-level data.
Benchmarks: the ANA programmatic transparency series
Numbers mean little without a yardstick. The ANA's quarterly benchmark, run with TAG TrustNet and Fiducia, is the most complete public one. It is built from participants' log-level data matched across DSPs and verification vendors.
6 of 6 rows
TrueAdSpend (spend on quality impressions) | 45.1% of spend | Your own share after the audit | |
Transaction costs (DSP, data and SSP fees) | 27.2% of spend | Your total platform and data fees | Same |
Higher-performing advertisers | 52.3% converted into quality impressions | Target range for a well-run account | Same |
Lower-performing advertisers | 31.1% | Warning level | Same |
Supply concentration | Higher performers used about 19,000 fewer domains and apps | Your count of domains and apps | Same |
Connected TV share | 41.6% of tracked spend | Your CTV share, since CTV changes the mix | Same |
TrueAdSpend (spend on quality impressions)
- Q2 2026 reading
45.1% of spend
- What to compare it with
Your own share after the audit
Transaction costs (DSP, data and SSP fees)
- Q2 2026 reading
27.2% of spend
- What to compare it with
Your total platform and data fees
- Source
Same
Higher-performing advertisers
- Q2 2026 reading
52.3% converted into quality impressions
- What to compare it with
Target range for a well-run account
- Source
Same
Lower-performing advertisers
- Q2 2026 reading
31.1%
- What to compare it with
Warning level
- Source
Same
Supply concentration
- Q2 2026 reading
Higher performers used about 19,000 fewer domains and apps
- What to compare it with
Your count of domains and apps
- Source
Same
Connected TV share
- Q2 2026 reading
41.6% of tracked spend
- What to compare it with
Your CTV share, since CTV changes the mix
- Source
Same
Table by AdSovereign, CC BY 4.0.
The ANA had not published its Q3 2026 benchmark when this page was last updated; the ANA press room showed Q1 2026 as its latest programmatic release. The full series, quarter by quarter, is in the working media benchmark. The 2023 study adds a sense of scale: the ANA put the efficiency gains available to marketers at $22 billion (ANA).
Who should run the audit
You have three options, and the choice affects what the audit can find. An internal team knows the business and costs little, but agencies may refuse to share commercially sensitive data with a client's staff. An independent media auditor brings benchmarks from other clients and can sign the NDA the agency expects. A specialist programmatic auditor adds the data engineering needed to join log files across platforms.
Independence matters more than the brand of the auditor. The firm should not sell media, technology or consulting to the same agency, and its fee should not depend on the size of the money it claims to find. Ask who will see the raw data, where it will be stored and when it will be deleted. Those answers belong in the engagement letter.
Many advertisers mix the options. An external firm runs the first full audit and sets up the reconciliation model. The internal finance team then runs the monthly checks, and the external firm returns once a year. Whatever the mix, one person on the advertiser's side should own the audit and its follow-up, with authority to request data from every vendor.
Prepare your own records first
An audit goes faster when the advertiser can answer its own questions. Before the request letter goes out, collect four things.
- The signed contract and every amendment. Statements of work often change fees without changing the master agreement.
- Your own payment records. Finance can list every payment to the agency by month; that list is the anchor of the reconciliation.
- The approved media plans. Plans show what was agreed: channels, budgets, quality targets and any principal buys you approved.
- A list of platform logins. Note which DSP seats, ad server accounts and verification dashboards are in your name. Anything in the agency's name needs an export request.
If the seat is in your name, you can often pull fee reports and log-level files yourself. That shortens the audit by weeks, and it shows the agency that the data request is a formality rather than a fishing trip.
A ten-step audit plan
The plan below assumes a mid-sized advertiser and an external auditor. The weeks are a guide; large accounts take longer.
- Week 1: read the contract. List audit rights, the NDA, agent and principal terms, rebate definitions and data rights. Note every gap.
- Week 1: send the data request. Use the table above. Ask for log-level files first, because some expire after 60 days.
- Week 2: agree scope and period. Pick a period of three to six months, the platforms in scope and the quality standards (for example the ANA's TrueImpression definition).
- Weeks 2 to 3: sign the auditor NDA. Use the exhibit in your contract if there is one. Resist terms that let the agency approve the findings.
- Weeks 3 to 5: reconcile money. Match agency invoices to DSP invoices, then DSP invoices to log-level cost, month by month.
- Weeks 3 to 5: classify fees. Split media cost, DSP platform fees, data fees, ad serving, verification and agency fees. Flag anything unlabelled.
- Weeks 4 to 6: test quality. Join log-level data with verification logs. Measure invalid, unmeasurable, non-viewable and MFA spend.
- Weeks 4 to 6: review supply paths. Count domains, apps, SSPs and resellers; look for duplicate paths and curator fees. Buyers' supply path optimization work starts here.
- Week 6: check principal buys and rebates. Compare principal-bought media on cost per quality impression with similar agent-bought media; reconcile rebate statements.
- Weeks 7 to 8: report and decide. Present findings by layer, with the money at stake for each, and choose actions from the decision table below.
Worked example: reconciling one month
All numbers in this example are illustrative. An advertiser is billed $1,000,000 for October programmatic media. The contract says the agency acts as agent, passes platform costs through and charges a separate fee. The steps follow the audit plan: invoices first, then log-level data.
The DSP's invoices to the agency for October total $925,000. Log-level data shows $660,000 of media cost paid into auctions, $185,000 of DSP platform fees, $55,000 of data fees and $25,000 of verification and ad serving. Those four lines add up to the $925,000 invoiced, the same split of media, platform and data fees described in the ad tech tax explained. That leaves $75,000 between the agency's bill and the platform's invoice.
The audit asks the agency to explain the gap. Three answers are common: an undisclosed trading desk fee, a principal buy at a marked-up price, or a timing difference between months. Only the last is acceptable under this contract, and it should reverse the following month.
Then the quality layer. Verification logs show that $280,000 of the $660,000 media cost bought impressions that were valid, measurable, viewable and not on MFA sites. That is 28% of the $1,000,000 billed, below the ANA's lower-performer level of 31.1% in Q2 2026 (Fiducia on ANA). The audit has found two problems: an unexplained 7.5% gap, and media quality in the bottom group. To model the fee lines in your own account, use the ad tech fee calculator.
Red flags during an audit
8 of 8 rows
Log-level data "not available" | Without it, costs cannot be traced to impressions | Who owns the seat, and which export the platform offers |
One "media" line on invoices | Fees and margins are hidden inside media cost | A breakdown by cost type for each month |
Principal buys with no written opt-in | You cannot test the margin | A list of every principal buy and its approval |
Auditor NDA lets the agency edit findings | The audit is no longer independent | Use the contract's exhibit or a standard form |
Large share of spend on thousands of small domains | Waste and MFA risk rise with long tails | Domain and app list with spend and quality per site |
Data fees on every impression | Third-party data applied where it adds nothing | Which segments, on which line items, with which results |
Rebate statement shows zero | Volume incentives are common in media markets | Confirmation in writing, signed by an officer |
Gaps that do not reverse | Timing differences should net out within a quarter | Month-by-month reconciliation across the period |
Log-level data "not available"
- Why it matters
Without it, costs cannot be traced to impressions
- What to ask
Who owns the seat, and which export the platform offers
One "media" line on invoices
- Why it matters
Fees and margins are hidden inside media cost
- What to ask
A breakdown by cost type for each month
Principal buys with no written opt-in
- Why it matters
You cannot test the margin
- What to ask
A list of every principal buy and its approval
Auditor NDA lets the agency edit findings
- Why it matters
The audit is no longer independent
- What to ask
Use the contract's exhibit or a standard form
Large share of spend on thousands of small domains
- Why it matters
Waste and MFA risk rise with long tails
- What to ask
Domain and app list with spend and quality per site
Data fees on every impression
- Why it matters
Third-party data applied where it adds nothing
- What to ask
Which segments, on which line items, with which results
Rebate statement shows zero
- Why it matters
Volume incentives are common in media markets
- What to ask
Confirmation in writing, signed by an officer
Gaps that do not reverse
- Why it matters
Timing differences should net out within a quarter
- What to ask
Month-by-month reconciliation across the period
Table by AdSovereign, CC BY 4.0.
The ANA's media transparency recommendations, prepared with Ebiquity and FirmDecisions, say advertisers should insist on broad audit rights that cover both contract compliance and the media value delivered (ANA). If you meet resistance on any red flag, that recommendation is the reference point.
After the audit: a monitoring routine
A single audit fixes the past. A routine keeps the problems from returning. Build three habits from the audit's own tools.
Monthly: reconcile the agency invoice against platform invoices and log-level cost, using the model the audit built. Investigate any gap above an agreed threshold within the month, while the files still exist.
Quarterly: compare your quality share and fee share with the latest ANA benchmark, and review the domain and app list. A list that grows by thousands of sites a quarter is a sign that inclusion rules have slipped.
Yearly: run the full audit again, with the same scope, so results can be compared. Review the contract against the audit's findings and the latest ANA guidance before renewal.
Put the routine in the contract. An agency that knows invoices are reconciled every month has little reason to bundle fees, and one that knows the audit will repeat has every reason to fix what the last one found.
Decide: fix the contract, change the model or bring buying in-house
An audit ends with a decision, not a report. The table maps the most common findings to the action that addresses them. It is our framework, built from the steps above.
6 of 6 rows
Unexplained billing gaps | Recover the amount; add line-item invoicing to the contract | Re-tender the agency |
Undisclosed principal buys | Require written opt-in per buy and disclosure of margin | Move to agent-only buying |
No access to log-level data | Move the DSP seat into the advertiser's name | Take the seat in-house with agency support |
Fees far above benchmark | Renegotiate DSP and data fees; drop unused data | Change DSP or buying model |
Poor media quality | Tighten inclusion lists and supply paths; set quality targets in the contract | Build an in-house trading team for core channels |
Rebates not returned | Recover them; define value pots in the contract | Escalate to legal |
Unexplained billing gaps
- First action
Recover the amount; add line-item invoicing to the contract
- If it persists
Re-tender the agency
Undisclosed principal buys
- First action
Require written opt-in per buy and disclosure of margin
- If it persists
Move to agent-only buying
No access to log-level data
- First action
Move the DSP seat into the advertiser's name
- If it persists
Take the seat in-house with agency support
Fees far above benchmark
- First action
Renegotiate DSP and data fees; drop unused data
- If it persists
Change DSP or buying model
Poor media quality
- First action
Tighten inclusion lists and supply paths; set quality targets in the contract
- If it persists
Build an in-house trading team for core channels
Rebates not returned
- First action
Recover them; define value pots in the contract
- If it persists
Escalate to legal
Table by AdSovereign, CC BY 4.0.
Three outcomes are common. Some advertisers keep the agency and fix the contract. Some keep the agency for planning but own the platforms and data. Others build a trading team, often after a second audit shows the same problems. The three operating models, with roles and costs, are compared in the in-house programmatic operating model. How the fee chain adds up across every hop is in the ad tech tax explained.
FAQ
What is a programmatic audit?
What is principal-based buying?
How often should I audit my agency's programmatic buying?
What data should I ask my agency for?
What is a good working media percentage?
How this works on owned infrastructure
Every audit on this page starts with a request for data the advertiser does not hold: log files, fee reports, rebate statements. Steps 2 to 7 of the plan exist only because the records sit with the agency and its platforms, and some expire. AdSovereign provides DSP and data components that run in the advertiser's own cloud account or data centre, so bid, cost and fee records are written to the advertiser's warehouse as buying happens. An agency can still operate the seat, but reconciliation becomes a query the finance team runs each month, not an annual project. The TCO calculator estimates the fee lines in a current setup, and the security page describes how access is controlled.
Sources
- ANA, "Programmatic Media Supply Chain Transparency" hub, on the December 2023 study and benchmark (accessed 9 November 2026). https://ana.net/programmatic
- Fiducia, "ANA Programmatic Transparency Benchmark: Q2 2026 Working-Media Efficiency Reaches a Record 45%" (6 August 2026). https://www.fiducia.eco/post/ana-programmatic-transparency-benchmark-q2-2026-working-media-efficiency-reaches-a-record-45
- ANA, "ANA Study: Governance Around Principal Media Failing to Keep Pace With Industry Adoption" (19 March 2026). https://www.ana.net/content/show/id/pr-2026-03-principalmedia
- ANA, "Media Transparency: Prescriptions, Principles, and Processes for Marketers, Overview", including the updated media agency contract template (11 July 2018) and the K2 Intelligence study findings (accessed 9 November 2026). https://www.ana.net/content/show/id/industry-initiative-recommendations-overview
- ANA, Press Room (checked 9 November 2026 for the Q3 2026 benchmark). https://www.ana.net/content/show/id/pressroom
- Google for Developers, "Display & Video 360 and Campaign Manager 360 Data Transfer v2.0 overview" (last updated 14 October 2024). https://developers.google.com/bid-manager/dtv2/overview
- The Trade Desk, Inc., Form 10-K for fiscal year 2025 (filed 27 February 2026). https://www.sec.gov/Archives/edgar/data/1671933/000167193326000014/ttd-20251231.htm
- PPC Land, "Publicis and The Trade Desk make up as ad tech's trust layer cracks" (13 June 2026). https://ppc.land/publicis-and-the-trade-desk-make-up-as-ad-techs-trust-layer-cracks/