Skip to content

bohowu/appsflyer-flutter-plugin

 
 

Repository files navigation

appsflyer_sdk

A Flutter plugin for AppsFlyer SDK.

pub package Coverage

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


Table of content


Supported Platforms

  • Android
  • iOS 8+

This plugin is built for

  • iOS AppsFlyerSDK v6.4.0

  • Android AppsFlyerSDK v6.4.0

Flutter 2.0 is supported from version 6.2.3+2, including null safety support!

The version 6.2.4-flutterv1 will use iOS SDK V6.2.4 with Flutter V1


  • Remove stream from the plugin (no change is needed if you use callbacks for handling deeplink).

In v6 of AppsFlyer SDK there are some api breaking changes:

Before v6 v6
trackEvent logEvent
stopTracking stop
validateAndTrackInAppPurchase validateAndLogInAppPurchase
Before v6.1.2+4 v6.1.2+4
validateAndTrackInAppPurchase validateAndTrackInAppIosPurchase/validateAndTrackInAppAndroidPurchase

Important notice

  • Switch ConversionData and OnAppOpenAttribution to be based on callbacks instead of streams since plugin version 6.0.5+2

In order to install the plugin, visit this page.


To start using AppsFlyer you first need to create an instance of AppsflyerSdk before using any other of our sdk functionalities.

AppsflyerSdk receives a map or AppsFlyerOptions object. This is how you can configure our AppsflyerSdk instance and connect it to your AppsFlyer account.

Example (using map):

import 'package:appsflyer_sdk/appsflyer_sdk.dart';
//..

Map appsFlyerOptions = { "afDevKey": afDevKey,
                "afAppId": appId,
                "isDebug": true};

AppsflyerSdk appsflyerSdk = AppsflyerSdk(appsFlyerOptions);

Disable Advertiser ID & IDFA:

Adding "disableAdvertisingIdentifier": true in the appsFlyerOptions will disable:

Android:

OAID (Open Anonymous Device Identifier)

AAID (Amazon Advertising ID)

GAID (Google Advertising ID)

iOS:

IDFA

Map appsFlyerOptions = { 
    "afDevKey": afDevKey,
    "afAppId": appId,
    "isDebug": true
    "disableAdvertisingIdentifier": true
};

The next step is to call initSdk which have the optional boolean parameters registerConversionDataCallback, registerOnAppOpenAttributionCallback and registerOnDeepLinkingCallback which are set to true as default.

After we call initSdk we can use all of AppsFlyer SDK features.

Initialize the SDK to enable AppsFlyer to detect installations, sessions (app opens) ,updates and use all of our features.

appsflyerSdk.initSdk(
    registerConversionDataCallback: true,
    registerOnAppOpenAttributionCallback: true,
    registerOnDeepLinkingCallback: true
);

  1. Add #import <AppTrackingTransparency/AppTrackingTransparency.h> in your AppDelegate.m

  2. Add the ATT pop-up for IDFA collection so your AppDelegate.m will look like this:

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    [GeneratedPluginRegistrant registerWithRegistry:self];
    if (@available(iOS 14, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            //If you want to do something with the pop-up
        }];
    }
    return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
  1. Add Privacy - Tracking Usage Description inside your .plist file in Xcode.

  2. Optional: Set the timeToWaitForATTUserAuthorization property in the AppsFlyerOptions to delay the sdk initazliation for a number of x seconds until the user accept the consent dialog:

AppsFlyerOptions options = AppsFlyerOptions(
    afDevKey: DotEnv().env["DEV_KEY"],
    appId: DotEnv().env["APP_ID"],
    showDebug: true,
    timeToWaitForATTUserAuthorization: 30
    ); 

For more info visit our Full Support guide for iOS 14:

https://support.appsflyer.com/hc/en-us/articles/207032066#integration-33-configuring-app-tracking-transparency-att-support


Great installation and setup guides can be viewed here


see the full API available for this plugin.

About

Flutter Plugin for AppsFlyer SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 37.7%
  • Objective-C 31.9%
  • Java 27.4%
  • Ruby 2.5%
  • JavaScript 0.4%
  • Kotlin 0.1%