How can we help?

Plugin do Adobe AIR

  • Atualizado

Visão geral: integre o SDK da AppsFlyer a aplicativos iOS/Android desenvolvidos com a plataforma de desenvolvimento Adobe AIR para medir instalações, eventos in-app, canais de mídia e muito mais.

Informações do plugin

Plataformas compatíveis:

  • com o Android
  • iOS 6+

Com base em:

  • iOS AppsFlyer SDK V6.0.3
  • Android AppsFlyer SDK V5.4.1

Instalação e implementação

Instalação

Faça download do arquivo AppsFlyerAIRExtension.ane na pasta bin. Adicione o ANE ao seu projeto e verifique se a IDE está configurada para empacotá-lo.

Se o item a seguir não tiver sido adicionado automaticamente, adicione-o ao APP_NAME-app.xml:

<extensions>
  <extensionID>com.appsflyer.adobeair</extensionID>
</extensions>

 Observações para aplicativos Android

  • No dashboard da AppsFlyer, você precisará adicionar o prefixo "air." ao nome do pacote, pois ele é adicionado automaticamente pelo Air. Por exemplo - um aplicativo com o nome de pacote "com.test.android", deve definir o ID do aplicativo no dashboard da AppsFlyer como "air.com.test.android".

  • Adicione as permissões a seguir ao Android Manifest (na descrição do aplicativo 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" />
    
  • Adicione a metatag a seguir ao Android Manifest, dentro da tag application (na descrição do aplicativo APP_NAME-app.xml):

    meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

Como resultado, seu Manifest deve ficar assim:

Importante: devido a algumas limitações no ADT, após a criação do APK, faltam alguns arquivos importantes.

Para adicionar esses arquivos (com a ajuda de script automatizado ):

  1. Coloque em um único diretório de sua escolha:
  2. Execute ./af_apk_fix.sh e insira as informações solicitadas quando elas forem pedidas.

Veja o que o script está fazendo. Em caso de qualquer problema, você pode executar essas etapas manualmente:

  1. Decodifique o APK usando apktool. Isso criará a pasta nome_do_aplicativo.
    apktool d app_name.apk

  2. Faça o download do jar/aar do SDK da AppsFlyer da mesma versão usada no APK.

  3. Extraia os arquivos a- e b- do jar (renomeando o jar para zip) e coloque-os na pasta com o apk descompilado em app_name/unknown/com/appsflyer/internal

  4. Edite o apktool.yml adicionando estas linhas em unknownFiles: 

    com/appsflyer/internal/b-: '0'
    com/appsflyer/internal/a-: '0'
    


    Veja a captura de tela de exemplo a seguir.

  5. Compile o APK novamente (ele aparecerá na pasta app_name/dist ).
    apktool b app_name

  6. Assine o APK.

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myKeystore.keystore app_name/dist/app_name.apk myKey
  7. Execute zipalign no apk (para poder fazer upload para o Google Play)

    zipalign -f -v 4 app_name/dist/app_name.apk app_name/dist/zipalign_app_name.apk
  8. Verifique o zipalignment

    zipalign -c -v 4 app_name/dist/zipalign_app_name.apk
  9. Seu apk zipalign_app_name.apk está pronto para usar!

Implementação

Importe a extensão da AppsFlyer para o seu projeto:

import AppsFlyerInterface;

Crie a interface da AppsFlyer:

private static var appsFlyer:AppsFlyerInterface; 
appsFlyer = new AppsFlyerInterface();

[Opcional] Se você quiser fazer deep linking ou acessar os dados de conversão da AppsFlyer no aplicativo, registre o listener de conversão:

appsFlyer.registerConversionListener();

Defina a chave de desenvolvedor e o ID do aplicativo iOS (opcional) e inicialize o SDK:

appsFlyer.appsFlyer.init("DevKey", "iOSAppID");

Inicialize o registro de sessão (registre automaticamente inicializações do aplicativo e transições do segundo plano para o primeiro plano) com a DevKey e o ID do aplicativo iOS (opcional):

appsFlyer.start("DevKey", "iOSAppID");

Deep linking

Para receber as informações relevantes da AppsFlyer do deep link usado:

  1. Registre os seguintes listeners de eventos:
    appsFlyer.addEventListener(AppsFlyerEvent.APP_OPEN_ATTRIBUTION, eventHandler); // sucesso 
    appsFlyer.addEventListener(AppsFlyerEvent.ATTRIBUTION_FAILURE, eventHandler); // erro 
    
  2. Trate a resposta no respectivo manipulador de evento:
    private function eventHandler(event:AppsFlyerEvent):void {
    	log("Evento da AppsFlyer: " + event.type + "; \nDados: " + event.data);
    }

Deep linking diferido

Para receber os dados de conversão da instalação atual:

  1. Registre os seguintes listeners de evento:
    appsFlyer.addEventListener(AppsFlyerEvent.INSTALL_CONVERSATION_DATA_LOADED, eventHandler); // sucesso
    appsFlyer.addEventListener(AppsFlyerEvent.INSTALL_CONVERSATION_FAILED, eventHandler); //erro
    
  2. Trate a resposta no respectivo manipulador de evento:
    private function eventHandler(event:AppsFlyerEvent):void {
    	log("Evento da AppsFlyer: " + event.type + "; \nDados: " + event.data);
    }

Coleta de IMEI e ID do Android (somente Android)

Importante! Aplicativos com serviços do Google Play devem evitar a coleta de IMEI, pois isso viola a política do Google Play.

Por padrão, o IMEI e o ID do Android não são coletados pelo SDK se a versão do sistema operacional for superior ao KitKat (4.4) e o dispositivo contiver o Google Play Services.

Para enviar explicitamente esses IDs à AppsFlyer, os desenvolvedores podem usar as APIs a seguir e colocá-las antes de inicializar o SDK.

Se o aplicativo NÃO tiver o Google Play Services, o SDK coleta o IMEI e o Android ID.

Ativar/desativar a coleta de IMEI (desativada por padrão)

appsFlyer.setCollectIMEI(bool);

Definir dados de IMEI manualmente

appsFlyer.setImeiData("imeiString");

Ativar/desativar a coleta de ID do Android (desativada por padrão)

appsFlyer.setCollectAndroidID(bool);

Definir dados de ID do Android manualmente

appsFlyer.setAndroidIdData("AndroidIDString");

Referência da API

Métodos de API

YouTube video player A descrição Assinatura/exemplo

logEvent

Registra eventos in-app.
var param:String = "Deposit";
var value:String = '{"amount":10, "FTDLevel":"-"}';
appsFlyer.logEvent(param, value);
iniciar

Envie um evento de registro de sessão, independentemente do estado do aplicativo.

appsFlyer.start();
 setAppUserId

Obtenha a ID do usuário conforme usada no aplicativo. 

appsFlyer.setAppUserId("user_id_as_used_in_the_app");
 setUserEmails

Obtenha o e-mail do usuário.

appsFlyer.setUserEmails("example@example.com");
 setCurrency

Defina a moeda para registrar eventos de receita, por exemplo, USD.

appsFlyer.setCurrency("USD");
 stop

Use quando quiser desativar todos os registros do SDK devido à compliance legal e de privacidade. Após a execução desta API, nosso SDK não se comunicará mais com nossos servidores.

appsFlyer.stop();
 setDebug

Ative/desative os logs de depuração do AppsFlyer.

Importante: Não lance o aplicativo nas lojas de aplicativos com os logs de depuração ativados.

appsFlyer.setDebug(bool);

This article was translated using AI and may contain errors. For the most accurate information, please refer to the English version using the language selector.


Share article: