Events Manager showed a 71% deduplication rate on a delivered paid media audit. That number sounds like a rounding error until you do the math: nearly a third of Meta's reported purchases for part of the catalog were being counted twice, once from the browser pixel and once from a server event with no shared event ID to merge them. Reported ROAS on that account was inflated by roughly a third. Nobody had touched a budget slider yet, and the numbers were already lying.
That is the case for a PPC audit checklist that looks across platforms instead of grading one account at a time. A Google Ads-only review would never have caught it, because the duplicate lived in the handoff between Meta's pixel and its Conversions API, not inside any single platform's settings.
Here is the checklist we work through on a paid media audit, in the order the findings tend to matter across Meta and Google together.
Layer one: does each platform's conversion count survive a duplication check
Start with the number every other decision depends on: how many purchases each platform actually recorded, and whether that count is real.
On Meta, this means checking the Events Manager deduplication rate for browser pixel events matched against server-side Conversions API events. Meta's own documentation on deduplicating pixel and server events is explicit that a shared event ID is required for the two to merge correctly. Skip it, or roll it out inconsistently across a catalog, and Meta counts a portion of purchases twice while reporting a dedup rate that looks clean unless you go check it directly.
On Google, this means reconciling Google Ads conversion counts against GA4 and, ultimately, against the store's own order export. Google's documentation on conversion count discrepancies walks through why click-date attribution and network-level processing routinely produce a gap between what Google Ads reports and what actually happened. A small, explainable gap is normal. An unexplained one, or a purchase count that has never been checked against real orders, is a finding.
If you want the deeper technical walkthrough for fixing the Meta side of this specifically, our Meta Conversions API setup guide covers the deduplication step most implementation guides skip entirely.
Layer two: are audiences and exclusions still built on something real
The second layer checks whether the targeting logic on top of those conversions still points at a live event.
A recurring finding: a purchaser-exclusion audience that silently stopped updating the moment the underlying purchase event got renamed during a tracking migration. Retargeting kept running against the old, frozen audience, so ad frequency against a segment with roughly 22% recent-buyer overlap climbed past nine impressions in a week, burning budget on people who had already bought.
That failure mode is invisible from inside Ads Manager's targeting summary, which will happily show an audience name and a size estimate with no warning that the audience stopped refreshing weeks ago. The only way to catch it is to check the audience's last-updated timestamp against the event it claims to be built on.
Layer three: is the feed actually approved, not just uploaded
Shopping and Performance Max campaigns spend against whatever the Merchant Center feed says is available, and a feed does not have to be broken to quietly cost money. It only has to be partially disapproved.
One delivered audit found roughly 11% of a catalog silently disapproved after a currency app update introduced a mismatch between the listed price and the landing page price, plus a handful of missing GTINs on individual product lines. Google Merchant Center's own guidance on missing or incorrect GTINs confirms this is one of the most common disapproval causes, and it is easy to miss because Merchant Center reports the disapproval at the product level, not as an account-wide alert anyone is likely to check weekly. The products affected in this case included some of the account's best sellers, which is the pattern worth specifically checking for: disapprovals rarely hit evenly, and they tend to land on exactly the SKUs a campaign was depending on.
Layer four: does the ROAS each platform reports survive a blended check
The last layer is the one that changes budget decisions. Pull platform-reported ROAS from both Meta and Google for a fixed window, then compare it against a blended figure: total revenue divided by total ad spend across everything, calculated from the store's own numbers rather than either platform's dashboard.
A real example from a delivered audit: Meta reported 4.2x ROAS and Google reported 3.8x for the same period, both of which read as strong performance in isolation. Blended revenue against blended spend for the same window came out to 1.9x. Neither platform was technically wrong. Each was crediting itself for orders the other platform was also claiming, and stacked together they described a business that did not exist.
This is also where our related Google Ads audit checklist goes deeper on the single-platform version of this layer, including the Performance Max brand-contamination pattern that inflates Google's side of the same problem specifically.
What a PPC audit should hand you
A paid media audit worth paying for does not stop at a list of settings to change. At minimum, expect:
- A deduplication check on Meta's server and browser events, with the current dedup rate stated as a number, not assumed clean.
- A reconciliation of Google Ads and GA4 conversion counts against real store orders for a fixed window.
- An audience and exclusion review confirming every audience still points at a live, current event.
- A Merchant Center feed check for disapprovals, with the percentage of the catalog affected and which SKUs are hit.
- A blended ROAS figure calculated from real revenue and spend, set next to platform-reported numbers rather than replacing them.
If a proposal skips straight to "we will restructure your campaigns," ask to see the reconciliation first. Restructuring an account before verifying the numbers it is optimizing against just moves the same duplicate conversions and frozen audiences into a new campaign structure.
Deciding whether you need one now
Not every account needs a full audit this quarter. Use this as the decision frame: if you are about to increase budget meaningfully, if a tracking or checkout change happened in the last month, or if Meta and Google are both reporting ROAS that looks too good relative to the revenue actually landing in the bank, run the audit before you act on the numbers rather than after. If none of those are true and the last audit was recent, the checklist above is worth revisiting as a self-check rather than commissioning new work.
Anlyto's paid media audit runs this exact cross-platform checklist as a fixed-scope engagement, evidence and ranked fix list included, and it is priced alongside our other fixed-price audits with the fee credited toward implementation if you move forward within 60 days.

