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 support@appsflyer.com
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.
Table of content
- iOS AppsFlyerSDK v6.3.5
- Android AppsFlyerSDK v6.3.2
-
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:
Old API | New API |
---|
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
Production version from npm:
$ npm install react-native-appsflyer --save
Then run the following:
iOS
$ cd ios && pod install
$ react-native run-ios
Android
$ 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.
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 README.md 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:
//MyRNApp/ios/Podfile
...
use_frameworks!
$RNAppsFlyerStrictMode=true
# 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
:
//MyRNApp/ios/Podfile
...
use_frameworks!
$RNAppsFlyerStrictMode=false //OR remove this line
# Pods for MyRNApp
...
In the ios
folder of your root
project Run pod install
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 here
import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import appsFlyer from 'react-native-appsflyer';
appsFlyer.initSdk(
{
devKey: 'K2***********99',
isDebug: false,
appId: '41*****44',
onInstallConversionDataListener: true,
onDeepLinkListener: true,
timeToWaitForATTUserAuthorization: 10
},
(result) => {
console.log(result);
},
(error) => {
console.error(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 |
Great installation and setup guides can be viewed here.
See the full API available for this plugin.