Integração do Google Analytics (GA4)

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 ou editar 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. Pesquise por Google Analytics (GA4) e selecione-o.
  3. Clique em Configurar a integração. Você será redirecionado para a página de configuração da integração.

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.

    Atenção:

    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

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

Atenção:

  • 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

4. 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 add_to_cart 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 login  
  post_score af_user_score
af_purchase 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
  share  
  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
  • ad_exposure
  • ad_query
  • ad_reward
  • adunit_exposure
  • app_clear_data
  • app_exception
  • app_install
  • app_remove
  • app_store_refund
  • app_update
  • app_upgrade
  • dynamic_link_app_open
  • dynamic_link_app_update
  • dynamic_link_first_open
  • error
  • firebase_campaign
  • firebase_in_app_message_action
  • firebase_in_app_message_dismiss
  • firebase_in_app_message_impression
  • first_open
  • first_visit
  • in_app_purchase
  • notification_dismiss
  • notification_foreground
  • notification_open
  • notification_receive
  • notification_send
  • os_update
  • session_start
  • user_engagement

5. 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.
Android native iOS native Unity React 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());
       }
  });

API reference: setAdditionalData

iOS native


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

 

Objective C


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

API reference: customData


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();
        }
}

API reference: setAdditionalData

API reference: setAdditionalData

6. 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.
Android native iOS native Unity

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());
    }
});

API reference: setAdditionalData

Swift


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

 

Objective-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}];
            }
        }];
    }
}

API reference: customData


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();
    }
}

API reference: setAdditionalData

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