User tracking using Branch and Amplitude (AAID/IDFA)

SDK Version: 42
Platforms(Android/iOS/web/all): Android/iOS
Workflow: managed

I will start with a short description of what we are trying to achieve:
We want to use Branch links to invite users to our app. The campaigns will run on multiple channels.
We are integrating Branch data with Amplitude. The plan is to track the whole journey from tapping the link through app install to account creation. We need to understand how effective our campaigns are and how users behave in the app.

How I am trying to achieve this:
I am using branch-expo and expo-analytics-amplitude packages.
When the user lands in the app and creates an account, I am assigning user ID to Amplitude:
and I set the user ID for Branch:
Branch.setRequestMetadata('$amplitude_user_id', userId);

Branch docs say that I should set $amplitude_device_id as well, but I have no idea how to get it.
Data Integration Implementation Guide (point 5)
Amplitude package does not have an option to retrieve it.

How it works at the moment:
Deep deferred linking seems to be working fine.
Even though the integration is not set up entirely, I can see the data and events from Branch in Amplitude. Data and events are linked to a user in Amplitude only if that user is authenticated (that makes sense, only then I am passing the Amplitude user ID to Branch).
Events are linked for the right user but under a different session in Amplitude. I am not sure if that is how this is supposed to work.


  1. Does Amplitude and/or Branch use IDFA/AAID ids? Reading the Expo docs, I found that Branch is using them. I talked to Branch support, and they confirmed that they couldn’t see those on their end (when debugging my events). I am confused about this one.
  2. If Branch support is correct, how does deferred linking/data integration work?
  3. Do I need to display ATT prompt for iOS users? TrackingTransparency - Expo Documentation
  4. Does Branch package automatically detect if the permission is granted?
  5. Do I need to do the differentiation in the code when the user rejects IDFA tracking? What should I do in this case?
  6. Will Branch NativeLinks work with SDK 43?

I know that this post is long and not only related to Expo, but any help would be much appreciated.
Thank you.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.