React Native AppsFlyer plugin for Android and iOS

In order for us to provide optimal support, we would kindly ask you to submit any issues to [email protected]

When submitting an issue please specify your AppsFlyer sign-up (account) email , your app ID , production steps, logs, code snippets and any additional relevant information.

This plugin is built for

  • iOS AppsFlyerSDK v6.4.0
  • Android AppsFlyerSDK v6.4.0

❗ Breaking Changes

  • From version 6.3.0, we use xcframework for iOS platform, then you need to use cocoapods version >= 1.10

  • From version 6.2.30, logCrossPromotionAndOpenStore api will register as af_cross_promotion instead of af_app_invites in your dashboard.

    Click on a link that was generated using generateInviteLink api will be register as af_app_invites.

  • We have renamed the following APIs:

trackEvent logEvent
trackLocation logLocation
stopTracking stop
trackCrossPromotionImpression logCrossPromotionImpression
trackAndOpenStore logCrossPromotionAndOpenStore
setDeviceTrackingDisabled anonymizeUser
AppsFlyerTracker AppsFlyerLib

And removed the following ones:

  • trackAppLaunch -> no longer needed. See new init guide
  • sendDeepLinkData -> no longer needed. See new init guide
  • enableUninstallTracking -> no longer needed. See new uninstall measurement guide

If you have used 1 of the removed APIs, please check the integration guide for the updated instructions

? Adding the SDK to your project

Production version from npm:

$ npm install react-native-appsflyer --save

Then run the following:


$ cd ios && pod install
$ react-native run-ios


$ react-native run-android

Starting from RN v0.60, and react-native-appsflyer v1.4.7 the plugin uses autolinking.

If your app does not support autolinking, check out the Installation Guide here.

?‍?‍?‍? Add or Remove Strict mode for App-kids

Starting from version 6.1.10 iOS SDK comes in two variants: Strict mode and Regular mode. Please read more here

Version <= 6.3.0: read this section of the in branch: releases/6.x.x/6.3.x/6.3.0

Change to Strict mode

After you installed the AppsFlyer plugin, add $RNAppsFlyerStrictMode=true in the project's Podfile:


  # Pods for MyRNApp

In the ios folder of your root project Run pod install

Change to Regular mode

Remove $RNAppsFlyerStrictMode=true from the project's Podfile or set it to false:

  $RNAppsFlyerStrictMode=false //OR remove this line

  # Pods for MyRNApp

In the ios folder of your root project Run pod install

? Initializing the SDK

Initialize the SDK to enable AppsFlyer to detect installations, sessions (app opens) and updates.

NOTE! for iOS 14.5, we use timeToWaitForATTUserAuthorization parameter. Please read more

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import appsFlyer from 'react-native-appsflyer';

    devKey: 'K2***********99',
    isDebug: false,
    appId: '41*****44',
    onInstallConversionDataListener: true, //Optional
    onDeepLinkListener: true, //Optional
    timeToWaitForATTUserAuthorization: 10 //for iOS 14.5
  (result) => {
  (error) => {
Setting Description
devKey Your application devKey provided by AppsFlyer (required)
appId Your iTunes application ID (iOS only)
isDebug Debug mode - set to true for testing only
onInstallConversionDataListener Set listener for SDK init response (Optional. default=true)
onDeepLinkListener Set listener for DDL response (Optional. default=false)
timeToWaitForATTUserAuthorization Time for the sdk to wait before launch. please read more Here