Visão geral: trabalhe com o desenvolvedor do seu app mobile ou de CTV para integrar e instalar o SDK em aplicativos Android ou iOS. Depois que as tarefas básicas de integração forem concluídas, seu aplicativo estará pronto para atribuição de instalação e métricas de eventos in-app.
Implementação da dev key em seu app
A AppsFlyer usa a dev key para identificar a sua conta. A dev key é obrigatória, pois ela permite que o SDK envie e recupere com segurança dados da sua conta. O seu desenvolvedor deve instalar e integrar o SDK, inserindo a dev key.
Recuperar a dev key
Antes que seu desenvolvedor possa instalar e integrar o SDK, você deve recuperar a sua dev key.
- Na AppsFlyer, no menu lateral, selecione Configurações> Configurações do aplicativo.
- Copie sua chave do desenvolvedor e envie-a para o desenvolvedor mobile.
Forneça a Dev Key ao seu desenvolvedor
Forneça a Dev Key, o App ID e o API v2 token da AppsFlyer ao seu desenvolvedor com as seguintes instruções:
- Use o assistente de integração do SDK para instalação e integração automatizadas do SDK.
- Siga as instruções passo a passo para instalar e integrar o SDK.
Onde iniciar o SDK?
Ao planejar a integração do SDK da AppsFlyer, a primeira decisão que você deve tomar é onde iniciar o SDK no fluxo de inicialização do seu app.
O princípio básico é que o SDK deve começar a enviar dados assim que possível, após a abertura do app. Isso garante que o SDK capture o evento de instalação e todos os outros eventos in-app que ocorram na sessão.
No entanto, para cumprir regulamentações de preservação de privacidade, como GDPR e CCPA, muitas vezes é necessário adiar o envio de dados para a AppsFlyer até que os usuários concordem em compartilhar suas informações.
Iniciando o SDK no Android native
SELECIONE EM QUAL CLASSE INICIAR O SDK
Selecione se deseja iniciar o SDK na classe Application
global ou na classe Activity
:
-
Iniciar o SDK na classe
Application
global: geralmente, inicializar o SDK na classe/subclasseApplication
global é uma prática recomendada, pois a classeApplication
é carregada e inicializada antes que qualquer interface do aplicativo seja exibida. Isso garante que o SDK possa ser iniciado a qualquer cenário, incluindo deep linking. -
Inicie o SDK em uma classe
Activity
(início adiado) para permitir que os usuários aceitem o compartilhamento de dados. Isso ocorre porque a obtenção do consentimento do usuário requer uma interface de usuário (IU) renderizada em uma classeActivity
.
INSTRUÇÕES PARA DESENVOLVEDORES ANDROID
- Informe o desenvolvedor sobre o seguinte:
- Em que classe -
Application
ouActivity
- iniciar o SDK? - Qual cenário de opt-in/opt-out usar?
- Em que classe -
- Envie ao seu desenvolvedor o link de referência a seguir:
Iniciar o SDK em iOS Native
ATRASAR O INÍCIO DO SDK NO IOS
Ao planejar o momento de início do SDK, é importante considerar se deve-se atrasar start
até que o usuário dê seu consentimento.
O SDK oferece o método waitForATTUserAuthorization
, que permite configurar quanto tempo o SDK deve aguardar pelo consentimento do usuário antes de enviar dados aos servidores da AppsFlyer.
Para mais informações sobre o fluxo de dados desse método e sua interação com o framework ATT no iOS, veja Como configurar o suporte para App Tracking Transparency (ATT).
INSTRUÇÕES PARA DESENVOLVEDORES IOS
Compartilhe com seu desenvolvedor as seguintes informações:
- Qual é o tempo limite, em segundos, antes do envio de dados à AppsFlyer?
- Links para desenvolvedores:
- Guia de Como iniciar o SDK do iOS para desenvolvedores e referências sobre como iniciar o SDK.
- Configurar suporte para App Tracking Transparency (ATT) para informações sobre o fluxo de dados do método e como ele interage com o framework ATT do iOS.
-
Guia de Como habilitar o suporte App Tracking Transparency (ATT) para desenvolvedores e referências para
waitForATTUserAuthorization
Iniciar o SDK no Unity
Envie ao seu desenvolvedor este artigo do Dev Hub sobre como iniciar o SDK.
Iniciar o SDK em React Native
Envie ao seu desenvolvedor este artigo do Dev Hub sobre como iniciar o SDK.
Defina a sua estratégia de proteção à privacidade
Defina como você pretende garantir a privacidade dos usuários. Por exemplo, escolha entre interromper o SDK na instalação, impedir o compartilhamento de dados com terceiros, anonimizar os dados do usuário ou desabilitar identificadores específicos.
Para mais informações sobre os diferentes métodos de proteção à privacidade disponíveis, consulte Métodos de proteção à privacidade no SDK.
Atribuição
O SDK coleta identificadores com o objetivo de garantir a atribuição. Para garantir que as instalações sejam registradas e atribuídas corretamente, analise e siga as diretrizes abaixo.
Todas as plataformas
Identificador exclusivo para instalações
Um AppsFlyer ID é criado automaticamente para cada nova instalação de um aplicativo. Nenhuma ação é necessária por parte do profissional de marketing.
Você pode usar esse identificador para realizar as seguintes ações:
- Enviar eventos in-app de servidor para servidor.
- Combine o ID da AppsFlyer com os registros do usuário em seus sistemas de back-end.
- Baixe o relatório de dados brutos de eventos in-app e use o appsflyer_id para analisar o comportamento e as jornadas do usuário.
Integre identificadores exclusivos de seu sistema de BI com a AppsFlyer
Definir seu próprio CUID no SDK da AppsFlyer permite que você cruze seu ID exclusivo com o AppsFlyer ID e outros identificadores. O CUID está disponível nos relatórios de dados brutos da AppsFlyer. Também é possível usá-lo em APIs de postback para referência cruzada com seus IDs internos.
Para saber mais sobre o CUID, consulte este artigo.
Apenas para Android
As seções a seguir descrevem considerações de atribuição para a Google Play Store ou lojas de aplicativos de terceiros.
Atribuir aplicativos publicados no Google Play
GOOGLE PLAY INSTALL REFERRER
A API Google Play Install Referrer melhora a precisão da atribuição, oferece proteção contra fraudes de instalação e permite a recuperação segura de dados de referral do Google Play (como, por exemplo, a versão do app no momento em que foi instalado pela primeira vez).
Recomendamos que forneça ao seu desenvolvedor as instruções para adicionar a Google Play Install Referrer API.
GAID
A partir do SDK V4.8.0, a AppsFlyer passou a coletar automaticamente esse identificador de dispositivo.
Atribuir apps em lojas externas
Com a AppsFlyer, você pode atribuir instalações provenientes de lojas de aplicativos de terceiros, como Amazon, Opera, GetJar, Baidu e Huawei. Isso permite que você promova seus aplicativos e alcance públicos maiores em mercados onde a Google Play Store não está disponível.
A AppsFlyer é compatível com a atribuição no contexto de lojas de aplicativos de terceiros da seguinte forma:
-
IMEI ou Android ID: O SDK não coleta automaticamente o IMEI ou Android ID. Entretanto, se houver necessidade de coletar esses identificadores (por exemplo, para apps no mercado chinês) seu desenvolvedor poderá implementar um dos seguintes tipos de coleta:
- Coleta manual: o aplicativo envia o IMEI ou Android ID para o SDK usando a API
setImeiData
ousetAndroidIdData
(veja a referência da função nas abas abaixo). O SDK envia os dados para os servidores da AppsFlyer.Consulte a referência do Android SDK para:
Consulte a referência do Unity SDK para:
- Opt-in da coleta de device ID: força o SDK a coletar o IMEI ou ID do Android usando setCollectIMEI e setCollectAndroidID (consulte a referência da função nas abas abaixo).
Consulte a referência do Android SDK para:
Consulte a referência do Unity SDK para:
Consulte a referência do React Native para:
- Coleta manual: o aplicativo envia o IMEI ou Android ID para o SDK usando a API
- OAID: OAID: atribui instalações de lojas de aplicativos externas no Android. Para mais informações, veja o guia de implementação do OAID.
- Install referrers: o SDK é compatível com a recuperação de dados de referral da Samsung Gallery e da Huawei AppGallery.
Exclusivo para iOS
As seções a seguir incluem informações importantes sobre o suporte para dispositivos iOS 14+.
Configurando o suporte da App Tracking Transparency (ATT)
CONTEXTO
A partir do iOS 14.5, a coleta do IDFA requer o consentimento do usuário. Na prática, isto significa que o acesso ao IDFA é regulado pela estrutura App Tracking Transparency (ATT). Em dispositivos iOS 14+, o SDK usa o framework da ATT para obter acesso ao IDFA do dispositivo. Para uma introdução à ATT, veja o artigo princípios da ATT.
Consulte o Dev Hub para instruções para desenvolvedores sobre como implementar a ATT.
Consulte o Dev Hub para instruções para desenvolvedores sobre como implementar a ATT.
Quando a atribuição ocorre usando IDFA, é importante que o IDFA seja enviado na primeira inicialização. Por esse motivo, o SDK fornece o método waitForATTUserAuthorization
.
Visão geral da função waitForATTUserAuthorization
Importante!
Não chame waitForATTUserAuthorization
se você não pretende invocar o prompt da ATT.
waitForATTUserAuthorization
permite que você configure por quanto tempo o SDK deve adiar e esperar pelo status da ATT antes de enviar dados aos servidores da AppsFlyer.
Quando um usuário inicia o aplicativo, o status da ATT é notDetermined. Durante o tempo de espera do waitForATTUserAuthorization
, o SDK coloca na fila o evento de abertura e os eventos in-app consecutivos na memória, assim como acontece quando eventos offline são registrados:
- Se o usuário consentir com a solicitação da ATT (coleta de IDFA):
- O SDK adiciona o IDFA a eventos em cache.
- O SDK inicia e envia eventos armazenados em cache com IDFA (sem esperar que o tempo limite termine).
- Se o usuário recusar a notificação da ATT: O SDK inicia e envia eventos armazenados em cache sem IDFA (sem esperar que o tempo limite termine).
- Se o tempo limite terminar e o status da ATT permanecer como notDetermined: o SDK inicia e envia eventos em cache sem IDFA.
Considerações
- Chamar
requestTrackingAuthorization
sem definirwaitForATTUserAuthorization
resultará no envio de aberturas e eventos sem IDFA para dispositivos com iOS 14+. - Se o usuário mover o aplicativo para o background durante o timeout:
- O temporizador pausa até que o aplicativo volte para o primeiro plano.
- Os eventos são armazenados em cache na memória.
- Se o usuário fechar o aplicativo, ele será eliminado durante o tempo limite:
- O temporizador é reiniciado na próxima abertura do aplicativo.
- Os eventos armazenados em cache são perdidos.
Personalizar o diálogo de consentimento da ATT
Você pode personalizar o prompt da ATT. Uma mensagem que indique claramente o propósito da solicitação pode ajudar a aumentar as taxas de adesão dos usuários.
Considere o seguinte ao criar sua mensagem:
- Use a linguagem que melhor explique aos usuários por que o aplicativo está pedindo o consentimento.
- Informe aos usuários sobre como os dados serão usados. Saiba mais sobre privacidade do usuário e uso de dados.
Assim que sua mensagem for concluída, forneça ao desenvolvedor o texto e as instruções de implementação.
Consulte o Dev Hub para obter instruções do desenvolvedor sobre como personalizar a caixa de diálogo de consentimento da ATT.
Consulte o Dev Hub para obter instruções do desenvolvedor sobre como personalizar a caixa de diálogo de consentimento da ATT.
Suporte para atribuição da SKAN
Atenção:
Para oferecer suporte completo à atribuição da SKAN, atualize para o iOS SDK V6.2.3+.
SKAN é uma classe usada pelo iOS para validar instalações de aplicativos impulsionadas por anunciantes. O processo de validação da instalação do app envolve o app de origem e o app anunciado.
Um aplicativo de origem é um aplicativo que participa de campanhas publicitárias exibindo anúncios de uma ad network. Configurar seu aplicativo para exibir anúncios não está dentro do escopo do SDK da AppsFlyer. Para configurar, siga as instruções da Apple.
Para o aplicativo anunciado (o aplicativo com o SDK da AppsFlyer), a solução para SKAN da AppsFlyer usa SKAN para fornecer o postback de atribuição enquanto a AppsFlyer coleta, traduz e agrega os dados, mantendo a privacidade do usuário. Quando o aplicativo é iniciado pela primeira vez, a plataforma AppsFlyer usa a configuração definida pelo profissional de marketing para instruir o SDK sobre como definir o valor de conversão SKAN.
Para usar a solução SKAN:
- O profissional de marketing deve configurar a mensuração da SKAN na AppsFlyer. O desenvolvedor não precisa realizar nenhuma ação.
- O SDK da AppsFlyer chama automaticamente as APIs necessárias da SKAN.
- Certifique-se de desativar as chamadas SKAN em outros SDKs caso dependa da AppsFlyer para atribuição SKAN.
- Não há nenhuma outra ação ou processo de registro exigido pelo desenvolvedor ou pelo profissional de marketing na App Store.
Para desativar a atribuição da SKAN, instrua o desenvolvedor a desativá-la no SDK.
Para desativar a atribuição SKAN, use disableSKAdNetwork
Para desativar a atribuição SKAN, use disableSKAdNetwork
Para desativar a atribuição SKAN, use disableSKAd
Registro de eventos in-app
Eventos in-app (IAE) oferecem insights sobre o que está acontecendo em seu aplicativo. O registro de eventos in-app ajuda a mensurar KPIs como ROI (retorno sobre o investimento) e LTV (Lifetime Value). Recomendamos que você separe um momento para definir os eventos que deseja gravar.
Depois de definir os eventos in-app que você deseja mensurar, envie os nomes e parâmetros dos eventos para o desenvolvedor, incluindo um link para:
- O assistente de instalação do SDK que oferece uma explicação específica para eventos in-app.
- As instruções passo a passo de implementação de eventos in-app no SDK.
Para aprender a configurar eventos in-app e enviá-los ao seu desenvolvedor, veja nosso guia de eventos in-app avançados.
Todas as plataformas
Registrar receita
É possível enviar receita com qualquer evento in-app. Certifique-se de usar o parâmetro af_revenue para incluir a receita. É o único parâmetro de evento que a AppsFlyer conta como receita real no dashboard e nos relatórios de dados brutos. Saiba mais.
Para instruções sobre como configurar eventos de receita, veja aqui.
Para instruções sobre como configurar eventos de receita, veja aqui.
- Para instruções para desenvolvedores sobre eventos in-app em geral, veja aqui.
- Para instruções específicas sobre receita no iOS e Android, consulte as abas Android e iOS.
Validar compras dentro do aplicativo
O SDK da AppsFlyer oferece verificação do servidor para compras in-app. A validação da compra in-app envia automaticamente um evento de compra in-app à AppsFlyer. O envio manual desse evento cria relatórios de eventos duplicados.
Verticais da indústria
Veja nossa lista de eventos in-app recomendados por vertical, por exemplo, viagens, jogos ou eCommerce.
Deep linking com o OneLink
OneLink é a solução da AppsFlyer para atribuição multiplataforma, redirecionamento e deep linking.
Todas as plataformas
Detecção e redirecionamento de dispositivos
Para usuários sem o aplicativo instalado, o OneLink detecta o tipo de dispositivo e o redireciona para o destino correto (por exemplo, Google Play, Apple App Store, loja de aplicativos de terceiros ou página da web). Isso se baseia nas configurações do template do OneLink. Saiba mais
Deep linking
Para usuários com o aplicativo instalado, o OneLink abre o aplicativo. Além de abrir o aplicativo, você também pode fazer um deep link com usuários para uma atividade ou página específica dentro do aplicativo. Isso exige que seu desenvolvedor implemente Unified Deep Linking (UDL) usando:
- O assistente de instalação do SDK que oferece uma explicação detalhada para a implementação de deep linking, ou
- O passo a passo da implementação do SDK para deep linking unificado.
Atenção:
- O UDL requer o SDK V6.1+.
- Os clientes que já usam o OneLink para deep linking podem estar usando o método legado em vez do UDL.
Consulte nosso guia sobre como configurar deep links e deferred deep linking.
Deferred deep linking
Para usuários sem o aplicativo instalado, o OneLink detecta o tipo de dispositivo e os redireciona para o destino correto: Google Play, Apple App Store, lojas externas ou página na web. Depois que o usuário iniciar o aplicativo, você poderá usar deferred deep linking para redirecioná-los para uma atividade ou página específica dentro do aplicativo.
Isso exige que seu desenvolvedor implemente deferred deep linking usando:
- O assistente de instalação do SDK que oferece uma explicação detalhada para a implementação de deep linking, ou
- O passo a passo da implementação do SDK para deferred deep linking.
Atenção:
- O UDL requer o SDK V6.1+.
- Os clientes que já usam o OneLink para deferred deep linking podem estar usando o método legado em vez do UDL.
Consulte nosso guia sobre como configurar deep linking e deferred deep linking.
Acessando dados de atribuição e deep linking
A tabela a seguir descreve os métodos disponíveis para a recuperação de dados de atribuição e deep linking:
Método | Quem está envolvido? | Retorno dos resultados | Método de obtenção | Dados de atribuição | Dados de deep linking | Disponibilidade |
---|---|---|---|---|---|---|
Push API | • Profissional de marketing • Desenvolvedor de back-end | Normalmente em minutos | Back-end | S | N | Premium |
Pull API | • Profissional de marketing • Desenvolvedor de back-end | • Periódico (não em tempo real). • Você pode agendar downloads de relatórios de dados brutos. | Back-end | S | S | Premium para relatórios de dados brutos |
Data Locker | • Profissional de marketing • Desenvolvedor de back-end | Os relatórios por hora estão disponíveis dentro de 1 a 3 horas | Armazenamento na nuvem disponível através das seguintes opções: • Bucket da AppsFlyer na AWS • Armazenamento próprio (AWS ou GCS) | S | S | Premium |
Obtenção de dados de conversão (GCD) | • Profissional de marketing • Desenvolvedor mobile Consulte a documentação para desenvolvedor | Até 5 segundos | SDK | S | S | Todas as contas |
Unified Deep Linking (UDL) | • Profissional de marketing • Desenvolvedor mobile Consulte a documentação para desenvolvedor | Até 1 segundo | SDK | N | S | Todas as contas |
Observe o seguinte para usuários que não deram o consentimento no iOS 14.5+:
- Ao usar UDL para mídias pagas e próprias, os dados de deep linking estão disponíveis.
- Ao usar o GCD para mídias pagas, os dados são limitados e não incluem detalhes de atribuição e deep linking.
Dica
Recomendamos o seguinte:
- Use a Push API para recuperar dados de atribuição e enviá-los para seus servidores para processamento posterior. Esse método aguarda que os dados se tornem disponíveis e, portanto, é muito preciso e próximo do tempo real. O GCD fornece dados em tempo real, mas pode apresentar imprecisões quando as decisões finais de atribuição são efetuadas após mais de cinco segundos.
- Use a Pull API para complementar periodicamente (por exemplo, diariamente) dados de atribuição em tempo real e para compensar quaisquer erros de comunicação que possam ocorrer.
Testar a integração do SDK
Assim que a integração do SDK for concluída, você poderá acessar o painel da AppsFlyer e, na página Testes de integração do SDK, testar instalações orgânicas e não orgânicas, eventos in-app e deep linking (retargeting). Isso garante que as instalações e os eventos in-app sejam registrados e atribuídos corretamente.
Para cenários e instruções de teste, consulte Teste de integração do SDK.
Atenção: ao realizar testes de atribuição, registre um dispositivo de teste (Android ou iOS) para garantir que cada instalação seja registrada como uma nova instalação. Um dispositivo de teste registrado impede que as instalações sejam registradas como reinstalações.