Complete Guide to Meta Pixel Tracking Issues
Why Meta Pixel fires twice, shows wrong ROAS, and feeds bad data to your ads—and exactly how to fix it.
Common Meta Pixel Problems
- Meta showing 2x or 3x the conversions you actually have
- ROAS numbers way higher or lower than Shopify revenue
- Purchase events showing but with wrong values
- Leads not appearing in Ads Manager
- Meta Pixel Helper showing warnings or errors
- AddToCart or ViewContent firing multiple times
Why Meta Pixel Fires Twice
Duplicate Meta Pixel events are one of the most common tracking issues, and they completely destroy your ad performance data. When your pixel fires twice for every action, Meta thinks you're getting 2x the conversions you actually are. This inflates your ROAS, feeds bad data to the algorithm, and causes you to scale campaigns that aren't actually profitable.
The root cause is always multiple pixel installations. You typically have:
- Pixel installed directly in your theme (Shopify theme.liquid file or WooCommerce header.php) and another pixel tag in GTM.
- Two different Meta Pixel tags in GTM both firing on the same trigger.
- A Shopify app or third-party integration firing the pixel alongside your manual GTM setup.
- Old pixel code never removed after migrating to a new tracking setup.
How to Fix Duplicate Meta Pixel Events
Step 1: Find All Pixel Installations
Open your website and install the Meta Pixel Helper Chrome extension. Navigate through your site (homepage → product page → add to cart → checkout → purchase). Watch the Pixel Helper for each page.
If you see the same event listed twice (e.g., "PageView - 2 events" or "Purchase - 2 events"), you have duplicate pixels. The Pixel Helper will show you which Pixel IDs are active. If you see multiple IDs or the same ID firing twice, you've confirmed the problem.
Step 2: Check Your Theme Code
For Shopify: Go to Online Store → Themes → Actions → Edit Code. Search your theme.liquid file for "facebook" or "fbq". If you find Meta Pixel code hardcoded in your theme, that's one installation.
For WooCommerce/WordPress: Check your theme's header.php, footer.php, and any custom code snippets you've added. Look for fbq('init') or Meta Pixel base code.
Step 3: Check GTM
Open GTM and search for all tags that reference "Meta" or "Facebook Pixel". Check if you have multiple tags firing the same events. Common mistake: having both a "Meta Pixel Base Code" tag and separate event tags (ViewContent, AddToCart, Purchase) all firing the same pixel ID.
Step 4: Check Third-Party Apps
Shopify stores often have apps that install their own pixel tracking. Check your app list for any marketing, analytics, or conversion tracking apps. Disable them temporarily and test if the duplicate events stop.
Step 5: Remove Duplicates
Best practice: Keep one clean Meta Pixel installation through GTM. Remove all other installations—delete pixel code from your theme, disable conflicting apps, and consolidate duplicate GTM tags. Test thoroughly with Meta Pixel Helper after each change to confirm events fire once and only once.
Why ROAS Doesn't Match Shopify
Your Meta Ads ROAS shows one number, but your actual Shopify revenue is totally different. This happens for three main reasons:
- Duplicate conversions: Pixel firing twice makes Meta think you got 2x the sales, inflating ROAS.
- Wrong value parameter: Your pixel sends the wrong amount (e.g., subtotal instead of order total, or a hardcoded test value like "10").
- Wrong currency: Pixel sends USD but your store uses GBP, causing massive discrepancies.
To fix it: Ensure your Meta Pixel purchase event sends the exact order total (including tax and shipping) with the correct currency code. Use GTM variables to pull this dynamically from your data layer, never hardcode values.
Why Leads Don't Show in Ads Manager
If you're running lead generation campaigns but conversions don't appear in Meta Ads Manager, your Lead event isn't firing correctly. Most stores have PageView, ViewContent, and AddToCart working fine but never set up the Lead event properly.
To fix it: Create a GTM trigger that fires when someone submits your lead form. Add a Meta Pixel tag with event name "Lead" and configure it to fire on that trigger. Validate with Meta Pixel Helper to confirm the Lead event fires when someone submits the form.