Referencia de API

APIs

La lista de métodos disponibles para este plugin se describe a continuación.


Android and iOS APIs

initSdk

initSdk(options, success, error)

Inicializa el SDK de AppsFlyer con devKey y appID.

La clave de desarrollador es necesaria para todas las aplicaciones y el appID solo se requiere para iOS.

(también puedes transmitir el appID en Android, y será ignorado)

parametertypedescription
optionsJSONopciones de inicialización
éxitofuncióndevolución de llamada de éxito
errorfuncióndevolución de llamada de error
ConfiguraciónDescripción
Dev keyYour application devKey provided by AppsFlyer (required)
App IDApp ID (iOS only) you configured in your AppsFlyer dashboard
isDebugModo de depuración: establecido en true solo para pruebas
onInstallConversionDataListenerSet listener for GCD response (Optional. default=true)
onDeepLinkListenerSet listener for UDL response (Optional. default=false)
timeToWaitForATTUserAuthorizationWaits for request user authorization to access app-related data. please read more Here
manualStartPrevents from the SDK from sending the launch request after using appsFlyer.initSdk(...). When using this property, the apps needs to manually trigger the appsFlyer.startSdk() API to report the app launch. read more here. (Optional, default=false)

Ejemplo:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import appsFlyer from 'react-native-appsflyer';

appsFlyer.initSdk(
  {
    devKey: 'K2***********99',
    isDebug: false,
    appId: '41*****44',
    onInstallConversionDataListener: false, //Optional
    onDeepLinkListener: true, //Optional
    timeToWaitForATTUserAuthorization: 10, //for iOS 14.5
    manualStart: true, //Optional
  },
  (res) => {
    console.log(res);
  },
  (err) => {
    console.error(err);
  }
);

startSDK

startSdk()

En la versión 6.9.1 del SDK react-native-appslfyer, agregamos la opción de dividir entre la etapa de inicialización y la etapa de inicio. Solo tienes que agregar la propiedad manualStart: true al objeto init, y después llamar a appsFlyer.startSdk() cuando quieras. Si esta propiedad se establece en false o no existe, el sdk se iniciará después de llamar a appsFlyer.initSdk(...).

Ejemplo:

const option = {
  isDebug: true,
  devKey: 'UsxXxXxed',
  appId: '75xXxXxXxXx11',
  onInstallConversionDataListener: true,
  onDeepLinkListener: true,
  timeToWaitForATTUserAuthorization: 5,
  manualStart: true, // <--- for manual start.
};

appsFlyer.initSdk(
  option,
  () => {
    if (!option.manualStart) {
      console.warn('AppsFlyer SDK started!');
    } else {
      console.warn('AppsFlyer SDK init, didn\'t send launch yet');
      }
    },
      err => {
        // handle error
      },
    );
    //...
    // app flow
    //...

  appsFlyer.startSdk(); // <--- Here we send launch

logEvent

logEvent(eventName, eventValues, success, error)

Los eventos in-app brindan conocimientos sobre lo que está sucediendo en tu aplicación. Se recomienda tomarse el tiempo y definir los eventos que deseas medir para que puedas medir el ROI (Retorno de la Inversión) y el LTV (Valor del Tiempo de Vida).

El registro de eventos in-app se realiza llamando a logEvent con el nombre del evento y los parámetros de valor. Consulta la documentación sobre eventos in-app para conocer más detalles.

Nota: El nombre de un evento in-app no debe tener más de 45 caracteres. Los nombres de eventos con más de 45 caracteres no aparecen en el panel de control, sino solo en las API de raw data, Pull y Push.

parametertypedescription
eventNameCadenaEl nombre del evento
Valores del eventoJSONLos valores del evento que se envían con el evento
éxitofuncióndevolución de llamada de éxito
errorfuncióndevolución de llamada de éxito

Ejemplo:

const eventName = 'af_add_to_cart';
const eventValues = {
  af_content_id: 'id123',
  af_currency: 'USD',
  af_revenue: '2',
};

appsFlyer.logEvent(
  eventName,
  eventValues,
  (res) => {
    console.log(res);
  },
  (err) => {
    console.error(err);
  }
);

setCustomerUserId

setCustomerUserId(userId, callback)

Al configurar tu propio ID personalizado, podrás establecer referencias cruzadas entre tu propio ID exclusivo, el ID de usuario de AppsFlyer y los ID de los otros dispositivos. Este ID está disponible en los informes en CSV de AppsFlyer junto con las API de postbacks para hacer referencias cruzadas con tus ID internos.

Si deseas ver el CUID (ID de usuario de cliente) debajo de tus reportes de raw data de instalaciones, debe llamarse antes de iniciar el SDK.

Si simplemente deseas agregar un ID de usuario adicional a los reportes de raw data de eventos, entonces puedes llamarlo libremente en cualquier momento que lo necesites.

parametertypedescription
userIdCadenaID de usuario
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.setCustomerUserId('some_user_id', (res) => {
  //..
});

stop

stop(isStopped, callback)

En algunos casos extremos, tal vez quieras desactivar todas las funciones del SDK para el cumplimiento normativo legal y de privacidad. Puedes hacer esto con la API stopSDK. Una vez invocada esta API, nuestro SDK ya no se comunicará con nuestros servidores y dejará de funcionar.

Existen varios casos para que un usuario opte por la exclusión opcional. Es muy recomendable que sigas las instrucciones exactas para la situación correspondiente a tu aplicación.

En cualquier evento, se puede reactivar el SDK llamando a la misma API y pasando un valor falso.

parametertypedescription
isStoppedBooleanoTrue si se detiene el SDK (el valor predeterminado es false).
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.stop(true, (res) => {
  //...
});

setAppInviteOneLinkID

setAppInviteOneLinkID(oneLinkID, callback)

Establece el ID de OneLink que se debe usar para la API User-Invite.

El enlace que se genera para la invitación de usuario utilizará este ID de OneLink como ID de enlace base.

parametertypedescription
ID de OneLinkCadenaID de OneLink
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.setAppInviteOneLinkID('abcd', (res) => {
  //...
});

setAdditionalData

setAdditionalData(additionalData, callback)

La API setAdditionalData es necesaria para integrarse a nivel del SDK con varias plataformas de partners externos, como Segment, Adobe y Urban Airship. Usa esta API solo si el artículo de integración de la plataforma indica específicamente que se necesita la API setAdditionalData.

parametertypedescription
Datos adicionalesJSONDatos adicionales
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.setAdditionalData(
  {
    val1: 'data1',
    val2: false,
    val3: 23,
  },
  (res) => {
    //...
  }
);

setResolveDeepLinkURLs

setResolveDeepLinkURLs(urls, successC, errorC)

Set domains used by ESP when wrapping your deeplinks.

Use this API during the SDK Initialization to indicate that links from certain domains should be resolved in order to get original deeplink

For more information please refer to the documentation

parametertypedescription
urlsMatrizMatriz separada por comas de dominios ESP que requieren resolución
successCfuncióndevolución de llamada de éxito
errorCfuncióndevolución de llamada de error

Ejemplo:

appsFlyer.setResolveDeepLinkURLs(["click.esp-domain.com"],
    (res) => {
        console.log(res);
    }, (error) => {
        console.log(error);
    });

setOneLinkCustomDomains

setOneLinkCustomDomains(domains, successC, errorC)

Set Onelink custom/branded domains

Use this API during the SDK Initialization to indicate branded domains.

For more information please refer to the documentation

parametertypedescription
domainsMatrizMatriz de dominios de marca separados por comas
successCfuncióndevolución de llamada de éxito
errorCfuncióndevolución de llamada de error

Ejemplo:

appsFlyer.setOneLinkCustomDomains(["click.mybrand.com"],
    (res) => {
        console.log(res);
    }, (error) => {
        console.log(error);
    });

setCurrencyCode

setCurrencyCode(currencyCode, callback)

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.

parametertypedescription
currencyCodeCadenacurrencyCode
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.setCurrencyCode(currencyCode, () => {});

logLocation

logLocation(longitude, latitude, callback)

Registra manualmente la ubicación del usuario.

parametertypedescription
LongitudflotanteLongitud
LatitudflotanteLatitud
callbackfunciónDevoluciones de llamada de éxito/error

Ejemplo:

const latitude = -18.406655;
const longitude = 46.40625;

appsFlyer.logLocation(longitude, latitude, (err, coords) => {
  if (err) {
    console.error(err);
  } else {
    //...
  }
});

anonymizeUser

anonymizeUser(shouldAnonymize, callback)

It is possible to anonymize specific user identifiers within AppsFlyer analytics.
This complies with both the latest privacy requirements (GDPR, COPPA) and Facebook's data and privacy policies.
To anonymize an app user.

parametertypedescription
shouldAnonymizeBooleanoTrue si deseas anonimizar los datos de los usuarios (el valor predeterminado es false).
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.anonymizeUser(true, () => {});

getAppsFlyerUID

getAppsFlyerUID(callback)

El ID de dispositivo exclusivo de AppsFlyer se crea para cada nueva instalación de una aplicación. Usa el siguiente API para obtener el ID único de AppsFlyer.

parametertypedescription
callbackfunciónDevoluciones (error, appsFlyerUID)

Ejemplo:

appsFlyer.getAppsFlyerUID((err, appsFlyerUID) => {
  if (err) {
    console.error(err);
  } else {
    console.log('on getAppsFlyerUID: ' + appsFlyerUID);
  }
});

setHost

setHost(hostPrefix, hostName, successC)

Establece un host personalizado

parametertypedescription
hostPrefixCadenael prefijo del host
hostNameCadenael nombre del host
successCfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.setHost('foo', 'bar.appsflyer.com', res => console.log(res));

setUserEmails

setUserEmails(options, success, error)

Set the user emails and encrypt them.
Note: Android and iOS platforms supports only 0 (none) and 3 (SHA256) emailsCryptType.
When unsupported emailsCryptType is passed, the SDK will use the default (none).

parametertypedescription
configurationJSONconfiguración del correo electrónico
éxitofuncióndevolución de llamada de éxito
errorfuncióndevolución de llamada de error
opcióntypedescription
emailsCryptTypeintnone - 0 (default), SHA256 - 3
emailsMatrizlista de correos electrónicos separados por comas

Ejemplo:

const options = {
  // In this case iOS platform will encrypt emails usind MD5 and android with SHA256. If you want both platform to encrypt with the same method, just write 0 or 3.
  emailsCryptType: Platform.OS === 'ios' ? 2 : 3, 
  emails: ['[email protected]', '[email protected]'],
};

appsFlyer.setUserEmails(
  options,
  (res) => {
    //...
  },
  (err) => {
    console.error(err);
  }
);

generateInviteLink

generateInviteLink(parameters, success, error)

parametertypedescription
ParámetrosJSONparámetros para el enlace de invitación
éxitofuncióndevolución de llamada de éxito (enlace generado)
errorfuncióndevolución de llamada de error

Ejemplo:

appsFlyer.generateInviteLink(
 {
   channel: 'gmail',
   campaign: 'myCampaign',
   customerID: '1234',
   userParams: {
     myParam: 'newUser',
     anotherParam: 'fromWeb',
     amount: 1,
   },
 },
 (link) => {
   console.log(link);
 },
 (err) => {
   console.log(err);
 }
);

A complete list of supported parameters is available here. Custom parameters can be passed using a userParams{} nested object, as in the example above.


setSharingFilterForAllPartners

setSharingFilterForAllPartners()

Deprecated! Start from version 6.4.0 please use setSharingFilterForPartners
Used by advertisers to exclude all networks/integrated partners from getting data. Learn more here

Ejemplo:

appsFlyer.setSharingFilterForAllPartners()

setSharingFilter

setSharingFilter(partners, sucessC, errorC)

Deprecated! Start from version 6.4.0 please use setSharingFilterForPartners
Used by advertisers to exclude specified networks/integrated partners from getting data. Learn more here

parametertypedescription
partnersMatrizMatriz de partners que deben excluirse separados por comas
successCfuncióndevolución de llamada de éxito
errorCfuncióndevolución de llamada de error

Ejemplo:

let partners = ["facebook_int","googleadwords_int","snapchat_int","doubleclick_int"]
appsFlyer.setSharingFilterForAllPartners(partners,
        (res) => {
            console.log(res);
        }, (error) => {
            console.log(error);
        })

setSharingFilterForPartners

setSharingFilterForPartners(partners)

Utilizado por los anunciantes para excluir a las redes y partners integrados de la obtención de datos.

parametertypedescription
partnersMatrizMatriz de partners que deben excluirse separados por comas

Ejemplo:

appsFlyer.setSharingFilterForPartners([]);                                        // Reset list (default)
appsFlyer.setSharingFilterForPartners(null);                                      // Reset list (default)
appsFlyer.setSharingFilterForPartners(['facebook_int']);                          // Single partner
appsFlyer.setSharingFilterForPartners(['facebook_int', 'googleadwords_int']);     // Multiple partners
appsFlyer.setSharingFilterForPartners(['all']);                                   // All partners
appsFlyer.setSharingFilterForPartners(['googleadwords_int', 'all']);              // All partners

validateAndLogInAppPurchase

validateAndLogInAppPurchase(purchaseInfo, successC, errorC): Response<string>
Receipt validation is a secure mechanism whereby the payment platform (e.g. Apple or Google) validates that an in-app purchase indeed occurred as reported.
Learn more - https://support.appsflyer.com/hc/en-us/articles/207032106-Receipt-validation-for-in-app-purchases
❗Important❗ for iOS - set SandBox to true
appsFlyer.setUseReceiptValidationSandbox(true);

parametertypedescription
purchaseInfoJSONParámetros de compra in-app
successCfuncióndevolución de llamada de éxito (enlace generado)
errorCfuncióndevolución de llamada de error

Ejemplo:

let info = {
        publicKey: 'key',
        currency: 'biz',
        signature: 'sig',
        purchaseData: 'data',
        price: '123',
        productIdentifier: 'identifier',
        currency: 'USD',
        transactionId: '1000000614252747',
        additionalParameters: {'foo': 'bar'},
    };

appsFlyer.validateAndLogInAppPurchase(info, res => console.log(res), err => console.log(err));

updateServerUninstallToken

updateServerUninstallToken(token, callback)

Transmite manualmente el token del dispositivo de Firebase / GCM para la medición de desinstalaciones.

parametertypedescription
tokenCadenaToken FCM
callbackfuncióndevolución de llamada de éxito

Ejemplo:

appsFlyer.updateServerUninstallToken('token', (res) => {
  //...
});

sendPushNotificationData

sendPushNotificationData(pushPayload, ErrorCB): void
Push-notification campaigns are used to create fast re-engagements with existing users.

Learn more

For Android platform, AppsFlyer SDK uses the activity in order to process the push payload. Make sure you call this api when the app's activity is available (NOT dead state).

From version 6.6.0 we added an error callback that returns an error message.

parametertypedescription
pushPayloadJSONcarga útil de notificación push
ErrorCBfuncióndevuelve un mensaje de error cuando la carga útil no ha sido enviada

Ejemplo:

const pushPayload = {
            af:{
                c:"test_campaign",
                is_retargeting:true,
                pid:"push_provider_int",
            },
            aps:{
                alert:"Get 5000 Coins",
                badge:"37",
                sound:"default"
            }
        };
        appsFlyer.sendPushNotificationData(pushPayload, err => console.log(err));

addPushNotificationDeepLinkPath

addPushNotificationDeepLinkPath(path, SuccessCB, ErrorCB): void

Agrega un conjunto de claves, que se usan para componer la ruta de la clave para resolver el enlace profundo desde la carga útil de las notificaciones push.

parametertypedescription
pathMatrizmatriz de cadenas que corresponde a la ruta JSON del enlace profundo.
successCBfuncióndevolución de llamada de éxito
errorCBfuncióndevolución de llamada de error

Ejemplo:

let path = ['deeply', 'nested', 'deep_link'];
appsFlyer.addPushNotificationDeepLinkPath(
  path,
  res => console.log(res),
  error => console.log(error),
);

Esta llamada coincide con la siguiente estructura de carga útil:

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

appendParametersToDeepLinkingURL

appendParametersToDeepLinkingURL(contains, parameters): void

Hace coincidir las URL que contienen contains as a substring and appends query parameters to them. In case the URL does not match, parameters are not appended to it.

Note:

  1. The parameters debe incluir la clave string y el valor string value
  2. Llama a esta API antes de llamar a appsFlyer.initSDK()
  3. Debes proporcionar los siguientes parámetros:
    pid, is_retargeting se debe establecer en 'true'
parametertypedescription
contieneCadenaLa cadena para verificar la URL
ParámetrosobjetoParámetros para agregar a la URL del enlace profundo después de pasar la validación

Ejemplo:

appsFlyer.appendParametersToDeepLinkingURL('substring-of-url', {param1: 'value', pid: 'value2', is_retargeting: 'true'});

disableAdvertisingIdentifier

disableAdvertisingIdentifier(shouldDisdable): void

Disables collection of various Advertising IDs by the SDK.

Anroid: Google Advertising ID (GAID), OAID and Amazon Advertising ID (AAID)

iOS: Apple's advertisingIdentifier (IDFA)

parametertypedescription
shouldDisdableBooleanoFlag that disable/enable Advertising ID collection

Ejemplo:

appsFlyer.disableAdvertisingIdentifier(true);

enableTCFDataCollection

enableTCFDataCollection(enabled): void

instruct the SDK to collect the TCF data from the device.

parametertypedescription
enabledBooleanoenable/disable TCF data collection

Ejemplo:

appsFlyer.enableTCFDataCollection(true);

setConsentData

setConsentData(consentObject): void

When GDPR applies to the user and your app does not use a CMP compatible with TCF v2.2, use this API to provide the consent data directly to the SDK.

The AppsFlyerConsent object has 2 methods:

  1. AppsFlyerConsent.forNonGDPRUser: Indicates that GDPR doesn’t apply to the user and generates nonGDPR consent object. This method doesn’t accept any parameters.
  2. AppsFlyerConsent.forGDPRUser: create an AppsFlyerConsent object with 2 parameters:
parametertypedescription
hasConsentForDataUsageBooleanoIndicates whether the user has consented to use their data for advertising purposes
hasConsentForAdsPersonalizationBooleanoIndicates whether the user has consented to use their data for personalized advertising

Ejemplo:

import appsFlyer, {AppsFlyerConsent} from 'react-native-appsflyer';

let nonGDPRUser = AppsFlyerConsent.forNonGDPRUser();
// OR
let GDPRUser = AppsFlyerConsent.forGDPRUser(true, false);

appsFlyer.setConsentData(nonGDPRUser /**or**/ GDPRUser);

API solo para Android

setCollectAndroidID

setCollectAndroidID(isCollect, callback)

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.

parametertypedescription
isCollectBooleanobooleano de inclusión opcional
callbackfuncióndevolución de llamada de éxito

Ejemplo:

if (Platform.OS == 'android') {
appsFlyer.setCollectAndroidID(true, (res) => {
   //...
});
}

setCollectIMEI

setCollectIMEI(isCollect, callback)

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.

parametertypedescription
isCollectBooleanobooleano de inclusión opcional
callbackfuncióndevolución de llamada de éxito

Ejemplo:

if (Platform.OS == 'android') {
appsFlyer.setCollectIMEI(false, (res) => {
   //...
});
}

setDisableNetworkData setDisableNetworkData(disable)

Se utiliza para la exclusión opcional de la recopilación del nombre del operador de red (compañía) y del nombre del operador de la SIM del dispositivo.

parametertypedescription
deshabilitarBooleanoPor defecto es false.

Ejemplo:

if (Platform.OS == 'android') {
appsFlyer.setDisableNetworkData(true);
}

performOnDeepLinking

performOnDeepLinking()

Habilita la activación manual de la resolución de enlaces profundos. Este método permite que las aplicaciones que están retrasando la llamada a appsFlyer.startSdk() resuelvan los enlaces profundos antes de que se inicie el SDK.

Nota:
Esta API activará la devolución de llamada appsFlyer.onDeepLink . En el siguiente ejemplo, comprobamos si res.deepLinkStatus es igual a “FOUND” dentro de la devolución de llamada appsFlyer.onDeepLink para extraer los parámetros de enlace profundo.

Ejemplo:

// Let's say we want the resolve a deeplink and get the deeplink params when the user clicks on it but delay the actual 'start' of the sdk (not sending launch to appsflyer). 

const option = {
  isDebug: true,
  devKey: 'UsxXxXxed',
  appId: '75xXxXxXxXx11',
  onInstallConversionDataListener: true,
  onDeepLinkListener: true,
  manualStart: true, // <--- for manual start.
};

const onDeepLink = appsFlyer.onDeepLink(res => {
  if (res.deepLinkStatus == 'FOUND') {
      // here we will get the deeplink params after resolving it.
      // more flow...
  }
});

appsFlyer.initSdk(
  option,
  () => {
    if (!option.manualStart) {
      console.warn('AppsFlyer SDK started!');
    } else {
      console.warn('AppsFlyer SDK init, didn\'t send launch yet');
      }
    },
  () => {},
);

if (Platform.OS == 'android') {
  appsFlyer.performOnDeepLinking();
}

// more app flow...

appsFlyer.startSdk(); // <--- Here we send launch

API solo para iOS

disableCollectASA

disableCollectASA(shouldDisable)

Desactiva la recopilación de Apple Search Ads

parametertypedescription
shouldDisableBooleanoIndicador para deshabilitar/habilitar la recopilación de datos de Apple Search Ads

Ejemplo:

if (Platform.OS == 'ios') {
appsFlyer.disableCollectASA(true);
}

disableIDFVCollection

disableIDFVCollection(shouldDisable)

Deshabilita la recopilación del identificador de proveedor (IDFV) de la aplicación en iOS.

El valor predeterminado es false (el SDK recopilará el IDFV).

parametertypedescription
shouldDisableBooleanoIndicador para deshabilitar/habilitar la recopilación del IDFV

Ejemplo:

if (Platform.OS == 'ios') {
appsFlyer.disableIDFVCollection(true);
}

setUseReceiptValidationSandbox

void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)

Validación de recibos de compras in-app en el entorno de Apple (producción o entorno de pruebas). El valor predeterminado es false.

parametertypedescription
setUseReceiptValidationSandboxBooleanotrue si la compra in-app se realiza con entorno de pruebas

Ejemplo:

appsFlyer.setUseReceiptValidationSandbox(true);

disableSKAD

disableSKAD(disableSkad)

❗Importante❗ disableSKAD debe llamarse antes de llamar a initSDK y ¡SOLAMENTE para iOS!

parametertypedescription
disableSkadBooleanotrue si quieres desactivar SKADNetwork

Ejemplo:

if (Platform.OS == 'ios') {
    appsFlyer.disableSKAD(true);
}

setCurrentDeviceLanguage

setCurrentDeviceLanguage(language)

Establece el idioma del dispositivo. Los datos se mostrarán en los reportes de raw data

Si deseas borrar esta propiedad, establece una cadena vacía. ("")

parametertypedescription
languageCadenaidioma del dispositivo

Ejemplo:

if (Platform.OS == 'ios') {
    appsFlyer.setCurrentDeviceLanguage("EN");
}

AppsFlyerConversionData

onInstallConversionData

onInstallConversionData(callback) : function:unregister

Acceso a los datos de atribución/conversión de AppsFlyer desde el SDK (enlaces profundos diferidos).

La implementación del código para el oyente de conversión debe realizarse antes del código de inicialización del SDK.

parametertypedescription
callbackfunciónresultado de los datos de conversión

Ejemplo:

const onInstallConversionDataCanceller = appsFlyer.onInstallConversionData(
  (res) => {
    if (JSON.parse(res.data.is_first_launch) == true) {
      if (res.data.af_status === 'Non-organic') {
        var media_source = res.data.media_source;
        var campaign = res.data.campaign;
        alert('This is first launch and a Non-Organic install. Media source: ' + media_source + ' Campaign: ' + campaign);
      } else if (res.data.af_status === 'Organic') {
        alert('This is first launch and a Organic Install');
      }
    } else {
      alert('This is not first launch');
    }
  }
);

appsFlyer.initSdk(/*...*/);

Ejemplo de onInstallConversionData:

{
  "data": {
    "af_message": "organic install",
    "af_status": "Organic",
    "is_first_launch": "true"
  },
  "status": "success",
  "type": "onInstallConversionDataLoaded"
}

Note** is_first_launch will be "true" (string) on Android and true (boolean) on iOS. To solve this issue wrap is_first_launch with JSON.parse(res.data.is_first_launch) as in the example above.

appsFlyer.onInstallConversionData devuelve una función que nos permitirá llamar a NativeAppEventEmitter.remove().


onInstallConversionFailure

onInstallConversionFailure(callback) : function:unregister

parametertypedescription
callbackfunciónResultado de datos de conversión fallidos

Ejemplo:

    const onInstallGCDFailure = appsFlyer.onInstallConversionFailure(res => {
      console.log(JSON.stringify(res, null, 2));
    });

Ejemplo onInstallConversionFailure:

{
  "status": "failure",
  "type": "onInstallConversionFailure",
  "data": "DevKey is incorrect"
}

onAppOpenAttribution

onAppOpenAttribution(callback) : function:unregister

This API is related to DeepLinks. Please read more here

parametertypedescription
callbackfunciónResultado de datos onAppOpenAttribution

Ejemplo:

const onAppOpenAttributionCanceller = appsFlyer.onAppOpenAttribution((res) => {
  console.log(res);
});

appsFlyer.initSdk(/*...*/);

onAttributionFailure

onAttributionFailure(callback) : function:unregister

This API is related to DeepLinks. Please read more here

parametertypedescription
callbackfunciónError de datos onAppOpenAttribution

Ejemplo:

const onAppOpenAttributionCanceller = appsFlyer.onAttributionFailure((res) => {
  console.log(res);
});

appsFlyer.initSdk(/*...*/);

onDeepLink

onDeepLink(callback) : function:unregister

This API is related to DeepLinks. Please read more here

parametertypedescription
callbackfunciónError de datos UDL

Ejemplo:

const onDeepLinkCanceller = appsFlyer.onDeepLink(res => {
  if (res?.deepLinkStatus !== 'NOT_FOUND') {
        const DLValue = res?.data.deep_link_value;
        const mediaSrc = res?.data.media_source;
        const param1 = res?.data.af_sub1;
        console.log(JSON.stringify(res?.data, null, 2));
      }
})

appsFlyer.initSdk(/*...*/);