Integração do SDK da AppsFlyer - Android

Versão atual: 4.3.8

NOTA: Houve uma grande alteração da versão anterior para a versão SDK e é muito importante que você leia com atenção este documento que para certificar-se de que está ciente de todas as mudanças. Para mais detalhes sobre a migração de 4.3.8 V.3.3.x para clique aqui.

O SDK da AppsFlyer fornece a funcionalidade para a instalação do aplicativo e o rastreamento de eventos. Nós desenvolvemos um SDK que é altamente robusto (mais de 7 bilhões de instalações de SDK até hoje), seguro, leve e muito simples de inserir.

Você pode rastrear instalações, atualizações e sessões (seguindo os passos obrigatórios abaixo), e também rastrear eventos in-app adicionais, além de instalações de app (incluindo compras in-app, níveis de jogo, etc.) para avaliar o ROI e os níveis de participação do usuário.

Os passos obrigatórios são detalhados nas seções 2 e 3 abaixo, seguidos de recursos opcionais extras na seção 4.

O SDK da AppsFlyer para Android é compatível com Android 2.3 e superior.

Abordamos as seguintes seções neste guia:

Fazer Download do SDK para Android

Para fazer download do Android SDK jar, clique aqui.

Para obter detalhes do aplicativo de exemplo da AppsFlyer, clique aqui.

1.  O que há de novo nesta versão?

  • Correções de bugs e manutenção.

2.  Incorporar o SDK em seu aplicativo (Obrigatório)

Os passos a seguir são obrigatórios para medir as instalações e sessões.

Você pode integrar o SDK AppsFlyer usando automaticamente o Gradle's Dependency Management ou manualmente como um SDK.jar.

2.1 Adicione o SDK da AppsFlyer a seu projeto

A maneira mais simples de integrar o SDK em seu projeto é Gradle's Dependency Management.

Adicionando AppsFlyer Android SKD Dependency:

  1. Abra o seu projeto (ou crie um novo projeto), e abra your_app | build.gradle
  2. Adicione isto para Nível de Modulo /app/build.gradlebefore dependencies:

Informação sobre a versão pode ser encontrada aqui.

Agora você pode importar em seu projeto AppsFlyer SDK e integrá-lo conforme descrito neste guia.

Se você não estiver usando Gradle, baixe e adicione o AppsFlyer Android SKD ao classpath do projeto

2.2 Defina as permissões necessárias

O AndroidManifest deve incluir as seguintes permissões:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

* A permissão READ_PHONE_STATE é opcional.

A adição desta permissão permite o rastreamento do IMEI da operadora (necessário para rastreamento fora do Google Play).

2.3 Configure um Install Referrer Broadcast Receiver no AndroidManifest.xml

Os apps do Android não podem ter vários receptores com a mesma ação intent-filtered.  

AppsFlyer oferece uma solução que transmite o INSTALL_REFERRER a todos os outros receptores automaticamente. No AndroidManifest.xml, adicione o seguinte receptor como o PRIMEIRO receptor para INSTALL_REFERRER, e certifique-se de que a tag do receptor está dentro da tag do aplicativo:

<receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true">
  <intent-filter>
     <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>

Se você quiser usar vários receptores, o Manifest.xml deve aparecer como segue:

<!—The AppsFlyer Install Receiver is first and will broadcast to all receivers placed below it -->
<receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true">
  <intent-filter>
     <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>
<!—All other receivers should follow right after -->     
<receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
 <intent-filter>
      <action android:name="com.android.vending.INSTALL_REFERRER" />
 </intent-filter>
</receiver>
<receiver android:name="com.admob.android.ads.analytics.InstallReceiver" android:exported="true">
      <intent-filter>
          <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
</receiver>

Para obter mais informações sobre como adicionar um receptor adicional para acessar dados de instalação do app desde o contexto de seu aplicativo, clique aqui.

2.4 Insira o Google Play Services no seu App

AppsFlyer pode rastrear o Google Advertising ID para melhorar o rastreamento.

Coletar o Google Advertising ID (GAID) é essencial para o rastreamento de várias campanhas através de canais incluindo Facebook, Google e Twitter.

Para adicionar o Google Advertising ID:

  1. Instale o SDL do Google Play Services e importe-o para seu projeto. Para obter os detalhes de download, clique aqui.
  2. Adicione a seguinte entrada ao AndroidManifest.xml como a última entrada sob o aplicativo (antes de </application>):
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

NOTA: AppsFlyer usa a biblioteca do Google Play Services para recuperar o Google Advertising ID.

Embora a biblioteca forneça serviços adicionais, se você usar ProGuard como parte de seu processo de construção, ele tem uma marca sutil. Nós usamos somente os pacotes de anúncios (ads) do Google Services. Se você desejar otimizar o tamanho do seu projeto, pode excluir outros pacotes.

Para mais detalhes, consulte https://developers.google.com/android/guides/setup.

Fonte: https://developer.android.com/google/play-services/setup.html

3.  Evento de instalação e inicialização do SDK (requisito mínimo para rastreamento)

NOTA: Este é o requisito mínimo para começar a rastrear as instalações de seu app.

Para inicializar o SDK, adicione o seguinte código à função onCreate:

AppsFlyerLib.getInstance().init(this,"[Dev_Key]");

Substitua [Dev_Key] com seu próprio Dev_Key (acessível em sua conta, vejaSettings >> Integrate the SDK into... no painel da AppsFlyer).

 

Esta API permite que AppsFlyer detecte instalações, sessões e atualizações.

NOTA IMPORTANTE:  

O sendTracking() foi removido já que AppsFlyer agora reconhece o foreground e o background automaticamente.  

4.  API de rastreamento de eventos in-App (opcional)

Esta API permite que AppsFlyer rastreie eventos pós-instalação. Esses eventos são definidos pelo anunciante e incluem um nome de evento, além de valores de evento opcionais.

O rastreamento de eventos in-apps ajuda a medir e analisar como os usuários leais descobrem seu app e a atribui-los a campanhas/fontes de mídia específicas. É aconselhável investir tempo e definir os eventos que você deseja medir para permitir que você rastreie o ROI (retorno sobre o investimento) e o LTV (valor da vida).

Sintaxe:

public static void trackEvent(Context context, String eventName, Map eventValues)

contexto - use getApplicationContext()

eventName é qualquer string para definir o nome do evento.

eventValues é um mapa de parâmetros de evento que compõem um evento rico.  

Contando receitas como parte de um evento in-app rico: Use af_revenue (constante)

AFInAppEventParameterName.REVENUE

parâmetro de evento para contar receitas como parte de um evento in-app. Você pode preenchê-lo com qualquer valor numérico, positivo ou negativo.

NOTA: af_price

AFInAppEventParameterName.PRICE

não se conta como receita e é um parâmetro descritivo que não afeta as receitas e as medições de LTV.

Exemplo 1: evento in-app de nível alcançado

Map<String, Object> eventValue = new HashMap<String, Object>();

eventValue.put(AFInAppEventParameterName.LEVEL,9);
eventValue.put(AFInAppEventParameterName.SCORE,100);
AppsFlyerLib.getInstance().trackEvent(content,AFInAppEventType.LEVEL_ACHIEVED,eventValue);

Isto gera um evento do tipo af_level_achieved com os seguintes valores de evento:

{af_level: 9, af_score: 100}

Exemplo 2: evento de compra

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"USD");
AppsFlyerLib.getInstance().trackEvent(content,AFInAppEventType.PURCHASE,eventValue);

Isto gera um evento do tipo af_purchase com os seguintes valores de evento:

{af_content_id: “1234567”, af_content_type: “category_a”, af_revenue: 200, af_currency: “USD”}

O evento de compra acima contém uma receita de $ 200, aparecendo como receita no painel.

NOTA: um nome de evento in-app não deve ter mais que 45 caracteres.  Nomes de eventos com mais de 45 caracteres não aparecem no painel, mas apenas nos Dados não processados, APIs Pull e Push.

Para obter detalhes dos eventos AppsFlye Rich in-app para Android, clique aqui.

5.  Integração avançada

As APIs abaixo são opcionais e fazem parte da integração avançada com o SDK da AppsFlyer.

5.1 Defina o código de moeda (opcional)

Você pode definir um código de moeda global, usando a API abaixo, além de códigos de moeda específicos que podem ser usados como parte de cada evento in-app enviado para AppsFlyer. O código de moeda global é usado quando af_currency

AFInAppEventParameterName.CURRENCY

não é enviado como parte de um evento in-app.

USD é o valor padrão. Você pode encontrar códigos de moeda ISO aceitáveis aqui.

Use a seguinte API para definir o código da moeda:

AppsFlyerLib.getInstance().setCurrencyCode("GBP");

5.2 Obtenha o ID Único da AppsFlyer (opcional)

Um ID único patenteado da AppsFlyer é criada para cada nova instalação de um aplicativo. O ID único da AppsFlyer é a ID principal usada pela AppsFlyer em Relatórios e APIs.

Use a seguinte API para obter a ID exclusiva da AppsFlyer:

String appsFlyerId = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

5.3 Defina o ID de usuário cliente (opcional)

Definir sua própria ID de cliente lhe permite fazer uma referência cruzada a seu próprio ID único com o ID único da AppsFlyer e os IDs de outros dispositivos. Este ID está disponível nos relatórios CSV da AppsFlyer junto com APIs Postback para referência cruzada com seus IDs internos.

Para definir seu ID de usuário cliente:

AppsFlyerLib.getInstance().setCustomerUserId("myId");

NOTA IMPORTANTE:

  • Recomenda-se definir seu ID de usuário cliente quanto antes possível, já que só é associado a eventos relatados após a definição desse atributo.
  • Você deve definir o ID de usuário cliente utilizando esta API para usar integrações da AppsFlyer com plataformas de Analytics como Mixpanel e Swrve.

5.4 Obtenha dados de conversão (opcional)

AppsFlyer permite que você acesse os dados de atribuição de usuário em tempo real diretamente no nível de SDK. Isto lhe permite personalizar a página inicial que um usuário vê na primeira abertura do app depois de uma instalação atualizada do mesmo.

Para obter mais informações sobre esta funcionalidade avançada, leia aqui.

5.5 Defina o e-mail do usuário (opcional)

AppsFlyer lhe permite informar um ou mais endereços de e-mail associados ao dispositivo. Você deve coletar os endereços de e-mail e informá-los à AppsFlyer de acordo com seu método de criptografia requerido.

Os métodos de criptografia a seguir estão disponíveis: SHA1, MD5 e plain.

Exemplo:

AppsFlyerLib.getInstance().setUserEmails(AppsFlyerProperties.EmailsCryptType.MD5, "email1@domain.com","email2@domain.com", ….);

5.6 Como informar Deeplinks para atribuição de retargeting (opcional)

Para suportar deeplinking para várias atividades, adicione a seguinte linha no OnCreate():

AppsFlyerLib.getInstance().sendDeepLinkData(this);

5.7 Validação de compra in-app (opcional)

O SDK da AppsFlyer fornece verificação de servidor para compras in‐app. Para definir o rastreamento de validação, chame o método validateAndTrackInAppPurchase dentro da função onActivityResult.

Esta chamada automaticamente gera um evento in‐app af_purchase.

public static void validateAndTrackInAppPurchase(Context context,
String publicKey, String signature, String purchaseData, String price,
String currency, HashMap<String, String> additionalParameters);

Esta chamada tem dois blocos callback, um para 'Sucesso' e outro para 'Falha' (por qualquer motivo, incluindo falha na validação).

AppsFlyerLib.getInstance().registerValidatorListener(this,new AppsFlyerInAppPurchaseValidatorListener() {
          public void onValidateInApp() {
              Log.d(TAG, "Purchase validated successfully");
          }
          public void onValidateInAppFailure(String error) {
              Log.d(TAG, "onValidateInAppFailure called: " + error);
          }
      });

5.8 Exclusão de usuário final (opcional)

AppsFlyer fornece um método para excluir usuários específicos de analíticas da AppsFlyer. Este método está em conformidade com os mais recentes requisitos de privacidade e cumpre as políticas de privacidade e dados do Facebook. O padrão é NÃO, significando que o rastreamento está habilitado por padrão.

Use esta API durante a inicialização do SDK na seção 4 para a opção explícita de exclusão:

AppsFlyerLib.getInstance().setDeviceTrackingDisabled(true);

5.9 Rastreie as instalações do app fora do Google Play (opcional)

Nota Importante: O Google Play é a loja padrão. Se você estiver publicando seu app apenas no Google Play, ignore esta seção.

Para rastrear instalações fora do Google Play, defina o canal/loja no appAndroidManifest.xml com um único canal ou qualquer nome de loja para cada APK. O valor do CANAL diferencia maiúsculas de minúsculas.

Exemplos:

Amazon:

<meta-data android:name="CHANNEL" android:value="Amazon" />

Standalone:

<meta-data android:name="CHANNEL" android:value="Standalone"/>

Verizon (pré-instalado):

<meta-data android:name="CHANNEL" android:value="Verizon" />

NOTA: deve definir o valor do CANAL no painel da AppsFlyer ao configurar o app.

Coloque o meta-data tag antes da tag </application>.

Para obter mais detalhes sobre como rastrear instalações para apps fora da loja, leia aqui.

5.10 Rastreie a desinstalação do app

AppsFlyer lhe permite que você rastreie as desinstalações do app.  

Adicione as seguintes permissões para o manifesto. (Apps usando notificações push já poderá ter essas permissões)

Adicione o seguinte receptor antes da tag </ application>:

Defina o GCM Número Projeto em sua atividade principal: Imediatamente adicione esta linha antes da chamada para o startTracking ():

Para completar este processo totalmente e corretamente, você deve ler aqui.

Para obter mais informações sobre esta funcionalidade avançada, leia aqui.

5.11 Implementação deeplinking Com Onelink (Opcional)

Onelink desencadeia um aplicativo para abrir no local por deeplink Mencionando o esquema sob o parâmetro af_dp.

Você deve implementar a onAppOpenAttribution callback chamado pelo AppsFlyer SDK. Ele retorna os parâmetros utilizados para acionar Onelink o aplicativo aberto. Em seguida, você pode analisar os valores e aplicar a lógica para acionar a página relevante app.

6.  Como testar a integração do SDK

Para aprender a testar a integração do SDK antes de enviá-la à loja Google Play clique aqui, depois de enviá-la à loja de Google Play clique aqui

Experimente o novo Android Test App (beta) para o SDK do Andro versão 4.3.6 e superior, aqui.

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0