Integración

Puedes inicializar el plugin usando el AppsFlyerObject prefab o manualmente.

Uso de AppsFlyerObject.prefab

  1. Ve a Assets > AppsFlyer y arrastra AppsFlyerObject.prefab a tu escena.


  2. Actualiza los siguientes campos:
ConfiguraciónDescripción
Dev keyClave de desarrollador de AppsFlyer, a la que se puede acceder desde el panel de control de AppsFlyer.
App IDTu ID de aplicación de iTunes. (Si tu aplicación no es para iOS, deja el campo vacío)
Obtener datos de conversiónEstablece esto en true si tu aplicación está usando AppsFlyer para enlaces profundos.
isDebugEstablece esto en true para ver los registros de depuración. (¡solo para el desarrollo!)
  1. Actualiza el código en Assets > AppsFlyer > AppsFlyerObjectScript.cs con otra API disponible.

Integración manual

Crea un objeto de juego y agrega el siguiente código de inicio:

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour
{
  void Start()
  {
    AppsFlyer.initSDK("devkey", "appID");
    AppsFlyer.startSDK();
  }
}

Nota:

  • Asegúrate de no eliminar el objeto de juego.
  • Use DontDestroyOnLoad para mantener el objeto al cargar una nueva escena.

Recopilar el IDFA con ATTrackingManager

  1. Agrega AppTrackingTransparency a tu proyecto de xcode.

  2. En el Info.plist:

    1. Agrega una entrada a la lista: presiona + junto a Information Property List.
    2. Desplázate hacia abajo y selecciona Privacy - Tracking Usage Description.
    3. Agrega como valor el texto que quieras presentarle al usuario al solicitar permiso para recopilar el IDFA.
  3. Llama a la API waitForATTUserAuthorizationWithTimeoutInterval antes de startSDK()

    #if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
    #endif
    
  4. Solicita la autorización de tracking donde desees mostrar el aviso:

    Puedes usar el siguiente paquete o cualquier otro paquete que te permita solicitar la autorización de tracking.

    
    using Unity.Advertisement.IosSupport;
    
    /*  ... */
    
    if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() 
         == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
        {
            ATTrackingStatusBinding.RequestAuthorizationTracking();
        }
     /*  ... */
    

Enviar el postback de SKAN a AppsFlyer

Para registrar el punto de conexión de AppsFlyer, es necesario agregar la clave NSAdvertisingAttributionReportEndpoint a tu info.plist y establecer el valor en https://appsflyer-skadnetwork.com/.
Para más información sobre cómo actualizar la info.plist, consulta aquí.


Inicialización MacOS

  1. Utilizar el prefab AppsFlyerObject
  2. Agrega tu id de aplicación MacOS
  3. Construye para la plataforma PC, Mac & Linux Standelone y elige MacOS como plataforma de destino.

Agentes de escucha de solicitudes (opcional)

  1. Adjunta el 'AppsFlyer.cs' al objeto del juego con el código init de AppsFlyer. (AppsFlyerObject, etc.)
  2. Agrega el siguiente código antes de startSDK()

Ejemplo de respuesta a las sesiones:

    void Start()
    {
        AppsFlyer.OnRequestResponse += AppsFlyerOnRequestResponse;
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }

    void AppsFlyerOnRequestResponse(object sender, EventArgs e)
    {
        var args = e as AppsFlyerRequestEventArgs;
        AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + args.statusCode);
    }

Ejemplo de respuesta in-app:

    void Start()
    {
        AppsFlyer.OnInAppResponse += (sender, args) =>
        {
            var af_args = args as AppsFlyerRequestEventArgs;
            AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + af_args.statusCode);
        };
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }


statusCodeerrorDescription
200null
10"Event timeout. Check 'minTimeBetweenSessions' param" ("Tiempo de espera del evento agotado. Comprueba el parámetro 'minTimeBetweenSessions'")
11"Skipping event because 'isStopTracking' enabled" ("Se omite el evento porque 'isStopTracking' está activado")
40Network error: Error description comes from Android (Error de red: la descripción del error viene de Android)
41"No dev key" ("No hay clave de desarrollador")
50"Status code failure" + actual response code from the server ("Fallo del código de estado" + código de respuesta real del servidor)