Using the reference to GitHub repository:
cordova plugin add https://github.com/DevDmitryHub/cordova-plugin-appsflyer.git
Using plugin name (Cordova v.5+):
cordova plugin add cordova-plugin-appsflyer
For Ionic Framework:
ionic plugin add cordova-plugin-appsflyer
For old Cordova versions you should add reference to the plugin script file.
Then reference appsflyer.js
in index.html
, after cordova.js
/phonegap.js
.
Mind the path:
<script type="text/javascript" src="https://github.com/DevDmitryHub/cordova-plugin-appsflyer/raw/master/js/plugins/appsflyer.js"></script>
For more details about manual installation see wiki page Manual Installation or use author's page.
Built against Phonegap >= 4.3.x.
Cordova >= 4.3.x.
Add the following line to your config xml:
<gap:plugin name="cordova-plugin-appsflyer" version="4.2.17" />
Note: This is the minimum requirement to start tracking your app installs and it's already implemented in this plugin. You MUST modify this call and provide:
function isIOS() {
//for Cordova
var userAgent = window.navigator.userAgent.toLowerCase();
var result = /iphone|ipad|ipod/.test( userAgent );
//for Ionic
var result = ionic.Platform.isIOS();
return result;
}
function initListener() {
var options = {
devKey: "xxXXXXXxXxXXXXxXXxxxx8", // your AppsFlyer devKey
isDebug: true // optional
};
if (isIOS()) {
options.appId = "123456789"; // your ios app id in app store
}
window.plugins.appsFlyer.initSdk(options);
}
//for Cordova
document.addEventListener("deviceready", initListener, false);
//for Ionic
$ionicPlatform.ready(initListener);
//USD is default value. Acceptable ISO(http://www.xe.com/iso4217.php) Currency codes here. Examples:
window.plugins.appsFlyer.setCurrencyCode("USD");
Setting your own custom ID will enable you to cross-reference your own unique ID with AppsFlyer’s user ID and the
other devices’ IDs. This ID will be available at AppsFlyer CSV reports along with postbacks APIs for cross-referencing
with you internal IDs.
Note: The ID must be set during the first launch of the app at the SDK initialization. The best practice is to call to this API during deviceready
event if possible.
window.plugins.appsFlyer.setAppUserId(userId);
These events help you track how loyal users discover your app and attribute them to specific campaign/source.
var eventName = "af_add_to_cart";
var eventValues = {"af_content_id": "id123", "af_currency":"USD", "af_revenue": "2"};
window.plugins.appsFlyer.trackEvent(eventName, eventValues);
Get AppsFlyer’s proprietary device ID. AppsFlyer device ID is the main ID used by AppsFlyer in the Reports and API’s.
var getUserIdCallbackFn = function(id) {
alert('received id is: ' + id);
}
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);
Read more: Android, iOS
Note: AppsFlyer plugin replaced event onInstallConversionDataLoaded
by using listener onInstallConversionDataListener
if you want use it,
you have to enable option onInstallConversionDataListener
to true
on initSdk
and handle information.
AppsFlyer provides you a method to opt‐out specific users from AppsFlyer analytics. This method complies with the latest privacy requirements and complies with Facebook data and privacy policies. Default is FALSE, meaning tracking is enabled by default.
window.plugins.appsFlyer.setDeviceTrackingDisabled(true);
Android - AppsFlyer requires a Google Project Number to enable uninstall tracking for Android apps. More Information.
Usage: setGCMProjectID(gcmProjectNumber): void //@Deprecated
.
Usage: enableUninstallTracking(token, onSuccess, onError): void
.
iOS - AppsFlyer requires a Token to enable uninstall tracking for iOS apps.
More Information.
Usage: enableUninstallTracking(token, onSuccess, onError): void
.
Usage: registerUninstall(token): void
.
Since v.4.2.0 deeplinking metadata (scheme/host) is sent automatically
Add the following function handleOpenUrl
to your root, and call SDK as shown:
var handleOpenURL = function(url) {
window.plugins.appsFlyer.handleOpenUrl(url);
}
Universal Links in iOS
To enable Universal Links in iOS please follow the guide here.
Note: Our plugin utilizes the
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler;
If additional instances of the method exist in your code - merge all calls into one
(Available on cordova-plugin-appsflyer 4.3.2 and higher )
This plugin has a examples
folder with demoA
(AngularJS 1.x) and demoC
(Cordova) projects bundled with it. To give it a try , from root plugin folder execute following:
# for Cordova
npm run setup_c
# for Angular
npm run setup_a
npm run <example>.<operation>
demo_a
- for Android applicationdemo_c
- for Cordova application
run-android
- runs Androidbuild-android
- builds Androidrun-ios
- runs iOSbuild-ios
- builds iOS