Skip to content

markproxy/appsflyer-cordova-plugin

 
 

Repository files navigation

Cordova AppsFlyer plugin for Android and iOS.

npm version
Build Status
License: MIT
Downloads

🛠 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 , reproduction steps, code snippets, logs, and any additional relevant information.


Please check out our brand new Capacitor plugin.

This plugin is not 100% compatible for use with Capacitor! To use this plugin with Capacitor, you have to make changes and customize the code by yourself. (Feel free to fork the project)


❗️Important


Table of content

  • iOS AppsFlyerSDK v6.5.2
  • Android AppsFlyerSDK v6.5.2

We have renamed the following APIs:

Old API New API
trackEvent logEvent
stopTracking Stop
trackCrossPromotionImpression logCrossPromotionImpression
trackAndOpenStore logCrossPromotionAndOpenStore
setDeviceTrackingDisabled anonymizeUser
$ cordova plugin add cordova-plugin-appsflyer-sdk  

To install cordova manually check out the doc here.

NOTE: for Ionic installation see this section

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

After you installed the AppsFlyer plugin, go to the ios folder inside platform folder:

cd platform/ios  

open the Podfile and replace pod 'AppsFlyerFramework', '6.1.1' with pod 'AppsFlyerFramework/Strict', '6.1.1'

Run pod install inside the ios folder

inside xcode, go to your target and define Preprocessor Macro AFSDK_NO_IDFA=1
Add Preprocessor macro

  • You can add the Preprocessor Macro using our Hooks.

Change to Regular mode

Go to the ios folder inside platform folder:

cd platform/ios  

open the Podfile and replace pod 'AppsFlyerFramework/Strict', '6.1.1' with pod 'AppsFlyerFramework', '6.1.1'

Run pod install inside the ios folder

inside xcode, go to your target and remove the Preprocessor Macro AFSDK_NO_IDFA=1

Great installation and setup guides can be viewed here.

Set your App_ID (iOS only), Dev_Key and enable AppsFlyer to detect installations, sessions (app opens) and updates. > This is the minimum requirement to start tracking your app installs and is already implemented in this plugin. You MUST modify this call and provide:

devKey - Your application devKey provided by AppsFlyer.

appId - For iOS only. Your iTunes Application ID.

waitForATTUserAuthorization - For iOS14 only. Time for the sdk to wait before launch.

Add the following lines to your code to be able to initialize tracking with your own AppsFlyer dev key:

document.addEventListener('deviceready', function() {  
  
  window.plugins.appsFlyer.initSdk({  
  devKey: 'K2***************99', // your AppsFlyer devKey  
  isDebug: false,  
  appId: '41*****44', // your ios appID  
  waitForATTUserAuthorization: 10, //time for the sdk to wait before launch - IOS 14 ONLY!  
 }, (result) => {  console.log(result);  
 }, (error) => {  console.error(error);  
 } );  }, false);  

See the full API available for this plugin.

Check out the demo for this project here.

There is 1 demo project called demoC, run npm run setup_c in the appsflyer-cordova-plugin folder and then open the ios project in Xcode to see implementation for IOS 14.

Check out our Sample-App Let's cook! here if you want to implement our SDK inside React-Cordova app

NOTICE! In AppsFlyer Cordova plugin version 6.x.x we replaced the word track with log from all our api but Ionic-Navite Appsflyer plugin still uses track

So the latest version that can work with Ionic-Native for now is 5.4.30

In case you are using Ionic framework, you have 2 options:

1. Using the window object directly

Install the cordova plugin:

$ ionic cordova plugin add cordova-plugin-appsflyer-sdk  

In your main ts file, declare a window variable:

declare var window;  

Now you can use the AppsFlyer plugin directly from cordova:

import {Component} from '@angular/core';  
import {Platform} from '@ionic/angular';  
  
declare var window;  
...  
export class HomePage {  
  constructor(public platform: Platform) {  
  this.platform.ready().then(() => {  
  window.plugins.appsFlyer.initSdk(options, success, error);  
 }); }}  

2 - Using Ionic native plugin

Ionic 4 and 5

run this commands:
With Cordova:

$ ionic cordova plugin add cordova-plugin-appsflyer-sdk  
$ npm install @ionic-native/appsflyer  

With Capacitor:

$ npm install cordova-plugin-appsflyer-sdk  
$ npm install @ionic-native/appsflyer  
ionic cap sync  

Then add the following to app.module.ts

import { Appsflyer } from "@ionic-native/appsflyer/ngx";  
...  
providers: [  
Appsflyer,  
...,  
]  

and in your main ts file:

import { Appsflyer } from '@ionic-native/appsflyer/ngx';  
import {Platform} from '@ionic/angular';  
  
constructor(private appsflyer: Appsflyer, public platform: Platform) { ...  
this.platform.ready().then(() => {  
 this.appsflyer.initSdk(options); });}  

Ionic 2/3

If you're using Ionic 2/3, you'd need to install a previous version of the Ionic Native dependency (notice the @4 at the end of the npm install command):

$ ionic cordova plugin add cordova-plugin-appsflyer-sdk  
$ npm install @ionic-native/appsflyer@4  

Then add the following to app.module.ts(with no /ngx)

import { Appsflyer } from "@ionic-native/appsflyer";  
...  
providers: [  
Appsflyer,  
...,  
]  

And finally in your main ts file:

import { Appsflyer } from '@ionic-native/appsflyer';  

Check out the full API for more information

About

AppsFlyer plugin for Cordova

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 50.7%
  • Java 30.4%
  • JavaScript 18.9%