Sprites LogoSprites.ai
CustomersPricing
Sign in
Get a demo
Start 7-day trial→→
Start 7-day trial→→
Sprites LogoSprites.ai
  • Run adsMeta AdsFacebook and Instagram, scaledGoogle AdsSearch, PMax and ShoppingLinkedIn AdsB2B targeting and ABMTikTok AdsShort-form video that convertsReddit AdsReach communities by intentGoal OptimizationHit your ROAS or CPL target
    Create & researchAd GeneratorOn-brand ads for any channelCreative AnalyticsThe hooks and angles that winCompetitor IntelligenceRivals' ads, SEO and AI reachMarket ResearchAudience insight, with sources
    SEO & AI visibilityAI SEO ContentArticles written and publishedAI VisibilityGet cited in AI answersSEO Site AuditPrioritized fixes, site-wideKeyword & Traffic ResearchWhere the searches and gaps are
    Meet SpritesYour AI ads team, on every channelResearches, builds and launches campaigns, then optimizes them daily. You approve every change.Scale the winner +$600/dayApprovePaused 14 wasted keywords+ SEO & AI searchStart 7-day trial
  • By teamStartups & SMBsSenior marketing, no headcountMarketing teamsMore campaigns, same teamAgenciesEvery client, one workspaceEnterpriseApprovals, governance, scale
    By businessB2B & ABMPipeline from target accountsEcommerce & D2CProfitable ROAS at scalePLG SaaSSignups and trials, not clicksMobile appsInstalls that become usersFintechCompliant growth for financeHealthtechCareful, compliant growth
    Helghardt Avenant68% lower CPL in 6 weeksCustomer storyHow Rehive took its ABM playbook back from two agenciesHelghardt Avenant · Founder & CEO, RehiveRead the story
  • Ads LibraryReal ads from Meta, Google, LinkedIn, TikTok, Reddit and moreBlogIdeas and playbooks for modern marketingPrompt GalleryReady-to-run prompts for your next campaign
    Free toolsGlossaryReviewsCompare Sprites
  • Customers
  • Pricing
Sign in
Get a demo
Start 7-day trial→→
  1. Home/
  2. Fix/
  3. Meta Ads/
  4. Pixel and Conversions API/
  5. conversions api deduplication

Meta Ads · Sprites diagnoses this

Conversions API deduplication

Meta deduplicates a browser event and a server event when both carry the same event name and the same event_id. If either side leaves the event_id out, the same purchase counts twice. Open the event in Events Manager: it shows what share of browser and server events carry the key.

Start 7-day trial →Do it by hand

$1 today. Cancel anytime before day 7.

What Sprites checks

4 checks
  • ✓Purchase event ID, browserOn 98%
  • !Purchase event ID, serverOn 12%
  • !Purchase deduplicationBroken
  • ✓Lead deduplicationHealthy
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

The server sends no event_id

  1. The server sends no event_id

    The most common one. The pixel passes an ID, the server integration does not, and nothing pairs.

  2. Each side makes its own ID

    Both send an event_id, but the browser and the server each generate a random one. They never match.

  3. The event names differ

    Purchase on one side and purchase or a custom name on the other. Names must match exactly.

  4. The server event arrives too late

    Meta pairs a server event with its browser twin only when it arrives within 48 hours of it. Batched uploads that run later miss the window.

  5. Two server sources

    A store integration and a hand-built setup both send Purchase. That is a duplicate dedup cannot catch. See duplicate events.

How to fix it, step by step

  1. Read the event details

    In Events Manager, open Data sources, your dataset, Overview, and select the event. Event deduplication shows the share of browser and server events that carry the key.

  2. Generate one ID per action

    Make the ID once, on the page, for each action. An order ID works for Purchase. Pass it to the pixel as eventID and send the same value to your server.

  3. Send the same ID and name from the server

    The server event carries event_id with the identical value and an event_name spelled exactly like the browser one.

  4. Send promptly

    Post server events in real time, not in a nightly batch.

  5. Confirm in Test events

    Fire the event from the browser and the server with your test code. Test events marks the pair as deduplicated.

Steps checked against Meta Business Help Center articles: About deduplication for the Meta Pixel and Conversions API; Test your events in Events Manager. Meta for Developers: Handling duplicate pixel and Conversions API events.

Sprites diagnoses this

Sprites diagnoses it

Sprites reads your pixel and CAPI health and shows where it breaks: for every event, whether the browser and server sides pair up or double count.

What Sprites does

  • Reads, per event, the share of browser events and of server events that carry the event ID.
  • Calls deduplication healthy when both sides carry it on 90 percent of events or more, and broken when one side carries it on under half.
  • Says plainly when Meta returned no deduplication data for an event, rather than guessing.
  • Shows browser and server counts side by side before deduplication, so the size of the double count is visible.

What it doesn't do

  • Add the event ID to your pixel or server code
  • Send events to the Conversions API
Start 7-day trial →

Questions

How does Conversions API deduplication work?

Meta keeps one event when a browser event and a server event share the same event name and event_id, and arrive within 48 hours of each other.

What should the event_id be?

Any value unique to that action and identical on both sides. An order ID is the easiest for purchases.

How do I know deduplication works?

Open the event in Events Manager. Both browser and server should carry the key on nearly every event.

Do I need deduplication if I only use the Conversions API?

No. With one source there is nothing to pair. It matters the moment both send the same event.

More: Pixel and Conversions API

  • Meta pixel duplicate events
  • Meta Conversions API
  • Meta pixel vs Conversions API
  • Meta pixel not firing
  • Meta pixel not tracking purchases
  • Event Match Quality
  • CAPI not receiving events
  • Pixel events not showing in Events Manager
  • Meta pixel not active
  • Meta pixel not showing in Ads Manager
  • Meta test events not working

Hubs

  • Fix your Meta ads
  • Facebook ad rejected
  • Meta pixel not working
  • Fix your ad account
  • Fix Google Ads problems
  • Fix your LinkedIn ads
  • Fix your Reddit ads
  • Fix Microsoft Ads problems
  • Why your tools disagree on conversions

Reference

  • Meta Ads MCP
  • Meta Andromeda explained
  • Creative fatigue
  • How many Meta ads you need
  • Advantage+
  • Meta ad specs
  • How many creatives per week
  • GA4 vs Meta
  • PostHog vs Meta
  • fbclid
  • Ad specs

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.

Start 7-day trial →Get a demo

Get the free AI-First Marketing Playbook

Packed with proven tactics, creative inspo, and automation tips to help you grow faster with less guesswork.

By clicking send you agree to the Terms and Conditions

Pillars

AI Marketing AgentVibe MarketingAI VisibilityAI Marketing AutomationAI for Meta AdsAI for Google AdsAI for LinkedIn AdsAI SEOAds LibraryChatGPT AdsAI AdsMCP Server

For Teams

For AgenciesFor EcommerceFor FintechFor HealthtechFor EnterpriseFor FreelancersFor Marketing Teams

Prompts Gallery

Marketing Campaign BuilderGoogle Ads Search Campaign BuilderCompetitor Meta Ads AnalyzerSEO Audit + Plan GeneratorGoogle Ads Campaign OptimizerGoogle Ads: PMax Campaign Builder

About

CustomersReviewsBlogTerms of ServicePrivacy PolicyDPACareersSitemap
Sprites TextWizard