Enviar eventos do app para o GA4 usando o Measurement Protocol

1. Introdução

Última atualização:08/06/2021

O que você vai criar

Neste codelab, você vai aprender a enviar eventos externos ao GA4 usando o Measurement Protocol.

Este codelab presume que você já tenha um app com o Google Analytics para Firebase implementado. Para saber como fazer a integração com o Google Analytics para Firebase, consulte primeiro este codelab. Se você quiser saber como criar um app com o Firebase, consulte Firebase Android Codelab: criação de chat fácil de usar.

O que você aprenderá

  • Etapas para fazer sua primeira ligação de MP
  • Entender os parâmetros necessários para a chamada
  • Enviar e validar sua chamada de teste
  • Criar um script de exemplo em Python para fazer a chamada

O que é necessário

  • Seu app Android ou iOS
  • Qualquer ambiente de desenvolvimento integrado para fazer mudanças
  • Conta do GA4
  • Opcional: ambiente de desenvolvimento em Python (ou Colab)

2. Coletar os campos obrigatórios

Criar uma chave secreta da API no GA4

Acesse o GA4 e crie a nova chave secreta da API em Administrador > Fluxos de dados > escolha seu fluxo > Measurement Protocol > Criar

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Você pode fornecer qualquer apelido, e o valor do secret será exibido, que você pode usar na chamada.

Se você não sabe como acessar o GA4, acesse seu projeto do Firebase, verifique "Configurações do projeto > Integrações > Google Analytics" e clique em "Gerenciar". A conexão do Google Analytics deve estar visível, e você também pode navegar diretamente de lá.

73b4d77a57eddfba.png

Coletar app_instance_id

Você pode usar qualquer um dos métodos abaixo para coletar o app_instance_id.

  1. Como usar o BigQuery Export
  2. Como fazer buscas nativas no código-fonte do app

Ambas são explicadas em detalhes abaixo

  1. Como usar o BigQuery Export

Se o BigQuery Export estiver ativado, siga as etapas abaixo.

  • Fazer login no Firebase
  • Acesse Configurações do projeto > Integrações > BigQuery.
  • Clique em "Ver no BigQuery" próximo ao conjunto de dados.

Observação : o conjunto de dados só fica disponível após a ativação por cerca de 24 a 48 horas.

63d061088b622961.png

  • No BigQuery, você pode verificar user_pseudo_id na tabela. Esse é o app_instance_id que você pode usar na chamada

4b1b80bdc2884581.png

  1. Como buscar nativamente no código-fonte do seu app

Se seu app for criado com Java, use algo assim para recuperar o app_instance_id

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

Para Kotlin, tente o seguinte:

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

Se você tiver um app para iOS, poderá usar o seguinte no Swift

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

Confira abaixo mais links dependendo da sua infraestrutura

3. Criação da chamada

Você pode criar um exemplo de chamada usando o Criador de eventos no GA4. (Isso exige que você faça login e que os cookies estejam ativados). Verificar se a opção está definida como "firebase"

fd78d961f3e48238.png

Você deve preencher os seguintes campos

  • api_secret: já criado anteriormente no GA4
  • firebase_app_id: acesse Administrador > Fluxos de dados > escolha seu fluxo . Ele deve ser exibido conforme abaixo

19801c8e5cb29222.png

  • app_instance_id: você já recuperou esse valor
  • user_id não é obrigatório. Você pode deixar esse campo em branco por enquanto
  • Categoria: altere para "Personalizado" no menu suspenso e dê um nome ao evento de sua escolha (não use eventos coletados automaticamente). Aqui, estamos usando "test_from_codelab".

54cce53df64d697.png

Também é possível informar parâmetros de evento e/ou propriedades do usuário clicando nos botões abaixo

16a8f531a3894021.png

Depois de preencher tudo, você vai ver algo parecido com isto, com um botão para "Validar evento"

475801f25c3caf26.png

Depois, clique em "VALIDAR EVENTO" , o botão destacado em laranja. Ela vai exibir a mensagem abaixo, especificando que o evento é válido, e você verá um botão para agora "ENVIAR PARA GA". Nesse ponto, se o evento aparecer como inválido, a ferramenta informará o campo exato em que há um problema, e você poderá corrigi-lo e tentar novamente

23e4e6800705b4aa.png

Agora você pode clicar no botão, e um evento de teste vai ser enviado para o GA4.

4. Como validar eventos no GA4

Depois de enviar o evento, acesse sua conta do GA4 e confira o Relatório de tempo real. Você verá o evento

994b51ca46bb1973.png

Pode levar cerca de 24 horas para que os eventos sejam propagados da visualização em tempo real para a guia "Relatórios de eventos". Portanto, não se preocupe se essa informação não aparecer imediatamente nos relatórios de eventos normais.

Se você estiver enfrentando problemas ou discrepâncias, pode ser útil conferir as limitações conhecidas do Measurement Protocol aqui.

5. Como criar um script Python

Agora que você o testou, pode examinar a chamada de API e o payload do evento para criar uma arquitetura semelhante em Python (ou em qualquer linguagem de sua escolha) que possa fazer essa chamada. É possível programar isso na frequência desejada e operacionalizar. Para esta parte, você pode usar qualquer ambiente de desenvolvimento integrado de sua escolha que seja compatível com Python ou usar apenas um bloco do Google Colab, que não exige nenhuma instalação no dispositivo

Com base no Criador de eventos do GA4, o endpoint é o seguinte:

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

O payload do evento era como abaixo

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

Você pode traduzir isso para Python usando algo assim:

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

Depois de usar os valores certos, o evento vai aparecer em tempo real no GA4.

6. Parabéns

Parabéns! Você usou o Measurement Protocol no GA4. Agora você pode criar arquiteturas de soluções avançadas para enviar dados mais significativos ao Google Analytics e melhorar suas análises de negócios e de marketing. Para aproveitar isso ao máximo, sugerimos que você se conecte ao Google Ads e importe esses eventos como conversões. Consulte a etapa 6 neste codelab para instruções detalhadas. Para fins de acompanhamento de conversões, o Google Ads só mostra dados associados ao IDFA ou aos IDs de dispositivo coletados pelo SDK do Firebase nos últimos 60 dias. Tenha em mente que essa ainda é uma API alfa e não deixe de passar pelas limitações listadas aqui , que devem ser tratadas antes do lançamento completo.

Você aprendeu

  • Como coletar as variáveis corretas para fazer chamadas de MP
  • Como enviar e validar eventos de teste
  • Como criar um script para enviar chamadas MP