TikTok Event Deduplication for WooCommerce: Why Your Conversion Counts Are Inflated

January 24, 2026
by Cherry Rose

Your TikTok Ads Manager shows 47 purchases. WooCommerce shows 24 orders. If you’re running both the TikTok Pixel and Events API on your WooCommerce store, this 2x inflation isn’t a glitch—it’s the predictable result of missing event deduplication.

TikTok requires matching event_id parameters across both channels within a 48-hour window for proper deduplication. Without it, every single purchase fires twice: once from the browser-based Pixel, once from the server-side Events API. According to TikTok documentation, events arriving within 5 minutes are merged automatically, but events within 48 hours are only deduplicated if the event_id matches exactly.

Here’s what’s actually happening in your WooCommerce tracking—and why the simplest fix might be eliminating one channel entirely.

How TikTok Deduplication Actually Works

TikTok’s deduplication operates on two time windows with different behavior:

The 5-minute merge window: Events arriving within 5 minutes of each other are merged by TikTok regardless of event_id. This handles minor timing differences between Pixel and Events API without requiring perfect synchronization.

The 48-hour deduplication window: Events received within 48 hours are only deduplicated if their event_id parameters match exactly. No matching ID? TikTok counts them as separate conversions.

The critical requirement: event_id must be identical across both Pixel and Events API for the same conversion. This means the unique identifier must be generated at the moment of user action—before either tag fires—and passed to both implementations.

You may be interested in: TikTok Events API for WooCommerce: Why Your Pixel Alone Isn’t Enough

Why WooCommerce Stores Get This Wrong

The problem isn’t that deduplication is complicated—it’s that WooCommerce tracking implementations rarely coordinate properly.

Different plugins generate different IDs. One plugin installs the TikTok Pixel with its own event ID system. Another plugin or custom code sends Events API data with a separate ID format. They don’t communicate with each other, so the IDs never match.

Events fire at different times. The Pixel fires when JavaScript executes in the browser—dependent on page load speed, ad blockers, and whether the thank-you page even renders. The Events API fires from your server when the WooCommerce order completes. If these happen more than 5 minutes apart (common with slow page loads or server delays), the merge window expires.

No single source of truth exists. Without a centralized tracking system, there’s no mechanism to ensure both channels receive identical event_id values. Each operates independently, creating duplicate data.

Diagnosing Deduplication Problems in TikTok Events Manager

Open your TikTok Events Manager and check for these warning signs:

Total events significantly exceed actual transactions. If TikTok shows 200 purchase events but you had 105 orders, deduplication is failing.

Web and Server events don’t match. In Events Manager, filter by event source. If web events and server events show roughly equal numbers for the same event type, they’re likely counting the same conversions twice.

ROAS makes no sense. Doubled conversions mean doubled reported revenue. Your calculated ROAS will appear twice as good as reality, leading to overconfidence in underperforming campaigns.

Three Ways to Fix TikTok Deduplication

Option 1: Coordinate event_id Across Both Channels

If you need both Pixel and Events API (TikTok reports 19% more captured events and 15% CPA improvement with proper dual-channel setup), you must generate a single event_id at the moment of user action.

This means:

  • Generate the ID in your checkout flow—before the purchase completes
  • Store it where both implementations can access it—typically in a data layer or hidden field
  • Pass identical values to both Pixel and Events API—exact parameter name event_id in both

The technical implementation varies by your tracking setup, but the principle is non-negotiable: both channels must receive the same string.

Option 2: Go Server-Side Only

Here’s what TikTok’s documentation confirms: deduplication is NOT required when sending different events through different channels without overlap. If you run Events API only with no client-side Pixel, there’s nothing to deduplicate.

This approach offers several advantages:

  • Zero deduplication complexity—each event fires once, period
  • Ad blocker immunity—server-side events bypass browser blocking
  • Cleaner data—no timing conflicts, no ID coordination needed
  • Simpler debugging—problems are server-side only, not scattered across client and server

The tradeoff: you lose some real-time Pixel features like automatic event matching and Pixel Helper debugging. For most WooCommerce stores focused on purchase tracking, server-side handles the critical conversions.

You may be interested in: TikTok Events API Server-Side Only: Can You Skip the Client-Side Pixel Entirely?

Option 3: Use a Unified Tracking Solution

The deduplication problem exists because separate tools manage separate channels without coordination. A unified tracking system that controls both outputs from a single source eliminates this by design.

Transmute Engine™ operates as a first-party Node.js server on your subdomain, receiving WooCommerce events through the inPIPE plugin and routing them to TikTok Events API (and simultaneously to GA4, Facebook CAPI, and other platforms). When server-side only is configured, there’s no Pixel—so no deduplication needed. When both channels are required, event_id coordination happens at the source, before any data leaves your server.

Key Takeaways

  • TikTok deduplication requires identical event_id parameters across Pixel and Events API within 48 hours
  • Events within 5 minutes merge automatically; beyond that, matching IDs are mandatory
  • Different WooCommerce tracking plugins don’t coordinate, causing duplicate conversions
  • Server-side only eliminates deduplication complexity entirely—no Pixel means no duplicates
  • Proper dual-channel setup yields 19% more events and 15% better CPA—but only with correct deduplication
What is TikTok event deduplication?

TikTok event deduplication is the process of identifying and merging duplicate conversion events sent from both Pixel (client-side) and Events API (server-side) using matching event_id parameters. This prevents double-counting when the same purchase fires through both channels.

Why does TikTok show twice as many conversions as my actual orders?

When running both TikTok Pixel and Events API without proper event_id coordination, each purchase fires two separate events—one from the browser, one from your server. TikTok counts them as separate conversions unless both events share identical event_id parameters within 48 hours.

Do I need event deduplication if I only use server-side tracking?

No. Deduplication is only required when sending the same event type through both Pixel and Events API. If you run server-side only with no client-side Pixel, there’s nothing to deduplicate—each event fires once.

What happens if my event_id parameters don’t match between Pixel and Events API?

TikTok treats them as separate conversions. A $100 purchase becomes two $100 conversions in your TikTok Ads Manager, doubling your reported revenue and destroying ROAS accuracy.

Stop guessing why your TikTok numbers don’t match reality. Whether you fix deduplication or eliminate it entirely, accurate conversion data is the foundation of profitable advertising.

Share this post
Related posts