Meta · Published 2026-02-26 · 2 min read
The myth of duplicate events in Meta
The myth is that Meta reports revenue and conversion data incorrectly. In practice the discrepancies come from misconfigured event sending and from having several data sources at once. Below are the main causes.
- Duplication through AppsFlyer partners
The scenario
- both the Meta Ads and Meta Web partners are connected,
- and the same event (Purchase) is mapped in both.
When a purchase happens, two events arrive in Meta
- one from Meta Ads,
- the second through Meta Web.
The fix
Separate the event types
Meta Web
- Purchase
- StartTrial
- Lead (not a custom install event)
Meta Ads (AEM)
- fb_mobile_purchase
- fb_mobile_add_to_cart (since there is no StartTrial)
- Parallel sending from revenue analytics services
The scenario
- events are sent from AppsFlyer,
- and the same events are sent from Apphud, Adapty or RevenueCat.
Meta receives duplicates from two sources.
The fix
Use a single source for sending events
- AppsFlyer
or
- a revenue analytics service.
- Fraud
Some apps have almost no fraud. Others have a lot. It depends on the geo and the genre. A casual game targeted at Indonesia will have more fraud than an invoice generator targeted at the United States.
The fix
Do not forward any conversions except install from the SDK. Every other conversion should come only from Apphud, Adapty or RevenueCat.
- The Meta SDK and AppsFlyer at the same time
If events are sent simultaneously through
- the Meta SDK
- and the AppsFlyer Meta partner,
Meta may register both events.
In theory Meta should have an event deduplication mechanism. In practice it does not work. It is good that AppsFlyer's documentation mentions this explicitly.
The fix
Pick one mechanism and use only that one. Over to AppsFlyer:
«Use either of the following methods to avoid duplicate in-app event reporting in Meta ads:»
- «Don't configure events in the Facebook SDK.»
- «Disable the Meta ads in-app events mapping from AppsFlyer.»