Skip to content

Latest commit

 

History

History
executable file
·
1777 lines (1224 loc) · 53.1 KB

API.md

File metadata and controls

executable file
·
1777 lines (1224 loc) · 53.1 KB
title category parentDoc order hidden
API reference
5f9705393c689a065c409b23
6370c9e2441a4504d6bca3bd
12
false

The list of available methods for this plugin is described below.


Android, iOS and Windows API

initSDK

void initSDK(string devKey, string appID, MonoBehaviour gameObject)

Initialize the AppsFlyer SDK with the devKey and appID. The dev key is required for all apps and the appID is required only for iOS. If you app is for Android only pass null for the appID.

parameter type description
dev_key string AppsFlyer's Dev-Key, which is accessible from your AppsFlyer account under 'App Settings' in the dashboard.
app_id string Your app's Apple ID.
gameObject (optional) MonoBehaviour The game object containing the IAppsFlyerConversionData interface.

Example:

AppsFlyer.initSDK("dev_key", "app_id"); // without deeplinking
AppsFlyer.initSDK("dev_key", "app_id", this); // with deeplinking

Note : You only need to implement the SDK with deeplinking if you are using the IAppsFlyerConversionData interface.


startSDK

void startSDK()

Once this API is invoked the SDK will start, sessions will be immediately sent, and all background foreground transitions will record a session.

Example:

 AppsFlyer.startSDK();

Android and iOS API

stopSDK

void stopSDK(bool isSDKStopped)

In some extreme cases you might want to shut down all SDK functions due to legal and privacy compliance. This can be achieved with the stopSDK API. Once this API is invoked, our SDK no longer communicates with our servers and stops functioning.

There are several different scenarios for user opt-out. We highly recommend following the exact instructions for the scenario, that is relevant for your app.

In any event, the SDK can be reactivated by calling the same API, by passing false.

Important : Do not call startSDK() if stopSDK() is set to true.

To restart SDK functions again, use the following API:

AppsFlyer.stopSDK(false);

Warning Use the stopSDK API only in cases where you want to fully ignore the user's SDK functions. Using this API SEVERELY impacts your attribution, data collection and deep linking mechanism.

parameter type description
isSDKStopped bool True if the SDK is stopped (default value is false).

Example:

AppsFlyer.stopSDK(true);

isSDKStopped

bool isSDKStopped()

Was the stopSDK(boolean) API set to true.

Example:

if (!AppsFlyer.isSDKStopped())
{
  
}

getSdkVersion

string getSdkVersion()

Get the AppsFlyer SDK version used in the app.

Example:

string version = AppsFlyer.getSdkVersion();

setIsDebug

void setIsDebug(bool shouldEnable)

Enables Debug logs for the AppsFlyer SDK.

Warning Only set to true in development / debug.

parameter type description
shouldEnable bool True if debug mode is on (default is false)

Example:

AppsFlyer.setIsDebug(true);

addPushNotificationDeepLinkPath

void addPushNotificationDeepLinkPath(params string[] paths)

Adds array of keys, which are used to compose key path to resolve deeplink from push notification payload.

parameter type description
paths string[] array of strings that represent the key path to the deeplink in the push notification payload

Example:

Usage example
Basic configuration:

AppsFlyer.addPushNotificationDeepLinkPath("af_push_link")

This call matches the following payload structure:

{
  "af_push_link": "https://yourdeeplink2.onelink.me"
}

ֿAdvanced configuration:

string[] paths = {"deeply", "nested", "deep_link"};
AppsFlyer.addPushNotificationDeepLinkPath(paths);

This call matches the following payload structure:

{
  "deeply": {
      "nested": {
          "deep_link": "https://yourdeeplink2.onelink.me"
      }
  }
}

setCustomerUserId

void setCustomerUserId(string id)

Setting your own Custom ID enables you to cross-reference your own unique ID with AppsFlyer’s user ID and the other devices’ IDs. This ID is available in AppsFlyer CSV reports along with postbacks APIs for cross-referencing with your internal IDs.

parameter type description
id string custom user ID

Example:

AppsFlyer.setCustomerUserId("custom_user_id");

setAppInviteOneLinkID

void setAppInviteOneLinkID(string oneLinkId)

Set the OneLink ID that should be used for User-Invite-API The link that is generated for the user invite will use this OneLink as the base link.

parameter type description
oneLinkId string OneLink ID for User-Invite attribution

Example:

AppsFlyer.setAppInviteOneLinkID("abcd");

setAdditionalData

void setAdditionalData(Dictionary<string, string> customData)

The setAdditionalData API is required to integrate on the SDK level with several external partner platforms, including Segment, Adobe and Urban Airship. Use this API only if the integration article of the platform specifically states setAdditionalData API is needed.

parameter type description
customData Dictionary<string, string> additional data

Example:

Dictionary<string, string> customData = new Dictionary<string, string>();
customData.Add("custom1", "someData");
AppsFlyer.setAdditionalData(customData);

setResolveDeepLinkURLs

void setResolveDeepLinkURLs(params string[] urls)

If you are using OneLinks which support Android App Links and wrapping them with a 3rd Party Universal Link, you can use the setResolveDeepLinkURLs API to notify the AppsFlyer SDK which click domains that invoke the app should be resolved by the SDK and have the underlying OneLink extracted from them. This will allow you to maintain deep linking and attribution while wrapping the OneLink with a 3rd party Universal Link. Make sure to call this API before SDK initialization.

parameter type description
urls params string[] array of urls

Example:

AppsFlyer.setResolveDeepLinkURLs("test.com", "test2.ca");

setOneLinkCustomDomain

void setOneLinkCustomDomain(params string[] domains)

Advertisers can use this method to set vanity onelink domains.

parameter type description
domains params string[] array of custom domains

Example:

 AppsFlyer.setOneLinkCustomDomain("test.domain", "test2.domain");

setCurrencyCode

void setCurrencyCode(string currencyCode)

Setting user local currency code for in-app purchases. The currency code should be a 3 character ISO 4217 code. (default is USD). You can set the currency code for all events by calling the following method.

parameter type description
currencyCode string 3 character ISO 4217 code. (default is USD)

Example:

AppsFlyer.setCurrencyCode("GBP");


setDeepLinkTimeout

void setDeepLinkTimeout(long deepLinkTimeout)

Setting the deepLink timeout value that should be used for DDL. If you want to use it, set it before the DDL setting.

parameter type description
deepLinkTimeout long in milliseconds

Example:

AppsFlyer.setDeepLinkTimeout(2000);

enableTCFDataCollection

void enableTCFDataCollection(bool shouldCollectTcfData)

Calling enableTCFDataCollection(true) will enable collecting and sending any TCF related data. Calling enableTCFDataCollection(false) will disable the collection of TCF related data and from sending it.

parameter type description
shouldCollectTcfData bool true to enable data collection

Example:

AppsFlyer.enableTCFDataCollection(true);;

setConsentData

void setConsentData(AppsFlyerConsent appsFlyerConsent)

Sets or updates the user consent data related to GDPR and DMA regulations for advertising and data usage purposes within the application.

parameter type description
appsFlyerConsent AppsFlyerConsent Instance of AppsFlyerConsent class

Example:

AppsFlyerConsent consent = AppsFlyerConsent.ForGDPRUser(false, false);
AppsFlyer.setConsentData(consent);

recordLocation

void recordLocation(double latitude, double longitude)

Manually record the location of the user.

parameter type description
latitude double latitude of user
longitude double longitude of user

Example:

AppsFlyer.recordLocation(40.7128, 74.0060);

anonymizeUser

void anonymizeUser(bool shouldAnonymizeUser)

AppsFlyer provides you with a method to anonymize specific user identifiers in AppsFlyer analytics. This method complies with the latest privacy requirements and complies with Facebook data and privacy policies. Default is NO, meaning no anonymization is performed by default. Use this API during the SDK Initialization to explicitly anonymize a user's installs, events and sessions. You can cancel anonymization by calling anonymizeUser again, set to false.

Warning Anonymizing users SEVERELY impacts your attribution information. Use this option ONLY for regions which legally prevents you from collecting your users' information.

parameter type description
shouldAnonymizeUser bool true to perform anonymization

Example:

AppsFlyer.anonymizeUser(true);

getAppsFlyerId

string getAppsFlyerId()

AppsFlyer's unique device ID is created for every new install of an app. Use the following API to obtain AppsFlyer’s Unique ID.

Example:

string uid = AppsFlyer.getAppsFlyerId(); 

setMinTimeBetweenSessions

void setMinTimeBetweenSessions(int seconds)

By default, at least 5 seconds must lapse between 2 app launches to count as separate 2 sessions (more about counting sessions). However, you can use the following API to set your custom value for the minimum required time between sessions.

Note: Setting a high value to the custom time between launches may badly impact APIs relying on sessions data, such as deep linking.

parameter type description
seconds int time between sessions (default is 5 seconds)

Example:

AppsFlyer.setMinTimeBetweenSessions(4);

setHost

void setHost(string hostPrefixName, string hostName)

Set a custom host.

parameter type description
hostPrefixName string
hostName string

Example:

AppsFlyer.setHost("hostPrefixName","hostName");

setUserEmails

void setUserEmails(EmailCryptType cryptMethod, params string[] emails)

Set the user emails and encrypt them.

cryptMethod Encryption methods: EmailCryptType.EmailCryptTypeSHA256 EmailCryptType.EmailCryptTypeNone

parameter type description
cryptMethod EmailCryptType none, or sha256
emails params string[] list of emails

Example:

AppsFlyer.setUserEmails(EmailCryptType.EmailCryptTypeSHA256, "test1@test1.com", "test2@test2.com");

setPhoneNumber

void setPhoneNumber(string phoneNumber)

Set the user phone number.

parameter type description
phoneNumber string

Example:

AppsFlyer.setPhoneNumber("4166358181");

getConversionData

void getConversionData(string objectName);

Register a Conversion Data Listener. Allows the developer to access the user attribution data in real-time for every new install, directly from the SDK level. By doing this you can serve users with personalized content or send them to specific activities within the app, which can greatly enhance their engagement with your app.

Get the callbacks by implementing the IAppsFlyerConversionData interface.

parameter type description
objectName string game object with the IAppsFlyerConversionData interface

Example:

AppsFlyer.getConversionData(gameObject.name);

attributeAndOpenStore

void attributeAndOpenStore(string appID, string campaign, Dictionary<string, string> userParams, MonoBehaviour gameObject)

Use the following API to attribute the click and launch the app store's app page.

Get the callbacks by implementing the IAppsFlyerUserInvite interface.

parameter type description
appID string
campaign string
userParams Dictionary<string, string>
gameObject MonoBehaviour game object with the IAppsFlyerUserInvite interface

Example:

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.attributeAndOpenStore("123456789", "test campaign", parameters, this);

logAdRevenue

void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary<string, string> additionalParameters)

Logs ad revenue data along with additional parameters if provided.

parameter type description
adRevenueData AFAdRevenueData Instance of AFAdRevenueData containing ad revenue information
additionalParameters Dictionary<string, string> An optional map of additional parameters to be logged with ad revenue data

Example:

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("value1", "5");
parameters.Add(AdRevenueScheme.COUNTRY, "USA");
var logRevenue = new AFAdRevenueData("monetizationNetworkEx", MediationNetwork.GoogleAdMob, "USD", 0.99);
AppsFlyer.logAdRevenue(logRevenue, parameters);

recordCrossPromoteImpression

void recordCrossPromoteImpression(string appID, string campaign);

To attribute an impression use the following API call. Make sure to use the promoted App ID as it appears within the AppsFlyer dashboard.

parameter type description
appID string appID
campaign string campaign
params Dictionary<string, string> additional params

Example:

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.recordCrossPromoteImpression("appID", "campaign", parameters);

generateUserInviteLink

void generateUserInviteLink(Dictionary<string, string> parameters, MonoBehaviour gameObject)

The LinkGenerator class builds the invite URL according to various setter methods which allow passing on additional information on the click. See - https://support.appsflyer.com/hc/en-us/articles/115004480866-User-invite-attribution-

parameter type description
parameters Dictionary<string, string>
gameObject MonoBehaviour game object with the IAppsFlyerUserInvite interface

Example:

AppsFlyer.generateUserInviteLink(params, this);

setSharingFilterForAllPartners Deprecated

void setSharingFilterForAllPartners()

Used by advertisers to exclude all networks/integrated partners from getting data.

Example:

AppsFlyer.setSharingFilterForAllPartners();

setSharingFilter Deprecated

void setSharingFilter(params string[] partners)

Used by advertisers to set some (one or more) networks/integrated partners to exclude from getting data.

parameter type description
partners params string[] partners partners to exclude from getting data

Example:

AppsFlyer.setSharingFilter("googleadwords_int","snapchat_int","doubleclick_int");

setSharingFilterForPartners

void setSharingFilterForPartners(params string[] partners)

Used by advertisers to set some (one or more) networks/integrated partners to exclude from getting data.

parameter type description
partners params string[] partners partners to exclude from getting data

Example:

AppsFlyer.setSharingFilterForPartners("partner1_int"); // Single partner
AppsFlyer.setSharingFilterForPartners("partner1_int", "partner2_int"); // Multiple partners
AppsFlyer.setSharingFilterForPartners("all"); // All partners
AppsFlyer.setSharingFilterForPartners(""); // Reset list (default)
AppsFlyer.setSharingFilterForPartners(); // Reset list (default)

setPartnerData

void setPartnerData(string partnerID, params string[] partnerInfo)

Allows sending custom data for partner integration purposes.

parameter type description
partnerID string ID of the partner (usually suffixed with "_int").
partnerInfo params string[] Customer data, depends on the integration configuration with the specific partner.

Example:

   Dictionary<string, string> partnerInfo = new Dictionary<string, string>();
        partnerInfo.Add("puid", "1234567890");
        AppsFlyer.setPartnerData("partner_test", partnerInfo);

Android Only API

updateServerUninstallToken

void updateServerUninstallToken(string token)

Manually pass the Firebase Device Token for Uninstall measurement.

parameter type description
token string Firebase FCM token

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.updateServerUninstallToken("token");
#endif

setImeiData

void setImeiData(string imei)

By default, IMEI and Android ID are not collected by the SDK if the OS version is higher than KitKat (4.4) and the device contains Google Play Services(on SDK versions 4.8.8 and below the specific app needed GPS). Use this API to explicitly send IMEI to AppsFlyer.

parameter type description
imei string device's IMEI

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setImeiData("imei");
#endif

setAndroidIdData

void setAndroidIdData(string androidId)

By default, IMEI and Android ID are not collected by the SDK if the OS version is higher than KitKat(4.4)and the device contains Google Play Services(on SDK versions 4.8.8 and below the specific app needed GPS). Use this API to explicitly send Android ID to AppsFlyer.

parameter type description
androidId string device's Android ID

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setAndroidIdData("androidId");
#endif

waitForCustomerUserId

void waitForCustomerUserId(bool wait)

It is possible to delay the SDK Initialization until the customerUserID is set. This feature makes sure that the SDK doesn't begin functioning until the customerUserID is provided. If this API is used, all in-app events and any other SDK API calls are discarded, until the customerUserID is provided.

parameter type description
wait bool True if you want the SDK to wait for customerUserID

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.waitForCustomerUserId(true);
#endif

setCustomerIdAndStartSDK

void setCustomerIdAndStartSDK(string id)

⚠️ Before calling this method, the method waitForCustomerUserId must be called

Use this API to provide the SDK with the relevant customer user id and trigger the SDK to begin its normal activity.

parameter type description
id string Customer ID for client.

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setCustomerIdStartSDK("id");
#endif

getOutOfStore

string getOutOfStore()

Get the current AF_STORE value.

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        string af_store = AppsFlyer.getOutOfStore();
#endif

setOutOfStore

void setOutOfStore(string sourceName)

Manually set the AF_STORE value.

parameter type description
sourceName string

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setOutOfStore("sourceName");
#endif

setCollectAndroidID

void setCollectAndroidID(bool isCollect)

Opt-out of collection of Android ID. If the app does NOT contain Google Play Services, Android ID is collected by the SDK. However, apps with Google play services should avoid Android ID collection as this is in violation of the Google Play policy.

parameter type description
isCollect bool

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setCollectAndroidID(true);
#endif

setCollectIMEI

void setCollectIMEI(bool isCollect)

Opt-out of collection of IMEI. If the app does NOT contain Google Play Services, device IMEI is collected by the SDK. However, apps with Google play services should avoid IMEI collection as this is in violation of the Google Play policy.

parameter type description
isCollect bool

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setCollectIMEI(true);
#endif

setIsUpdate

void setIsUpdate(bool isUpdate)

Manually set that the application was updated.

parameter type description
isUpdate bool true if app was updated

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setIsUpdate(true);
#endif

setPreinstallAttribution

void setPreinstallAttribution(string mediaSource, string campaign, string siteId)

Specify the manufacturer or media source name to which the preinstall is attributed.

parameter type description
mediaSource string Manufacturer or media source name for preinstall attribution.
campaign string Campaign name for preinstall attribution.
siteId string Site ID for preinstall attribution.

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setPreinstallAttribution("mediaSource", "campaign", "siteId");
#endif

isPreInstalledApp

bool isPreInstalledApp()

Boolean indicator for preinstall by Manufacturer.

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        if (AppsFlyer.isPreInstalledApp())
        {

        }
#endif

handlePushNotifications

void handlePushNotifications() When the handlePushNotifications API is called push notifications will be recorded.

Example:

AppsFlyer.handlePushNotifications();

getAttributionId

string getAttributionId()

Get the Facebook attribution ID, if one exists.

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        string attributionId = AppsFlyer.getAttributionId();
#endif

validateAndSendInAppPurchase-beta

void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, string> additionalParameters, MonoBehaviour gameObject)

API for server verification of in-app purchases. An af_purchase event with the relevant values will be automatically sent if the validation is successful.

parameter type description
details AFPurchaseDetailsAndroid Instance of AFPurchaseDetailsAndroid class
additionalParameters Dictionary<string, string> parameters to be sent with the purchase.
gameObject MonoBehaviour Game object for the callbacks to be sent

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AFPurchaseDetailsAndroid details = new AFPurchaseDetailsAndroid(AFPurchaseType.Subscription, 
        "token", "productId", "price", "currency");
        
        AppsFlyer.validateAndSendInAppPurchase(
        details, 
        null, 
        this);
#endif

validateAndSendInAppPurchase

void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)

API for server verification of in-app purchases. An af_purchase event with the relevant values will be automatically sent if the validation is successful.

parameter type description
publicKey string License Key obtained from the Google Play Console.
signature string data.INAPP_DATA_SIGNATURE.
purchaseData string data.INAPP_PURCHASE_DATA
price string Purchase price
currency string Site ID for preinstall attribution.
additionalParameters Dictionary<string, string> parameters to be sent with the purchase.
gameObject MonoBehaviour Game object for the callbacks to be sent

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.validateAndSendInAppPurchase(
        "publicKey", 
        "signature", 
        "purchaseData", 
        "price", 
        "currency", 
        null, 
        this);
#endif

setCollectOaid

void setCollectOaid(boolean isCollect)

setCollectOaid

You must include the appsflyer oaid library for this api to work.
parameter type description
isCollect bool true to allow oaid collection

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setCollectOaid(true);
#endif

setDisableAdvertisingIdentifiers

void setDisableAdvertisingIdentifiers(boolean disable)

setDisableAdvertisingIdentifiers

Disables collection of various Advertising IDs by the SDK. This includes Google Advertising ID (GAID), OAID and Amazon Advertising ID (AAID)
parameter type description
disable bool true to disable

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setDisableAdvertisingIdentifiers(true);
#endif


setDisableNetworkData

void setDisableNetworkData(boolean disable)

setDisableNetworkData

Use to opt-out of collecting the network operator name (carrier) and sim operator name from the device.
parameter type description
disable bool true to opt-out

Example:

#if UNITY_ANDROID && !UNITY_EDITOR
        AppsFlyer.setDisableNetworkData(true);
#endif

iOS Only API

setDisableCollectAppleAdSupport

void setDisableCollectAppleAdSupport(bool disable)

AppsFlyer SDK collects Apple's advertisingIdentifier if the AdSupport.framework is included in the SDK. You can disable this behavior by setting the following property to true.

parameter type description
disable bool

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.setDisableCollectAppleAdSupport(true);
#endif

handlePushNotifications(iOS)

void handlePushNotification(Dictionary<string, string> pushPayload) When the handlePushNotifications API is called from a service that is swizzling, like Firebase, the push notifications payload will be handled by the AppsflyerSDK.

parameter type description
pushPayload Dictionary<string, string> the push notification payload

Example:

#if UNITY_IOS && !UNITY_EDITOR
    // e.Message.Data = push notification payload
    var dataDict = new Dictionary<string, string>(e.Message.Data);
    AppsFlyeriOS.handlePushNotification(dataDict);
#endif

setShouldCollectDeviceName

void setShouldCollectDeviceName(bool shouldCollectDeviceName)

Set this flag to true, to collect the current device name(e.g. "My iPhone"). Default value is false.

parameter type description
shouldCollectDeviceName bool

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.setShouldCollectDeviceName(true);
#endif

setDisableCollectIAd

void setDisableCollectIAd(bool disableCollectIAd)

Opt-out for Apple Search Ads attributions.

parameter type description
disableCollectIAd bool
Example:
#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.setDisableCollectIAd(true);
#endif

setUseReceiptValidationSandbox

void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)

In app purchase receipt validation Apple environment(production or sandbox). The default value is false.

parameter type description
useReceiptValidationSandbox bool true if In app purchase is done with sandbox

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.setUseReceiptValidationSandbox(true);
#endif

setUseUninstallSandbox

void setUseUninstallSandbox(bool useUninstallSandbox)

Set this flag to test uninstall on Apple environment(production or sandbox). The default value is false.

parameter type description
useUninstallSandbox bool true if you are using a APN certificate

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.setUseUninstallSandbox(true);
#endif

validateAndSendInAppPurchase-beta-iOS

void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary<string, string> extraEventValues, MonoBehaviour gameObject)

To send and validate in app purchases you can call this method from the processPurchase method.

parameter type description
details AFSDKPurchaseDetailsIOS Instance of AFSDKPurchaseDetailsIOS class.
extraEventValues Dictionary<string, string> The additional param, which you want to receive it in the raw reports.
gameObject MonoBehaviour the game object for the

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AFSDKPurchaseDetailsIOS details = AFSDKPurchaseDetailsIOS.Init("productId", "price", "currency",
        "transactionId");
        AppsFlyer.validateAndSendInAppPurchase(
        details, 
        null, 
        this);
#endif

validateAndSendInAppPurchase

void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string tranactionId, Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)

To send and validate in app purchases you can call this method from the processPurchase method.

parameter type description
productIdentifier string The product identifier.
price string The product price.
currency string The product currency.
tranactionId string The purchase transaction Id.
additionalParameters Dictionary<string, string> The additional param, which you want to receive it in the raw reports.
gameObject MonoBehaviour the game object for the callbacks

Example:

#if UNITY_IOS && !UNITY_EDITOR
        AppsFlyer.validateAndSendInAppPurchase(
        "productIdentifier", 
        "price", 
        "currency", 
        "tranactionId", 
        null, 
        this);
#endif

registerUninstall

void registerUninstall(byte[] deviceToken)

Register uninstall - you should register for remote notification and provide AppsFlyer the push device token.

parameter type description
deviceToken byte[] APN token

Example:

    private bool tokenSent;

    void Update()
    {
#if UNITY_IOS && !UNITY_EDITOR
        if (!tokenSent)
        {
            byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
            if (token != null)
            {
                AppsFlyer.registerUninstall(token);
                tokenSent = true;
            }
        }
#endif
    }

handleOpenUrl

void handleOpenUrl(string url, string sourceApplication, string annotation)

In case you want to track deep linking manually call handleOpenUrl.
The continueUserActivity and onOpenURL are implemented in the AppsFlyerAppController.mm class, so 
only use this method if the other methods do not cover your apps deeplinking needs.
parameter type description
url string The URL to be passed to your AppDelegate
sourceApplication string The sourceApplication to be passed to your AppDelegate
annotation string The annotation to be passed to your app delegate

Example:

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.handleOpenUrl(string url, string sourceApplication, string annotation);
#endif

waitForATTUserAuthorizationWithTimeoutInterval

void waitForATTUserAuthorizationWithTimeoutInterval(int timeoutInterval)

See here for more info.

parameter type description
timeoutInterval int Time to wait for idfa

Example:

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
#endif

disableSKAdNetwork

bools disableSKAdNetwork(bool isDisabled)

parameter type description
isDisabled bool True to disable SKAdNetwork

Example:

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.disableSKAdNetwork(true);
#endif

setLanguage

setCurrentDeviceLanguage(string language)

parameter type description
language String The language to set

Example:

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.setCurrentDeviceLanguage("english");
#endif

disableIDFVCollection

disableIDFVCollection(bool isDisabled)

parameter type description
isDisabled bool True to disable IDFV collection

Example:

#if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.disableIDFVCollection(true);
#endif

IAppsFlyerConversionData

onConversionDataSuccess

public void onConversionDataSuccess(string conversionData)

ConversionData contains information about install.
Organic/non-organic, etc. See here for more info.

parameter type description
conversionData string JSON string of the returned conversion data

Example:

   public void onConversionDataSuccess(string conversionData)
    {
        AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
        Dictionary<string, object> conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
        // add deferred deeplink logic here
    }

onConversionDataFail

public void onConversionDataFail(string error)

parameter type description
error string A string describing the error

Example:

    public void onConversionDataFail(string error)
    {
        AppsFlyer.AFLog("onConversionDataFail", error);
    }

onAppOpenAttribution

public void onAppOpenAttribution(string attributionData)

attributionData contains information about OneLink, deeplink.

parameter type description
attributionData string JSON string of the returned deeplink data

Example:

    public void onAppOpenAttribution(string attributionData)
    {
        AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
        Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
        // add direct deeplink logic here
    }

onAppOpenAttributionFailure

public void onAppOpenAttributionFailure(string error)

Any errors that occurred during the attribution request.

parameter type description
error string string describing the error

Example:

  public void onAppOpenAttributionFailure(string error)
    {
        AppsFlyer.AFLog("onAppOpenAttributionFailure", error);
    }

IAppsFlyerUserInvite

onInviteLinkGenerated

public void onInviteLinkGenerated(string link)

The success callback for generating OneLink URLs.

parameter type description
link string generated link

Example:

   public void onInviteLinkGenerated(string link)
    {

    }

onInviteLinkGeneratedFailure

public void onInviteLinkGeneratedFailure(string error)

The error callback for generating OneLink URLs

parameter type description
error string A string describing the error

Example:

    public void onInviteLinkGeneratedFailure(string error)
    {
        AppsFlyer.AFLog("onInviteLinkGeneratedFailure", error);
    }

onOpenStoreLinkGenerated

public void onOpenStoreLinkGenerated(string link)

(ios only) iOS allows you to utilize the StoreKit component to open the App Store while remaining in the context of your app.
More details at here

parameter type description
attributionData string JSON string of the returned deeplink data

Example:

    public void onOpenStoreLinkGenerated(string link)
    {

    }

IAppsFlyerValidateReceipt

didFinishValidateReceipt

public void didFinishValidateReceipt(string result)

The success callback for validateAndSendInAppPurchase API.
For Android : the callback will return "Validate success".
For iOS : the callback will return a JSON string from apples verifyReceipt API.

parameter type description
result string validate result

Example:

   public void didFinishValidateReceipt(string link)
    {

    }

IAppsFlyerValidateAndLog

onValidateAndLogComplete

public void didFinishValidateReceipt(string result)

The success callback for validateAndSendInAppPurchase API.
The callback will return a JSON string which can be converted to dictionary.

parameter type description
result string validate result

Example:

   public void onValidateAndLogComplete(string result)
    {
        AppsFlyer.AFLog("onValidateAndLogComplete", result);
        Dictionary<string, object> validateAndLogDataDictionary = AppsFlyer.CallbackStringToDictionary(result);
    }

onValidateAndLogFailure

public void onValidateAndLogFailure(string error)

The error callback for validating receipts.
The callback will return a JSON string which can be converted to dictionary.

parameter type description
error string A string describing the error

Example:

    public void onValidateAndLogFailure(string error)
    {
         AppsFlyer.AFLog("onValidateAndLogFailure", error); 
    }

Events

onRequestResponse

public static event EventHandler OnRequestResponse

The callback for Sessions.

statusCode errorDescription
200 null
10 "Event timeout. Check 'minTimeBetweenSessions' param"
11 "Skipping event because 'isStopTracking' enabled"
40 Network error: Error description comes from Android
41 "No dev key"
50 "Status code failure" + actual response code from the server

Example:

    AppsFlyer.OnRequestResponse += (sender, args) =>
    {
        var af_args = args as AppsFlyerRequestEventArgs;
        AppsFlyer.AFLog("AppsFlyerOnRequestResponse", "status code" + af_args.statusCode);
    };

onInAppResponse

public static event EventHandler OnInAppResponse

The callback for In-App Events.

statusCode errorDescription
200 null
10 "Event timeout. Check 'minTimeBetweenSessions' param"
11 "Skipping event because 'isStopTracking' enabled"
40 Network error: Error description comes from Android
41 "No dev key"
50 "Status code failure" + actual response code from the server

Example:

    AppsFlyer.OnInAppResponse += (sender, args) =>
    {
        var af_args = args as AppsFlyerRequestEventArgs;
        AppsFlyer.AFLog("OnRequestResponse", "status code" + af_args.statusCode);
    }; 

onDeepLinkReceived

public static event EventHandler OnDeepLinkReceived

The callback for Unified Deeplink API.

Example:

    // First call init with devKey, appId and gameObject
    AppsFlyer.initSDK(devKey, appID, this);


    AppsFlyer.OnDeepLinkReceived += (sender, args) =>
    {
        var deepLinkEventArgs = args as DeepLinkEventsArgs;

        // DEEPLINK LOGIC HERE
    };