Integrar SDK

Aprende a inicializar e iniciar el SDK para Android.

Antes de comenzar

  • Debes instalar el SDK para Android.
  • Asegúrate de que en tu app, en el archivo build.gradle , el applicationId (en el bloque defaultConfig ) coincide con el ID de la aplicación en AppsFlyer.
  • Obtén la clave de desarrollador de AppsFlyer. Se requiere para inicializar correctamente el SDK.
  • Los códigos de este documento son implementaciones de ejemplo. Asegúrate de cambiar el <AF_DEV_KEY> y otros marcadores de posición según sea necesario.
  • Todos los pasos de este documento son obligatorios a menos que se indique lo contrario.

Inicializar el SDK para Android

Se recomienda inicializar el SDK en la clase/subclase de aplicación global. Eso es para garantizar que el SDK pueda iniciarse en cualquier escenario (por ejemplo, enlaces profundos).

Paso 1: Importar AppsFlyerLib
En tu clase de aplicación global, importa AppsFlyerLib:

import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerLib

Paso 2: Inicializar el SDK
En la aplicación global onCreate, call init con los siguientes argumentos:

AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this);
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this)
  1. El primer argumento es tu clave de desarrollador de AppsFlyer.
  2. El segundo argumento es un AppsFlyerConversionListeneranulable. Si no necesitas datos de conversión, te recomendamos pasar un null como segundo argumento. Para obtener más información, consulta Datos de conversión.
  3. El tercer argumento es el contexto de la aplicación.

Iniciar el SDK para Android

En el método onCreate de la aplicación, después de llamar a init, call start y pásalo en el Contexto de la Aplicación como primer argumento:

AppsFlyerLib.getInstance().start(this);
AppsFlyerLib.getInstance().start(this)

Deferring SDK start

OPCIONAL
Puedes diferir la inicialización del SDK llamando a start de una clase de actividad, en lugar de llamarla en la clase de aplicación.

El uso típico del inicio diferido del SDK es cuando una aplicación desea solicitar el consentimiento del usuario para recopilar datos en la Actividad Principal y llamar a start después de obtener el consentimiento del usuario.

⚠️

Aviso importante

Si la aplicación llama a start desde una actividad, debe pasar el contexto de la actividad al SDK.
Si no se pasa el contexto de la actividad, no se activará el SDK, perdiendo así los datos de atribución y los eventos in-app.

Starting with a response listener

Para recibir la confirmación de que el SDK se inició correctamente, crea un objeto AppsFlyerRequestListener y pásalo como el tercer argumento de start:

AppsFlyerLib.getInstance().start(getApplicationContext(), <YOUR_DEV_KEY>, new AppsFlyerRequestListener() {
  @Override
  public void onSuccess() {
    Log.d(LOG_TAG, "Launch sent successfully, got 200 response code from server");
  }
  
  @Override
  public void onError(int i, @NonNull String s) {
    Log.d(LOG_TAG, "Launch failed to be sent:\n" +
          "Error code: " + i + "\n"
          + "Error description: " + s);
  }
});
AppsFlyerLib.getInstance().start(this, <YOUR_DEV_KEY>, object : AppsFlyerRequestListener {
  override fun onSuccess() {
    Log.d(LOG_TAG, "Launch sent successfully")
    }
  
  override fun onError(errorCode: Int, errorDesc: String) {
    Log.d(LOG_TAG, "Launch failed to be sent:\n" +
          "Error code: " + errorCode + "\n"
          + "Error description: " + errorDesc)
    }
})
  • The onSuccess() de devolución de llamada se invoca para cada 200 respuestas a una solicitud de atribución realizada por el SDK.
  • The onError(String error) de devolución de llamada se invoca para cualquier otra respuesta y devuelve la respuesta como la cadena de error.

Ejemplo completo

El siguiente ejemplo demuestra cómo inicializar e iniciar el SDK desde la clase de aplicación.

import android.app.Application;
import com.appsflyer.AppsFlyerLib;
// ...
public class AFApplication extends Application {
    // ...
    @Override
    public void onCreate() {
        super.onCreate();
        // ...
        AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this);
        AppsFlyerLib.getInstance().start(this);
        // ...
    }
    // ...
}
import android.app.Application
import com.appsflyer.AppsFlyerLib
// ...
class AFApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        // ...
        AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this)
        AppsFlyerLib.getInstance().start(this)
        // ...
    }
    // ...
}

Enlace de Github

Cómo habilitar el modo de depuración

OPCIONAL
Puedes habilitar los registros de depuración llamando a setDebugLog:

AppsFlyerLib.getInstance().setDebugLog(true);
AppsFlyerLib.getInstance().setDebugLog(true)

📘

Nota

Para ver los registros de depuración completos, asegúrate de llamar a setDebugLog antes de invocar otros métodos SDK.

Ver ejemplo.

🚧

Advertencia

Para evitar la filtración de información confidencial, asegúrate de que los registros de depuración estén deshabilitados antes de distribuir la aplicación.

Pruebas de integración

OPCIONAL
Para obtener instrucciones detalladas sobre las pruebas de integración, consulta la guía de pruebas de integración del SDK de Android.