Deduplication in AnyTrack
Learn how AnyTrack automatically deduplicates conversion events across client-side and server-side sources before sending them to ad platforms. Covers why duplicates happen, how AnyTrack merges events using Click IDs and transaction data, the Shopify Meta Conversion API comparison, and best practices for preventing duplicate conversions.
Duplicate conversions destroy campaign optimization. When the same purchase gets tracked twice—once from the browser pixel, again from your webhook—Facebook's algorithm sees inflated results and makes poor bidding decisions. Your ROAS tanks because the platform thinks every dollar is generating 2x the actual conversions.
Deduplication ensures one conversion equals one event. AnyTrack handles this automatically before data reaches ad platforms—merging client and server events, matching transactions across systems, and sending clean signals that drive accurate optimization. No duplicate conversions, no inflated metrics, no algorithm confusion.
Why Deduplication is Necessary
Without deduplication, the same conversion might be tracked multiple times — for example:
- Once in the browser (Pixel/Tag)
- Again via an API or webhook
- Or even multiple times in the funnel (e.g., several form submissions)
This would inflate metrics and send unreliable signals to your ad platforms. Deduplication ensures that only one clean event is counted.
Deduplication Use Cases
There are several scenarios where deduplication is required:
-
When AnyTrack receives both client-side and server-side events
- Example: Shopify
Add to Carttracked via the AnyTrack Tag (client) and via the Shopify Webhook (server).
- Example: Shopify
-
When AnyTrack receives only server-side events
- Example: conversions sent exclusively through an API or webhook.
-
When AnyTrack receives only client-side events
- Example: conversions tracked solely via the AnyTrack Tag.
Deduplication is required whenever the same type of event is received multiple times with similar conversion data.
ForWhen we integrated ClickFunnels in AnyTrack we realized that during a sales funnel, a user might submit several forms (
form_submitevents) which was triggering an Event Snippet in the browser with aLeadevent. While this event was firing in the browser, the AnyTrack webhook was receiving real time customer data directly from the ClickFunnels server and we could deduplicate these events and customers were finally able to optimize their campaigns for a realLeadevent.
How AnyTrack Deduplicates Events
In all cases, deduplication is handled automatically by AnyTrack, using multiple identifiers and event parameters, including:
- AnyTrack Click ID
- Customer data
- First-party data (cookies, fingerprinting signals)
- Transaction data (transaction ID, order ID)
Events from client-side and server-side are compared, cleaned, and merged into a single event record.
📊 Shopify Example: Meta vs. AnyTrack Deduplication
| Aspect | Meta Recommended Approach | AnyTrack Approach |
|---|---|---|
| Event Sources | Browser (Meta Pixel) + Server (Conversions API) | Shopify Tag (client) + Shopify Webhook (server) |
| Deduplication Method | Must generate a unique event_id in browser, pass same event_id to server | Automatically deduplicates using multiple identifiers (cart_id, client_id, click_id, customer + transaction data) |
| Who Deduplicates? | Meta deduplicates inside its platform after receiving Pixel + Conversion API events | AnyTrack deduplicates before sending events to Meta |
| Data Sent to Meta | Both Pixel + Conversion API events (Meta deduplicates them) | Only deduplicated server-side events from AnyTrack |
| Risk of Duplicates in Meta | Possible if event_id setup is wrong | None, since Pixel is not used and events are pre-deduplicated |
What You Should Do About Deduplication
To make sure you don’t run into duplicate events, here are some best practices to follow:
-
Prevent the Meta Pixel from firing outside of AnyTrack
- AnyTrack already handles conversion tracking and deduplication for you.
- If other systems (or your own code) still trigger events directly to the Meta Pixel, duplicates will slip through.
-
Remove event snippets you previously added manually
- Delete any old code snippets for
Lead,Purchase,AddToCart, etc. - If you leave them in place, Meta will receive the same event twice: once from your snippet, and once from AnyTrack. Since AnyTrack doesn't control what is fired in the Event Snippet, the required deduplicated parameters won't be identical to the server side events, and duplicate data will slip through.
- Delete any old code snippets for
-
Disconnect overlapping apps
- Remove or disconnect apps that interact with ad platforms you’ve already connected to AnyTrack (e.g., Meta, Google, TikTok).
- Otherwise, both the app and AnyTrack could be sending the same events.
- Remove tags from tag management platforms (Google Tag Manager, Stape.io)
✅ Native vs. Custom Integrations
-
Native Integrations (e.g., Shopify, ClickFunnels, etc.) If you’ve connected AnyTrack via a native integration, you don’t need to do anything. The deduplication process is fully automated.
-
Custom Integrations Deduplication also happens automatically using common tracking parameters like the AnyTrack
click_id.⚠️ Important for Purchase Events:
- You must pass the transaction_id for each purchase.
- The
click_idalone is not enough, since it is tied to the customer, not the purchase. - Without the
transaction_id, repeat purchases from the same customer could be deduplicated incorrectly.
Pro Tips for deduplication
- Rely on AnyTrack → Don’t fire Meta Pixel events directly; let AnyTrack handle all deduplication.
- Audit your site → Double-check that no legacy scripts or apps are still sending events to Meta Pixel using the AnyTrack Pixel Helper Extension
- Pass transaction IDs → Especially important for repeat purchase scenarios.
FAQ & Troubleshooting
FAQ was last reviewed on 2026-02-25
Updated 2 days ago
