VTS BLOG

Why Add to Cart Fires Twice and How to Fix Duplicate Meta Pixel Events

If your Add to Cart event shows up twice in Meta Events Manager for a single click, your numbers are wrong, and Meta optimizes on them. Duplicate events are one of the most common tracking problems on Shopify and WooCommerce stores, and they are easy to miss because the ads still run. This post shows how to confirm it, the usual causes, and how to fix them.

How to confirm an event fires twice

  1. Install a tag debugger such as the Meta Pixel Helper browser extension, and open your store in a fresh window.
  2. Add a product to the cart once. Count how many AddToCart events the extension lists.
  3. In Meta Events Manager, open Test Events and repeat the same action. Compare the count with what you saw in the browser.
  4. In Google Tag Manager, use Preview mode and check how many tags fire on the same event.

One action should produce one event. If you see two, or one event listed twice with the same parameters, you have a duplicate.

The usual causes

Cause What happens What you see
Plugin plus GTM A Meta or Facebook plugin sends events, and a GTM tag sends the same ones Two identical AddToCart or Purchase events per action
Theme plus plugin The theme ships its own pixel code and an app adds another Duplicate PageView on every page
Two containers An old GTM container or hard-coded snippet is still on the site Every tag in it fires twice
Trigger too broad A click trigger matches the button and its parent elements One click sends several events
Page reload The order confirmation page fires Purchase again on refresh Purchase counted more than once for one order
Browser plus server CAPI added with no shared event ID Meta sees the same event from two paths

How to fix it

  1. Choose one source for each event. Decide whether the plugin, the theme or GTM is responsible, and turn the others off for that event.
  2. Remove old code. Search the theme files, plugins and footer scripts for leftover pixel snippets and old container IDs.
  3. Narrow the trigger. Fire the tag from the specific button or data layer event, not from any click on a broad element.
  4. Fire Purchase once per order. Add a check so a refresh of the confirmation page does not send it again.
  5. Deduplicate server events. If you use the Conversions API, send the same event name and event ID from the browser and the server.

After each change, run the same test again and confirm one action gives one event.

Where an audit helps

Duplicates often sit next to other problems, like missing events or empty values, so it is worth checking everything at once. Our free tracking audit looks for missing, duplicate and misattributed events across GA4, Meta, Google Ads and TikTok on your store.

Share this article

LinkedIn
Facebook
Twitter
WhatsApp

Ready to fix your tracking?

Free tracking audit
100% FREE

Free Tracking Audit

Find broken tags, duplicate events and missing conversions on your site.

Get My Free Audit
Free AI automation consultation
100% FREE

Free AI Automation Consultation

See which support, lead and reporting tasks can be automated with AI.

Book Free Consultation