A Meta audit has two halves: the ads account, and the data the account learns from. Most checklists start with creative and audiences. Start with the data instead, because every number you use to judge a campaign comes from the Pixel and the Conversions API, and if those are wrong the rest of the audit is measured on bad data.
This checklist runs in that order: the signal on the site, the click that brings people there, the account settings, and a final reconciliation with the backend. Each step says what to check and where to look.

What a Meta audit covers
A Meta audit is a structured review of four layers, each checked against the next.
| Layer | What you check | Where you look |
|---|---|---|
| Signal | Pixel and CAPI events fire once, with value, currency, and customer data | Events Manager, Test Events, and the site’s network requests |
| Click | The ad click reaches the site with fbclid and UTMs intact | Ad URLs, redirects, landing pages |
| Account | Attribution setting, campaign structure, audiences, and creative | Ads Manager |
| Outcome | Meta’s conversions reconcile with orders, leads, or GA4 | Backend, CRM, and GA4 |

If you only have an hour, spend it on the first layer. A creative that "stopped working" is often a purchase event that stopped firing.
Step 1: audit the signal
Meta’s delivery system learns from the conversions you send. A missing purchase, a duplicate event or a wrong value teaches the campaign the wrong lesson, and the budget follows. Check these in Events Manager and on the site itself:
- Every key event fires. Walk the funnel:
PageView,ViewContent,AddToCart,InitiateCheckout,PurchaseorLead. Use Test Events, or the Meta Pixel Helper for the browser side. A purchase that fires only when the thank-you page is reloaded is a classic miss. - Each conversion is counted once. If you run the Pixel and the Conversions API together, both copies of an event need the same
event_nameand the sameevent_id. Meta’s deduplication documentation explains the rule: matching pairs that arrive within 48 hours are merged. Different IDs, or an ID only on one side, and the purchase counts twice. The failure patterns are in this post on CAPI deduplication issues. - Value and currency are right. Compare the
valueon a test order with the order total. Check that Meta, Google Ads, and GA4 receive tax and shipping the same way, and thatcurrencyis set on every purchase. - Customer data is sent and hashed. Email, phone,
external_id,fbp, andfbcraise match rates. Meta scores Event Match Quality from 1 to 10 per event, and Meta’s setup verification page recommends aiming for 6 or higher. Our guide to Event Match Quality covers what moves the score. - Server events cover the browser events. Events Manager reports how many Pixel events the Conversions API also sends with a shared deduplication key. Low coverage means ad blockers and browser limits still decide what Meta sees.
- Consent is respected. Events should follow the visitor’s choice in your consent banner. Firing the Pixel before consent is a compliance problem, and blocking the server event after consent is granted is a measurement problem.
Two deeper checklists cover this layer in detail: the Meta Pixel audit for the browser side and the Meta Conversions API audit for the server side.
Step 2: audit the click
When parameters get lost between the ad and the landing page, Meta still counts the click, but your analytics files the visit as direct or referral and the CAPI event loses its fbc value.
- Open every active ad URL. Follow it through any redirect and confirm
fbclidand the UTMs arrive on the final page. Link shorteners, consent walls and country redirects are the usual culprits. - Check UTM naming.
utm_source=facebook,fb,Facebookandmetaare four sources in GA4. Agree on one convention and check new campaigns against it. - Check the landing pages. A page that returns a 404 or a slow redirect wastes the click before any event can fire.
Step 3: audit the account
Only now do the account findings mean something. A campaign that looks unprofitable on a broken signal may be fine, and the reverse.
- Attribution windows match. Note which window each ad set uses. On January 12, 2026, Meta’s Ads Insights API stopped returning the 7-day and 28-day view windows, as Meta’s developer blog announced, so reports built on that API lost those windows overnight. Compare like with like before you call a drop.
- Ad sets don’t compete for the same audience. Count campaigns and ad sets chasing the same audience. Overlap splits the learning and raises costs. Check that each ad set gets enough conversions to leave the learning phase.
- Each ad set optimizes for the validated event. The ad set should optimize for the event you actually value, and that event should be the one you validated in Step 1.
- Exclusions and audiences are current. Existing customers excluded from prospecting, website audiences still populating, lookalikes built from a clean source list.
- Creative is judged on real purchases. Frequency, falling click-through rate and rising cost per result on the same ads point to fatigue. Judge it on cost per real purchase, not on platform-reported ROAS alone.
- Spend paces to plan. Spend against plan per campaign, and campaigns that spend with no traffic reaching the site.
Step 4: reconcile with the backend
The last check closes the loop. Pull purchases or leads from Meta, GA4 and your order system or CRM for the same date range.
Some gap is normal. Meta counts view-through conversions, credits them to the day of the ad interaction, and models conversions it cannot observe. GA4 does none of that, and it shares credit for each purchase with other channels; Meta doesn’t. If you need the full list of reasons, see why Meta Ads and GA4 conversions don’t match.
What isn’t normal: Meta reporting more purchases than you have orders, a gap that jumps from one week to the next, or a purchase value that differs from the order total. Those go back to Step 1.
Keeping it true after the audit
An audit describes one day. The next release can drop the event_id, change the value, or remove the Pixel from the checkout, and nothing in Ads Manager will say so. The campaign keeps bidding on the broken signal.
Trackingplan watches that signal on real traffic. It checks that the same purchase is counted once, with the same value, across the Meta Pixel, the Conversions API, GA4, and the other ad platforms. It watches click IDs, match-rate signals, and UTMs, and the pixel checker shows which pixels and CAPI events fire on real traffic.
It also reads spend, campaigns, and platform-reported conversions from Meta Ads and ten other ad networks. That is how it flags clicks that arrive without UTMs, conversions Meta counts that the site never sent, and campaigns that spend without traffic.
Gaps come quantified in money and go to whoever owns the tag. Scheduled checks run daily or weekly. Trackingplan doesn’t bid or change campaigns; it checks the data the bidding learns from.
If you are comparing tools for the account side, this review of Facebook ads audit tools lists the options.
FAQ
What is a Meta audit?
A Meta audit is a structured review of a Meta Ads account and the conversion data it learns from. It checks the Pixel and the Conversions API, the ad click as it reaches the site, the account settings and structure, and whether Meta’s conversions reconcile with the orders or leads the business booked.
How often should I audit a Meta Ads account?
Run a full audit when you take over an account, before a large budget change, and after a site migration or a major release. Between audits, check the conversion signal continuously or at least weekly, because a tag can break on any deploy.
What Event Match Quality score is good enough?
Meta rates Event Match Quality from 1 to 10 for each event and recommends aiming for 6 or higher. Purchase and lead events matter most, because those are the events bidding optimizes on.
Why does Meta report more conversions than GA4?
Part of the gap is expected: Meta counts view-through conversions, credits the day of the click or view, and models conversions it cannot observe. GA4 does none of that, and it shares credit for each purchase with other channels. A gap that changes suddenly, or a purchase count above your real orders, points to duplicates or a broken tag.