Skip to content

viper-development/appsflyer-cordova-plugin

 
 

Repository files navigation

Cordova AppsFlyer plugin for Android and iOS.

npm version Build Status License: MIT Downloads


❗️Important


🛠 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.


Table of content

  • iOS AppsFlyerSDK v6.3.2
  • Android AppsFlyerSDK v6.3.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

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

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 53.2%
  • Java 30.5%
  • JavaScript 16.3%