Stop making ad decisions on bad data. This 60 minute audit walks you through the exact steps to find and fix duplicate events, missing conversions, and misconfigured tags in GA4 and Facebook Pixel.
What you will be able to do by the end of this hour
Identify and kill duplicate events that inflate your reported ROAS. Confirm that every conversion you care about (purchase, lead, add to cart) is firing exactly once per action. Reconnect your Facebook Pixel and Conversions API so server side data fills the gaps left by iOS privacy changes. And you will never trust a dashboard number again without first running a quick sanity check.
What you need to start
- Access to your Google Analytics 4 property (Editor or higher role)
- Access to your Facebook Business Manager and Pixel (Admin role)
- The Facebook Pixel Helper browser extension (free, install from Chrome Web Store)
- A clean browser session (no ad blockers or VPN active on the test site)
- 15 minutes of focus for each platform, then 15 minutes for fixes and 15 minutes to set up your monthly checkup routine
You are not a developer and you do not need to write a single line of code. Every step here uses existing UI buttons and menus inside GA4, Facebook, and your browser.
1. The Hidden Cost of Broken Tracking
Tracking errors cost you money long before you ever see a problem. Duplicate events (a purchase counted twice) make your ROAS look higher than reality. Missing conversions (a lead form that never fires the pixel) make your ads look ineffective, so the algorithm stops delivering to the very people who convert. Both scenarios lead to bad optimization decisions that compound over weeks and drain budgets.
A client of ours was scaling a Facebook campaign based on a reported 5x ROAS. A quick audit revealed the pixel was firing a purchase event both on the order confirmation page and again when a separate “thank you” overlay loaded. Real ROAS was 2.3x. They had increased budget by 40% based on that phantom data. The fix took one tag adjustment in Google Tag Manager and saved them roughly $3,000 per month in wasted ad spend.
Even small tracking errors compound quickly. One extra purchase event per 10 real purchases inflates your ROAS by 10%. You scale into losses you cannot see until you check the bank account. Here is how you find these errors in the next 30 minutes.
2. Your 30-Minute GA4 Checkup
A thorough GA4 audit starts with the Realtime report. Open your GA4 property and click “Realtime” in the left menu. Now load your own website in a new tab. Watch the Realtime report for the event names that appear. If you see “page_view” followed by two “purchase” events after a single order, you have a duplicate event.
Next, check your conversion events. In GA4, go to Admin > Events and click the toggle for each event you consider a conversion (purchase, lead, signup, add to cart). Make sure the toggle is green only for the events you actually optimize for. A common mistake is marking every event as a conversion, which floods your attribution reports with noise. The target keyword here is conversion events verification: you want exactly one conversion event per meaningful action.
Now use DebugView to test event firing on your own device. Enable the Chrome extension “GA4 DebugView” or use Google Tag Manager’s Preview mode. With DebugView open in GA4 (under Admin > DebugView), browse your site and complete a conversion. Look for the event in DebugView. If you see duplicate event names within the same session, you are likely dealing with a tag that fires twice: once from Google Tag Manager and once from hardcoded GA4 code. Remove one source and test again.
For a deeper look at correct initial setup, read our detailed guide on the correct GA4 and Meta Pixel setup.
3. Your 30-Minute Facebook Pixel Checkup
A proper Facebook Pixel audit requires two tools: the Pixel Helper browser extension and the Events Manager inside Business Settings. Install Pixel Helper (it is free) and navigate to your website. The extension icon should show a count of pixel fires. Click the icon and check the breakdown.
Look for the following red flags in the Pixel Helper output:
- Duplicate event names, e.g., two “Purchase” events fired on the same page load.
- Missing parameters, A “Purchase” event should include a “value” and “currency.” If those fields are empty, Facebook cannot optimize for purchase value, only event count.
- Multiple pixel IDs, You should only see your own pixel ID. If you see a stray pixel from a third party plugin, remove it.
Next, open Facebook Events Manager (Business Settings > Data Sources > Your Pixel). Click “Diagnostics.” If you see warnings like “Event not received on page load” or “Conversions API missing,” you have deeper issues. The Conversions API (CAPI) is non-negotiable in 2026. Without it, browser restrictions (iOS, Firefox) block a significant portion of your data. In Events Manager, go to Settings and check if CAPI is connected. If not, you can set it up via a partner integration (like Google Tag Manager server side or Shopify).
While you are in Events Manager, click “Test Events.” Enter your website URL and complete a purchase. Verify that the event appears in the test listener with the correct parameters. If you see the event but it is missing a value or currency, you need to fix tracking issues in your tag configuration (GTM or the server side code).
To see how server side tracking can complement your pixel, check our case study on fixing Meta Pixel tracking errors with a real client.
4. The Top 5 Tracking Pitfalls and How to Fix Them
After auditing both platforms, you are likely facing one or more of these common issues. Here is how to fix tracking issues fast.
- Duplicate event firing from multiple tags or page loads. This happens when a pixel fires both from Google Tag Manager and from hardcoded code in the page, or when a dynamic overlay (popup, modal) triggers the event again. Solution: Remove the hardcoded code and rely solely on Google Tag Manager. Use the GTM Preview mode to check that the tag fires only once per trigger.
- Missing conversion parameters. Many teams set up a “Purchase” event but forget to include the purchase value and currency. Facebook cannot optimize for value without these fields. Solution: In GTM, edit your Facebook Pixel tag and ensure the “value” and “currency” variables are pulled from a data layer variable (the ecommerce data that your site pushes on the order confirmation page). Test in Preview mode again.
- Misconfigured cross domain tracking in GA4. If a user clicks from your main site to a checkout subdomain (e.g., checkout.yoursite.com), GA4 breaks the session and counts them as a new user. Solution: In GA4 Admin > Data Streams > your stream > Configure tag settings > Configure your domains. Add all domains and subdomains with the same root.
- Ad blockers or browser privacy settings interfering. This is unavoidable but measurable. Use server side tracking (Conversions API for Facebook, or GA4 server side tagging via GTM) to capture events from users whose browsers block the pixel. Solution: Set up a server side container in GTM and use it to send data directly from your server to Facebook and GA4. This bypasses the browser entirely.
- Mismatched attribution windows between platforms. Your Facebook ad manager might use a 7 day click attribution, while GA4 uses a 30 day default. This causes reported conversions to disagree. Solution: Pick one platform as your source of truth (preferably the ad platform you spend on) and align GA4’s attribution model to match. In GA4, go to Admin > Attribution Settings and set the lookback window to match your Facebook window.
For a systematic approach to maintaining clean data, read about the 5 numbers every founder should check weekly. It includes the tracking health metric.
5. Building a Tracking Audit Habit (Without the Headache)
The fix you just did will degrade over time. New plugins, updated themes, or other team members can accidentally break tags. You need a tracking maintenance routine that takes 15 minutes per month.
Create a simple checklist in your project management tool or Notion:
- Open GA4 Realtime and visit the site once. Any duplicate events? Yes/No.
- Open Facebook Pixel Helper on the homepage, product page, and checkout page. Any red warnings? Yes/No.
- Check Facebook Events Manager Diagnostics for missing CAPI connections. Yes/No.
- If any answer is “Yes”, investigate immediately using the steps above.
Use Google Tag Manager’s Preview mode for deeper checks when you push a new tag or change a variable. It shows you every tag that fires on a page and its data layer values. Once you get comfortable, you can even automate some checks using tools like Google Analytics alerts (e.g., drop in conversion count). But automation is not a replacement for a manual look. You have to eyeball the raw event names at least once a month.
If maintaining this yourself costs you more time than it saves (a real tradeoff for operators running multiple channels), consider outsourcing the monthly audit to someone who does this daily. A one hour monthly retain check is often cheaper than a single day of wasted ad spend.
Finally, make sure your tracking maintenance routine includes a quick check on your lead pipeline. Misattributed conversions can hide leaky funnels. Our guide on connecting ads to CRM shows you how to close that loop.
Where to Go Next
You just fixed the data pipeline feeding your most expensive acquisition decisions. That is a 60 minute investment that pays for itself every month. But tracking is only one link in the chain. Your funnel and site speed, your offers, and your follow up speed all decide whether those tracked leads convert into revenue. If you want to see exactly where your site and funnel are leaking leads, run a free AI audit that checks your landing pages, tracking, and automation readiness in minutes. See exactly where your site and funnel are leaking leads, in minutes.
Cover photo by Google DeepMind on Unsplash.
Lucas Oliveira