En resumen: Integra el SDK de AppsFlyer en aplicaciones iOS/Android desarrolladas con la plataforma de desarrollo Adobe AIR para medir las instalaciones, los eventos in-app, las fuentes de medios y más.
Información del plugin
Plataformas compatibles:
- Android
- iOS 6+
Basado en:
- iOS AppsFlyer SDK V6.0.3
- SDK para Android de AppsFlyer V5.4.1
Instalación e implementación
Instalación
Descarga el archivo AppsFlyerAIRExtension.ane de la carpeta bin. Añade el ANE a tu proyecto y asegúrate de que el IDE esté marcado para empaquetarlo.
Si lo siguiente no se ha añadido automáticamente, añádelo a APP_NAME-app.xml:
<extensions>
<extensionID>com.appsflyer.adobeair</extensionID>
</extensions>
Notas para aplicaciones Android
-
En el Dashboard de AppsFlyer, tendrás que añadir el prefijo "air." al nombre del paquete, ya que Air lo añade automáticamente. For example - una aplicación con el nombre de paquete "com.test.android", debe configurar el ID de la aplicación en el Dashboard de AppsFlyer como "air.com.test.android".
-
Añade los siguientes permisos al Android Manifest (en la descripción de la aplicación
APP_NAME-app.xml):<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" /> - Añade la siguiente etiqueta meta al Android Manifest dentro de la etiqueta de la aplicación (en la descripción de la aplicación
APP_NAME-app.xml):
meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Como resultado, tu Manifest debería verse así:
Importante: Debido a algunas limitaciones de ADT, después de compilar el APK faltan algunos archivos importantes.
Para añadir esos archivos (con la ayuda de un script automatizado ):
- Coloca en un único directorio de tu elección:
- Archivo APK
- Keystore que se usó para firmar el APK
- script af_apk_fix.sh
- Ejecuta
./af_apk_fix.she introduce la información solicitada cuando se te pida.
Esto es lo que hace el script. En caso de que haya algún problema, puedes realizar estos pasos manualmente:
-
Decodifica el APK con apktool. Esto creará la carpeta app_name.
apktool d app_name.apk -
Descarga el jar/aar del SDK de AppsFlyer de la misma versión que se usó en el APK.
-
Extrae los archivos
a-yb-del jar (renombrando el jar como un zip) y colócalos en la carpeta del apk descompilado, enapp_name/unknown/com/appsflyer/internal -
Edita
apktool.ymlañadiendo estas líneas debajo deunknownFiles:com/appsflyer/internal/b-: '0' com/appsflyer/internal/a-: '0'
Mira la captura de pantalla de ejemplo que aparece a continuación. -
Compila de nuevo el APK (aparecerá en la carpeta
app_name/dist).apktool b app -
Firma el APK.
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myKeystore.keystore app_name/dist/app_name.apk myKey -
Zipalign el apk (para poder subirlo a Google Play)
zipalign -f -v 4 app_name/dist/app_name.apk app_name/dist/zipalign_app_name.apk -
Verifica la alineación con zipalign
zipalign -c -v 4 app_name/dist/zipalign_app_name.apk -
¡Tu apk
zipalign_app_name.apkestá lista para usar!
Implementación
Importa la extensión de AppsFlyer a tu proyecto:
import AppsFlyerInterface;
Crea la interfaz de AppsFlyer:
private static var appsFlyer:AppsFlyerInterface;
appsFlyer = new AppsFlyerInterface();
[Opcional] Si quieres realizar Deep Linking o acceder a los datos de conversión de AppsFlyer desde la aplicación, registra el detector de conversiones:
appsFlyer.registerConversionListener();
Configura la clave de desarrollador y el ID de la app de iOS (opcional) e inicializa el SDK:
appsFlyer.appsFlyer.init("DevKey", "iOSAppID");
Inicializa el registro de sesiones (registra automáticamente los inicios de la aplicación y las transiciones de segundo plano a primer plano) con la DevKey y el ID de la aplicación iOS (opcional):
appsFlyer.start("DevKey", "iOSAppID");
Enlaces profundos
Para recibir la información relevante de AppsFlyer del enlace profundo utilizado:
- Registra los siguientes слушadores de eventos:
appsFlyer.addEventListener(AppsFlyerEvent.APP_OPEN_ATTRIBUTION, eventHandler); // success \nappsFlyer.addEventListener(AppsFlyerEvent.ATTRIBUTION_FAILURE, eventHandler); // error - Gestiona la respuesta en un controlador de eventos correspondiente:
private function eventHandler(event:AppsFlyerEvent):void { log("Evento de AppsFlyer: " + event.type + "; \nDatos: " + event.data); }
Enlaces profundos diferidos
Para recibir los datos de conversión de la instalación actual:
- Registra los siguientes слушadores de eventos:
appsFlyer.addEventListener(AppsFlyerEvent.INSTALL_CONVERSATION_DATA_LOADED, eventHandler); // success\nappsFlyer.addEventListener(AppsFlyerEvent.INSTALL_CONVERSATION_FAILED, eventHandler); // error - Gestiona la respuesta en un controlador de eventos correspondiente:
private function eventHandler(event:AppsFlyerEvent):void { log("Evento de AppsFlyer: " + event.type + "; \nDatos: " + event.data); }
Recopilación de IMEI e ID de Android (solo Android)
Importante! Las aplicaciones con servicios de Google Play deberían evitar la recopilación del IMEI, ya que esto viola la política de Google Play.
De manera predeterminada, el SDK no recopila el IMEI ni el ID de Android si la versión del sistema operativo es superior a KitKat (4.4) y el dispositivo contiene servicios de Google Play.
Para enviar explícitamente estos ID a AppsFlyer, los desarrolladores pueden usar las siguientes API y colocarlas antes de inicializar el SDK.
Si la aplicación NO contiene Google Play Services, el SDK recopila el IMEI y el ID de Android.
Activar/desactivar la recopilación de IMEI (desactivada de forma predeterminada)
appsFlyer.setCollectIMEI(bool);
Configurar manualmente los datos de IMEI
appsFlyer.setImeiData("imeiString");
Activar/desactivar la recopilación del ID de Android (desactivada de forma predeterminada)
appsFlyer.setCollectAndroidID(bool);
Configurar manualmente los datos del ID de Android
appsFlyer.setAndroidIdData("AndroidIDString");
Referencia de API
Métodos API
| Nombre | Nota | Firma/ejemplo |
|---|---|---|
|
logEvent |
Registra eventos in-app. |
|
| comenzar |
Envía un evento de registro de sesión, independientemente del estado de la app. |
|
| setAppUserId |
Obtiene el ID del usuario tal como se usa en la aplicación. |
|
| setUserEmails |
Obtiene el correo electrónico del usuario. |
|
| setCurrency |
Establece la moneda para registrar eventos de ingresos, por ejemplo, USD. |
|
| detener |
Se usa cuando quieres desactivar todo el registro del SDK por motivos de cumplimiento legal y de privacidad. Una vez que se invoca esta API, nuestro SDK deja de comunicarse con nuestros servidores. |
|
| setDebug |
Activa o desactiva los registros de depuración de AppsFlyer. Importante: Do not publiques la app en tiendas de aplicaciones con los registros de depuración habilitados. |
|
This article was translated automatically and may contain errors. The English version is the most accurate - use the language selector below to switch.