Fixing Duplicate Purchase Events in WooCommerce with GTM
Fixing Duplicate Purchase Events in WooCommerce

๐Introduction
A WooCommerce store noticed their GA4 revenue reports were nearly double their actual sales figures. Investigation revealed duplicate purchase events firing on every order confirmation.
โThe Problem
The thank-you page was triggering the GA4 purchase event twice โ once from a WooCommerce plugin and again from a custom GTM trigger โ inflating reported revenue by an average of 95% and making ROI calculations for all paid channels completely unreliable.
๐Identifying the Causes
Three simultaneous tracking implementations were found: (1) WooCommerce Google Site Kit plugin, (2) A legacy gtag.js snippet hardcoded in the theme footer, and (3) A GTM tag firing on the order confirmation page. All three were firing the purchase event independently.
โ ๏ธConsequences for the Business
Marketing decisions were being made on inflated ROAS data. Google Ads smart bidding was optimizing toward phantom conversions. The client believed their email retargeting was generating $80K/month when actual revenue was closer to $42K.
โ Solution
We removed the Google Site Kit plugin, deleted the hardcoded gtag snippet from the theme, and kept only the GTM implementation. Added a purchase deduplication check using transaction ID stored in dataLayer and a session storage flag to prevent re-fires on page refresh.
๐Results
Duplicate events were eliminated entirely. Reported ROAS dropped from a misleading 8.2x to an accurate 4.1x. Google Ads smart bidding was reset and re-trained on clean data. Actual ROAS improved to 5.3x within 8 weeks as smart bidding optimized correctly.
๐Conclusion
Duplicate purchase events are one of the most damaging tracking issues in ecommerce. Regular audits using GA4 DebugView and GTM Preview mode are essential to catch them early.
๐กKey Takeaways
Never run multiple GA4 implementations simultaneously. Always implement transaction ID deduplication. Regularly audit your tag implementations with GTM Preview + GA4 DebugView.