Meta ads Aggregate Event Measurement (AEM) for iOS

At a glance: Learn about the AEM solution for optimizing iOS conversions and in-app events and for attributing iOS re-engagements on Meta ads.


AppsFlyer supports the Meta ads Aggregated Event Measurement (AEM) solution. This solution enables measuring web and app events for iOS 14+ devices using the following attribution methods: 

App AEM for re-engagement

Using AEM, Meta ads gets deep link re-engagement attribution for iOS users without device IDs.

Attribution flow

Meta Ads appends attribution data to the deep link along with the AEM campaign_ids identifier. AppsFlyer receives the identifier with data showing on the deep link, then:

  • Sends aggregate reporting data back to Meta ads
  • Performs attribution based on the deep link information appended by Meta ads
  • Includes attribution data from the deep link in raw data and aggregated data reports

Attribution data parameters

The following attribution data parameters, as shared by Meta ads, are included in the reports:

  • ad_id
  • adgroup_id
  • campaign_id
  • campaign_group_id
  • account_id

FAQs on deep link re-engagement attribution

What must the advertiser do to enable this attribution?

No action is needed from the advertiser to receive these parameters for attribution.

However, for the deep link re-engagement attribution to be measured, the Re-engagement attribution toggle must be turned on.

Note: According to Meta ads' terms and conditions regarding AEM, enabling re-engagement attribution measurement with Meta ads means all postbacks sent to Meta ads include partial IP addresses.

What are the implications of this attribution?

  • An increase in the number of Meta ads re-engagement deep link conversions for iOS devices
  • Data coming from deep link conversions is partial—showing only what’s included in the deep link received by Meta ads

What about agencies and Meta campaign management partners?

At this stage, attribution for agencies and Meta campaign management partners is not supported. This means all traffic is attributed to Meta ads. This is temporary and will change soon.

Are there any restrictions on data from this attribution?

Data coming from deep link attributions isn't subject to reporting restrictions. This means all data appears both in aggregated and user-level raw data reports.

App AEM for app promotion

AEM eligibility

When an app is eligible for AEM on Meta ads, during the Ad Set creation process Aggregated Event Measurement is selected by default. This means both AEM and SKAN can be used simultaneously for the campaign. If Apple's SKAdNetwork is selected instead, only SKAN will be applicable for the campaign. This means AppsFlyer has limited ability to measure the app activity on Meta ads. 



If you have issues with AEM eligibility, see the troubleshooting section

AEM data sharing

Advanced data sharing enables you to share all conversion events with Meta ads.

  • When turned off (the default state), sharing is limited only to conversion events of users who opted in to the ATT prompt
  • When turned on, Advanced data sharing enables sending Meta ads user data such as IP and User Agent, regardless of the ATT state. The data shared may include additional device-related information that doesn't involve the device ID.



  • All events include installs, app opens, and in-app events.
  • Before enabling Advanced data sharing, make sure such sharing, including any use of your data by third parties, complies with any platform policies and/or regulations to which you are subject. Data shared may include IP addresses, anon_ids (if available), vendor_id, and user agents.

FAQs and troubleshooting


What's the benefit of AEM data sharing?

More data is shared with Meta ads, which could help improve their campaign optimization.

What are the implications of AEM data sharing?

The added information sent to Meta ads when Advanced data sharing is turned on may cause an increase in data discrepancy between Meta ads and AppsFlyer. This is reflected mainly in the number of installs. See more details.


AEM doesn't work or is ineligible. Why is that and what can I do?

In some cases, Meta rejects eligible events and considers them ineligible with the message "Missing opt out events". This may happen when eligible events have missing data. If your app is AEM ineligible, when optimizing specific events make sure of the following:

  • For each event (sent via the SDK or via server-to-server), IP masking is turned off. In many cases, when events are sent via S2S, the IP isn't included or is invalid.
  • For all events sent via server-to-server, both the IP address and the IDFV identifier are included.
  • Events are sent with an empty or all-zero IDFA pattern. If values other than these are sent in the IDFA field, Meta ads regards it as an opt-in event and is therefore ineligible.
  • For every event, the postback mapping is configured to be sent to "All media sources, including organic" rather than "This partner only." This applies to all events except for af_skad_revenue, which can only be mapped to "This partner only."

If your app is still AEM ineligible (for specific events):

  • Go to the Meta event manager and follow their instructions
    • Select the Active App event
    • Select MMP traffic as your preferred connection method


After making any of the changes described above, it may take between 2-3 days for Meta ads to make your app AEM eligible.