Como podemos ajudar?

Integração do Google Analytics (GA4)

  • Atualizado

Resumo: A integração da AppsFlyer com o Google Analytics (GA4) permite que os anunciantes enviem dados de atribuição e eventos in-app selecionados da AppsFlyer para o GA4. Essa integração funciona com aplicativos iOS e Android que já têm o SDK do Google Analytics para Firebase implementado.

Importante!

Essa integração funciona com aplicativos iOS e Android que já têm o SDK do Google Analytics para Firebase implementado. Para que a integração seja bem-sucedida, o SDK da AppsFlyer deve coletar o valor app_instance_id do SDK do Firebase. Veja as instruções sobre como recuperar o app instance ID do SDK do Firebase.

Como funciona?

  • Quando uma nova instalação ocorre, a AppsFlyer envia as informações do ponto de contato - fonte de mídia, nome da campanha e ID da campanha - para o GA4. Ela também envia o app_instance_id do SDK do Firebase para garantir que o ponto de contato seja registrado no GA4 para aquele usuário.
  • Quando um evento in-app ocorre, o GA4 atribuirá o evento ao último ponto de contato.

Configurar a integração do Google Analytics (GA4)

Siga as instruções abaixo para configurar a integração com o Google Analytics (GA4).

1. Selecione o Google Analytics (GA4) no Partner Marketplace

Pré-requisito: Antes de criar uma integração, certifique-se de entrar em contato com o parceiro e abrir uma conta com ele.

Para ativar a integração:

  1. Para ativar: na AppsFlyer, no menu lateral, selecione Colaborar > Partner Marketplace.Para editar: na AppsFlyer, vá para o menu lateral e selecione colaborar integrações ativas.
  2. Selecione o aplicativo correspondente.
  3. Pesquise por Google Analytics (GA4) e selecione-o.
  4. Clique em Configurar a integração.
    Observação: o botão de alternância deve permanecer ativado (ativo) enquanto você trabalhar com o Google Analytics (GA4). Saiba mais
  5. Complete a configuração utilizando as abas relevantes, conforme descrito abaixo.

A configuração do Google Analytics inclui apenas a aba Integração.

Para uma descrição detalhada do cabeçalho da janela de configuração de parceiros, clique aqui.

2. Configurar a integração do GA4 no AppsFlyer

Defina as seguintes configurações:

  1. Na aba Integração, selecione o aplicativo e ative a opção Ativar parceiro.

    Atenção: Essa opção deve permanecer ativada durante todo o tempo que você trabalhar com o parceiro.

    Para mais detalhes sobre a ativação do parceiro, clique aqui.

  2. Em Firebase App ID, insira o identificador do aplicativo no Firebase. Para saber como localizá-lo, consulte a documentação do Firebase.
  3. Em API Secret, insira o API Secret para autenticar os postbacks para o Google Analytics. Um API Secret é gerado através da interface do usuário do Google Analytics. Para visualizar, editar ou criar essa informação (secret), siga as instruções na documentação do Google. Quando instruído a selecionar um fluxo de dados da web, escolha um fluxo de dados do Android ou iOS.
  4. Ative o Customer User ID para enviar o Customer User ID (CUID) em vez do advertising ID (IDFA).
  5. Em Postbacks padrão, em para usuários de, selecione Todas as fontes de mídia, incluindo orgânicas.

     Nota

    O postback de instalação inclui apenas os detalhes do ponto de contato (fonte de mídia, nome da campanha e ID da campanha).

3. Configurar postbacks de eventos in-app

A AppsFlyer pode enviar postbacks automáticos para o GA4 após as instalações de usuários, incluindo instalações e reengajamentos (incluindo reatribuições). Os reengajamentos ocorrem quando um usuário que já tem o aplicativo instalado o abre depois de clicar em um link de campanha. Saiba mais sobre postbacks padrão.

4. Configurar postbacks de eventos in-app

Na aba Integração, mapeie os eventos in-app da AppsFlyer para os eventos do Google Analytics (GA4), enviados via postbacks.

 Nota

  • Atualmente, postbacks de eventos in-app de aplicativos mobile enviados via S2S não são compatíveis.
  • O GA4 não desduplica eventos enviados tanto do Firebase SDK quanto da AppsFlyer. Portanto, recomendamos que você configure postbacks de eventos in-app apenas para eventos que não são enviados ao GA4 via Firebase SDK.
  1. Ative os postbacks de eventos in-app.
  2. Clique em Adicionar evento para adicionar um SDK ou evento de servidor para servidor à lista. A tabela a seguir descreve os campos a serem preenchidos:

    Nome do parâmetro Descrição
    Evento AppsFlyer

    O nome do evento, conforme recebido do SDK integrado no aplicativo ou de eventos de servidor para servidor.

    Dica: não encontrou o evento que está procurando?

    • Certifique-se de ativar o evento em um dispositivo com uma instalação não orgânica e verifique novamente.
    • Digite-o em evento da AppsFlyer, depois clique em criar evento personalizado.

    Saiba mais sobre o mapeamento de eventos personalizados.

    Mapeado para o evento do parceiro

    O nome exclusivo ou ID de cada evento, conforme definido pelo parceiro. As configurações de mapeamento possíveis são:

    • Campo de texto: obtenha o ID do evento correspondente no parceiro.
    • Caixa suspensa: selecione o evento predefinido mais adequado.
    • Sem alterações: envie os eventos como eles estiverem, sem mapeamento de nomes.
    para usuários de

    Selecione a opção de envio para o evento:

    • Todas as fontes de mídia, incluindo orgânicas: Envie postbacks para eventos atribuídos a qualquer parceiro, bem como eventos orgânicos.
    incluindo
    • Sem dados (padrão): Envie apenas o evento em si, sem qualquer valor de evento.
    • Valores e receitas: envie todos os parâmetros de evento, incluindo o valor da receita (se existir no evento).
    • Valores sem receita: envie todos os parâmetros exceto o valor de receita.
  3. [Opcional] Clique no ícone Adicionar condição (condition-2.png) para definir condições para um evento.
  4. Clique em Salvar integração.
  5. Envie o mapeamento do postback para o evento
5. Enviar o mapeamento do postback ao seu desenvolvedor

Depois de configurar o mapeamento do evento in-app, envie ao seu desenvolvedor uma tabela onde cada evento mapeado corresponde a uma linha com as seguintes colunas:

  • Evento AF: nome do evento da AppsFlyer.
  • Mapeado para evento do Google: nome do evento no Google Analytics.

    Importante!

    Não use nenhum dos eventos reservados do Google como nomes para eventos personalizados do Google Analytics.

  • Parâmetros do evento AF (OBRIGATÓRIO): Parâmetros de evento pré-definidos na AppsFlyer, que devem ser incluídos no postback enviado ao Google Analytics.

    Importante!

    É obrigatório incluir todos os parâmetros pré-definidos na AF dentro da definição do evento, exatamente como eles estão listados na tabela; caso contrário, o postback será rejeitado pelo Google Analytics.

Tabela de mapeamento de eventos

A tabela a seguir inclui todos os eventos do Google Analytics e seus parâmetros pré-definidos na AppsFlyer. Envie ao seu desenvolvedor uma tabela contendo apenas os eventos que você mapeou.

Nome recomendado pela AF (Opcional) Nome do evento no Google Ads Parâmetros pré-definidos na AF (OBRIGATÓRIO)
af_add_payment_info add_payment_info af_currency, af_revenue, af_price, af_content_id, af_content
add_shipping_info af_currency, af_revenue, af_price, af_content_id, af_content
af_add_to_cart adicionar_ao_carrinho af_currency, af_revenue, af_price, af_content_id, af_content
af_add_to_wishlist add_to_wishlist af_currency, af_revenue, af_price, af_content_id, af_content
af_initiated_checkout begin_checkout af_currency, af_revenue, af_price, af_content_id, af_content
campaign_details campaign id, campaign name
af_spent_credits earn_virtual_currency af_revenue
generate_lead af_currency, af_revenue
join_group
af_level_achieved level_up
af_login Iniciar sessão
post_score af_user_score
af_compra purchase af_currency, af_revenue, af_price, af_content_id, af_content, af_receipt_id
refund af_currency, af_revenue, af_price, af_content_id, af_content, af_receipt_id
remove_from_cart af_currency, af_revenue, af_price, af_content_id, af_content
screen_view
af_search search
select_content
select_item af_price, af_content_id, af_content
select_promotion af_price, af_content_id, af_content
compartilhar
sign_up
spend_virtual_currency af_revenue
tutorial_begin
af_tutorial_completion tutorial_complete
af_achievement_unlocked Unlock_achievement af_achievement_id
view_cart af_currency, af_revenue, af_price, af_content_id, af_content
view_item af_currency, af_revenue, af_price, af_content_id, af_content
view_item_list af_price, af_content_id, af_content
view_promotion af_currency, af_revenue, af_price, af_content_id, af_content
view_search_results
af_ad_view ad_impression af_currency, af_revenue

Nomes de eventos reservados - Google

Os seguintes nomes de eventos não podem ser usados como nomes de eventos personalizados:

  • ad_activeview
  • ad_click
  • exposição_da_unidade_de_anúncio
  • consulta_do_anúncio
  • recompensa_do_anúncio
  • exposição_do_anúncio
  • limpar_dados_do_aplicativo
  • exceção_do_aplicativo
  • instalação_do_aplicativo
  • remoção_do_aplicativo
  • reembolso_da_loja_de_aplicativos
  • app_update
  • atualização_do_aplicativo
  • abertura_do_aplicativo_por_link_dinâmico
  • atualização_do_aplicativo_por_link_dinâmico
  • primeira_abertura_por_link_dinâmico
  • erro
  • campanha_firebase
  • ação_da_mensagem_no_aplicativo_firebase
  • dispensar_mensagem_no_aplicativo_firebase
  • impressão_da_mensagem_no_aplicativo_firebase
  • primeira_abertura
  • primeira_visita
  • in_app_purchase
  • dispensar_notificação
  • notificação_em_primeiro_plano
  • notification_open
  • recebimento_de_notificação
  • envio_de_notificação
  • atualização_do_sistema_operacional
  • início_da_sessão
  • engajamento_do_usuario
6. Recuperar app instance ID no SDK da AppsFlyer

O app instance ID identifica exclusivamente uma instalação específica de um aplicativo no Firebase. Esse valor precisa ser recuperado pelo SDK a partir do SDK do Firebase.

Seu desenvolvedor deve implementar o código para:

  1. Coletar o campo app_instance_id do Firebase.
  2. Chamar setAddiotionalData antes da primeira abertura para incluir o app instance ID em instalações, sessões e eventos no aplicativo.

Importante!

setAdditionalData (Android / Unity / React Native) e customData (iOS) aceitam um mapeamento de pares chave-valor. Envia app_instance_id e ga_session_id  juntos no mesmo mapeamento, para que ambos os valores sejam incluídos. Se você enviá-los em chamadas separadas setAdditionalData, a chamada posterior substituirá a anterior.

Iniciando o SDK no Android native

Kotlin

FirebaseAnalytics.getInstance(this).appInstanceId.addOnCompleteListener { task ->
   if (task.isSuccessful) {
       AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.result)
    }
}

Java

FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(task -> {
       if (task.isSuccessful()) {
           AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.getResult());
       }
  });

Referência da API: setAdditionalData

Android nativo iOS nativo UnityReact nativo

Android nativo iOS nativo UnityReact nativo

let appInstanceId = Analytics.appInstanceID()
    AppsFlyerLib.shared().customData = ["app_instance_id": appInstanceId]

Objetivo c

(void) fetchAnalyticsInstanceId {
           NSString *instanceID = [FIRAnalytics appInstanceID];
           [[AppsFlyerLib shared] setAdditionalData:@{@"app_instance_id": instanceID}];
}

Referência da API: customData

Unity
using Firebase. Analytics;
    public class AnalyticsManager : MonoBehaviour
    {
        private async void Start()
        {
           AppsFlyer.initSDK(devKey, appID, this);
           string appInstanceId = await FirebaseAnalytics. GetAnalyticsInstanceIdAsync();
           Dictionary <string, string> customData = new Dictionary<string, string>();
           customData. Add("app_instance_id", appInstanceId);
           AppsFlyer.setAdditionalData(appInstanceId);
           AppsFlyer.startSDK();
        }
}

Referência da API: setAdditionalData

React Native

Referência da API: setAdditionalData

7. Recuperar o GA4 session ID no SDK da AppsFlyer

O ga_session_id identifica exclusivamente uma sessão de um aplicativo no Firebase. Esse valor deve ser recuperado do SDK do Firebase e enviado para o GA4 usando a API setAdditionalData.

Seu desenvolvedor deve implementar o código para:

  1. Coletar o campo ga_session_id do Firebase.
  2. Chame setAdditionalData antes da primeira abertura do app para incluir o session ID.
  3. Use a chave ga_session_id ao chamar a API.

Importante!

setAdditionalData (Android / Unity / React Native) e customData (iOS) aceitam um mapeamento de pares chave-valor. Se o seu aplicativo enviar app_instance_id e ga_session_id (consulte a etapa 5), envie-os juntos no mesmo mapeamento para que ambos os valores sejam incluídos. Se você enviá-los em chamadas separadas setAdditionalData, a chamada posterior substituirá a anterior.

Iniciando o SDK no Android native

Kotlin

FirebaseAnalytics.getInstance(this).sessionId.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        AppsFlyerLib.getInstance().setAdditionalData("ga_session_id", task.result)
    }
}

Java

FirebaseAnalytics.getInstance(this).getSessionId().addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        AppsFlyerLib.getInstance().setAdditionalData("ga_session_id", task.getResult());
    }
});

Referência da API: setAdditionalData

Android nativo iOS nativo UnityReact nativo

Swift

if #available(iOS 14.0, *) {
    Analytics.sessionID { sessionID, error in
        if let sessionID = sessionID {
            AppsFlyerLib.shared().customData = ["ga_session_id": sessionID]
        }
    }
}

Objetivo-C

- (void)fetchAnalyticsSessionId {
    if (@available(iOS 14.0, *)) {
        [FIRAnalytics sessionIDWithCompletion:^(NSString * _Nullable sessionID, NSError * _Nullable error) {
            if (sessionID) {
                [[AppsFlyerLib shared] setAdditionalData:@{@"ga_session_id": sessionID}];
            }
        }];
    }
}

Referência da API: customData

Unity
using Firebase. Analytics;
using System. Threading. Tasks;
using AppsFlyerSDK;
using UnityEngine;
using System. Collections. Generic;

public class AnalyticsManager : MonoBehaviour
{
    private async void Start()
    {
        AppsFlyer.initSDK("yourDevKey", "yourAppID", this);

        // Get session ID
        string sessionId = await FirebaseAnalytics. GetSessionIdAsync();

        Dictionary<string, string> customData = new Dictionary<string, string>();
        customData. Add("ga_session_id", sessionId);
        AppsFlyer.setAdditionalData(customData);

        AppsFlyer.startSDK();
    }
}

Referência da API: setAdditionalData

8. Validar a integração do GA4

Certifique-se de que os eventos que você envia nos postbacks para o GA4 foram registrados e lidos pelo Google Analytics. Existem dois métodos que os anunciantes podem usar para visualizar seus dados:

  • Usando GA4 Explorations, você pode explorar os dados de eventos brutos com todos os parâmetros associados. Pré-requisito: o Big Query export deve ser configurado em sua propriedade
  • O relatório de eventos permite que os anunciantes vejam seus eventos de postback. O relatório pode ser encontrado em uma ou mais coleções de relatórios.

    Para mais informações sobre o relatório de eventos, consulte a documentação do Google. Por exemplo, os relatórios de eventos podem ser encontrados na coleção Life cycle ou Games reporting em Engagement > Events.

    Relatório de eventos do GA4
  • O relatório de aquisição de tráfego ajuda a entender de onde vêm os visitantes do seu site e aplicativo.

    Na coleção Life cycle, vá para Acquisition > Traffic Acquisition).

    Para mais informações sobre o relatório de aquisição de tráfego, consulte a documentação do Google.

    Relatório de aquisição de tráfego do GA4