Giter Club home page Giter Club logo

phonegap's Introduction

PhoneGap AppsFlyer plugin for Android and iOS.

Built against Phonegap >= 4.3.x.

PhoneGap Build

Add the following line to your config xml:

<gap:plugin name="com.appsflyer.phonegap.plugins.appsflyer" version="1.0.1" />

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

document.addEventListener("deviceready", function(){
    var args = [];
    var devKey = "xxXXXXXxXxXXXXxXXxxxx8";   // your AppsFlyer devKey
    args.push(devKey);
    var userAgent = window.navigator.userAgent.toLowerCase();
                          
    if (/iphone|ipad|ipod/.test( userAgent )) {
        var appId = "123456789";            // your ios app id in app store
        args.push(appId);
    }
	window.plugins.appsFlyer.initSdk(args);
}, false);

Installation using CLI:

$ cordova plugin add https://github.com/AppsFlyerSDK/PhoneGap.git

Then reference appsflyer.js in index.html, after cordova.js/phonegap.js. Mind the path:

<script type="text/javascript" src="js/plugins/appsflyer.js"></script>

Manual installation:

1. Add the following xml to your config.xml in the root directory of your www folder:

<!-- for iOS -->
<feature name="AppsFlyerPlugin">
  <param name="ios-package" value="AppsFlyerPlugin" />
</feature>
<!-- for Android -->
<feature name="AppsFlyerPlugin">
  <param name="android-package" value="com.appsflyer.cordova.plugin.AppsFlyerPlugin" />
</feature>

2. For Android, add the following xml to your AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

3. Copy appsflyer.js to www/js/plugins and reference it in index.html:

<script type="text/javascript" src="js/plugins/appsflyer.js"></script>

4. Download the source files and copy them to your project.

iOS: Copy AppsFlyerPlugin.h, AppsFlyerPlugin.m, AppsFlyerTracker.h and libAppsFlyerLib.a to platforms/ios/<ProjectName>/Plugins

Android: Copy AppsFlyerPlugin.java to platforms/android/src/com/appsflyer/cordova/plugins (create the folders)

Usage:

1. Set your App_ID (iOS only), Dev_Key and enable AppsFlyer to detect installations, sessions (app opens), and updates.

**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: *

  • devKey - Your application devKey provided by AppsFlyer.
  • appId - For iOS only. Your iTunes application id.
document.addEventListener("deviceready", function(){
    var args = [];
    var devKey = "xxXXXXXxXxXXXXxXXxxxx8";   // your AppsFlyer devKey
    args.push(devKey);
    var userAgent = window.navigator.userAgent.toLowerCase();
                          
    if (/iphone|ipad|ipod/.test( userAgent )) {
        var appId = "123456789";            // your ios app id in app store
        args.push(appId);
    }
	window.plugins.appsFlyer.initSdk(args);
}, false);

2. Set currency code (optional)

//USD is default value. Acceptable ISO(http://www.xe.com/iso4217.php) Currency codes here. Examples:  
//British Pound: window.plugins.appsFlyer.setCurrencyCode("GBP");  
window.plugins.appsFlyer.setCurrencyCode("USD");

3. Set customer user ID (Advance)

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);

4. In App Events Tracking API (optional)

These events help you track how loyal users discover your app and attribute them to specific campaign/source.

  • These in-app events help you track how loyal users discover your app, and attribute them to specific campaigns/media-sources. Please take the time define the event/s you would like to measure to allow you to track ROI (Return on Investment) and LTV (Lifetime Value).
  • The “trackEvent” method allows you to send in-app events to AppsFlyer analytics. This method allows you to add events dynamically by adding them directly to the application code.
var eventName = "af_add_to_cart";
var eventValues = {"af_content_id": "id123", "af_currency":"USD", "af_revenue": "2"};
window.plugins.appsFlyer.trackEvent(eventName, eventValues);

5. Get AppsFlyer’s Unique Device UID (Advanced)

Get AppsFlyer’s proprietary device ID. AppsFlyer device ID is the main ID used by AppsFlyer in the Reports and API’s.

// getUserIdCallbackFn - callback function
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);
Example:
var getUserIdCallbackFn = function(id) {
	alert('received id is: ' + id);
}
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);

6. Accessing AppsFlyer Attribution / Conversion Data from the SDK (Deferred

Deep-linking). Read more: Android, iOS
Note: AppsFlyer plugin will fire onInstallConversionDataLoaded event with attribution data. You must implement listener to receive the data.

Example:
document.addEventListener('onInstallConversionDataLoaded', function(e){
	var attributionData = (JSON.stringify(e.detail));
	alert(attributionData);
}, false);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.