To verify a digital ad invoice, match each line against the ad platform's own data for the same account, campaigns and dates: the media spend, and the units you bought on, whether impressions, clicks or views. Then separate the gaps that have a normal explanation, such as fees, taxes and time zones, from the ones that need a question.
The invoice says 40 lakh impressions for the month's digital campaigns. The amount looks about right and the purchase order has room for it. But you don't have a login to the ad account, and the report attached to the invoice comes from the same party asking to be paid.
That's the odd thing about digital. For TV, there's a record of what aired. For outdoor, there's a geo-tagged photo from the site. For digital, an independent record exists too, and it's more detailed than either: the platform's own data, campaign by campaign and day by day. The problem is that finance rarely sees it first-hand. This guide shows what to check on a digital ad invoice, which differences are normal, and what platform data can't prove.
Why are digital ad invoices so hard to check?
Because one invoice usually rolls many campaigns, accounts and dates into a few totals, and the detailed record sits in an ad account that finance can't open.
A single digital invoice can cover a month of activity across several brands, each with its own purchase order. The invoice shows totals; the platform shows campaigns. Joining the two means knowing which campaign belongs to which PO line, and campaign names rarely say. So someone rebuilds the mapping in a spreadsheet every month, which is why digital invoices are often the ones finance teams find hardest to pass.
Timing adds to it. Invoices from smaller platforms and publishers often arrive late, after the month has been provisioned or the purchase order has been closed. By then, nobody wants to reopen the question of what was delivered, so the invoice is passed on the strength of the PO.
What should you check on a digital ad invoice?
Six things, and each one has a matching field in the platform's data or the purchase order.

1. The billing period. Check it against the dates the campaigns actually ran, in the ad account's own time zone. Spend near midnight can land on a different day depending on the time zone, which moves it across the month-end.
2. The accounts and campaigns. Every campaign on the invoice should sit in an ad account your company owns or can see, and map to a line on a purchase order. A campaign you can't find, or one that belongs to another brand's budget, is the first thing to query.
3. The media spend. Compare the invoice's media cost with the spend the platform reports for those campaigns and dates, before fees and taxes. This is the number that should be closest.
4. The units billed. You should be billed on what you bought: impressions if you bought on cost per thousand impressions, clicks if you bought per click, views if you bought per view. The units on the invoice shouldn't be more than the platform reports as delivered, and they should be delivered units, not planned ones.
5. Fees and commission. Any fee or commission should appear as its own line, at the rate agreed in the purchase order. A fee folded into the media cost makes the media line impossible to check against the platform.
6. Tax and invoice details. GST, the e-invoice reference (IRN), the PO number and the vendor's details. These are the same checks you run on any invoice, and our guide to three-way matching for marketing invoices covers how they fit with proof of work.
Why doesn't the invoice match the Google Ads or Meta dashboard?
Small gaps are normal and usually have a known cause. The gaps worth a question are about what was billed, not how it was rounded.
What you see | Usual cause | What to do |
|---|---|---|
Spend differs slightly around the start or end of the month | The ad account runs on a different time zone from your calendar month | Compare in the account's time zone; accept within the agreed tolerance |
The invoice is higher than the platform's spend | Fees, commission and taxes are added on top of media | Check each one is a separate line, at the agreed rate |
A credit or adjustment appears on a later invoice | The platform credited invalid clicks or impressions after the month closed | Check the credit is passed through to you in full |
The rupee total differs from the platform figure | The account is billed in another currency and converted on a different date | Check which exchange rate and date were used |
A campaign on the invoice isn't on any purchase order | Activity added mid-month, or spend that belongs to another brand | Hold that line until a PO covers it |
More units billed than the platform delivered | Billing on the planned quantity, not the delivered one | Pay for what was delivered; ask for a credit note for the rest |
The same campaign and dates appear on two invoices | Duplicate billing, across two invoices or two vendors | Hold the duplicate |
Delivery falls outside the campaign's planned dates | The campaign ran longer than the purchase order allows | Check whether the PO was extended before paying |
Agree the tolerance in advance and write it down. A small rounding gap on a large invoice shouldn't stop a payment, but nobody should be deciding what counts as small, invoice by invoice.
What can't platform data prove?
It proves what the platform delivered and charged. It doesn't prove that a real person saw the ad, that it appeared somewhere safe for the brand, or anything about spend outside the platforms you can see.
The platform is also the seller, so its count is the count you pay on. That makes it the accepted record for billing, but it isn't a third-party check. Whether an impression was actually viewable, whether some traffic was invalid beyond what the platform filtered, and whether the ad ran next to content the brand would avoid are all measured by independent ad verification, and only if it was set up as part of the buy. If it wasn't agreed before the campaign, it can't be added when the invoice arrives.
The other gap is coverage. Large platforms report delivery in a form you can export or connect to. Direct deals with publishers, smaller ad networks and some marketplace and quick-commerce ads often don't. For those, the publisher's report is the receipt, so ask for it in a fixed format, at campaign level and for the billed dates, not as a screenshot or a summary slide.
How do you make digital invoice checks routine?
Fix three things before the campaign runs: the reference that links each campaign to its purchase order, finance's access to the platform data, and the basis you'll pay on.
Carry the PO reference into the campaign. Put the PO or activity ID in the campaign name, or in a field the platform reports. Where one reference runs from brief to payment, matching is quick. Where it doesn't, the mapping is rebuilt by hand every month.
Read delivery from the platform, not from the invoice. That can be read-only access to the ad accounts, a monthly export straight from the platform, or a direct connection. What matters is that the delivery data doesn't pass through the party sending the invoice.
Write the billing basis into the purchase order. Delivered, not planned, units; the fee rate; the currency and exchange-rate date; how credits for invalid activity are passed on; and the tolerance.
Provision for what was delivered, not what was invoiced. Delivery is visible daily in the platform, so a late invoice is no reason for a late provision. Our guide to month-end marketing provisions shows how.
For digital ads, the independent record already exists. Finance just has to read it from the platform, not from the invoice.
See how Brandintellé checks digital delivery against what was billed.




