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 pressupõe que você já tem um app com o Google Analytics para Firebase implementado. Se você quiser saber como fazer a integração com o Google Analytics para Firebase, consulte este codelab primeiro. Se você quiser aprender a criar um app com o Firebase, consulte Firebase Android Codelab-Build Friendly Chat.

O que você aprenderá

  • Etapas para fazer sua primeira chamada 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 Python (ou Colab)

2. Preencher os campos obrigatórios

Criar uma chave secreta da API no GA4

Acesse o GA4 e crie a nova chave secreta da API. Para isso, acesse Administrador > Fluxos de dados > escolha seu fluxo > Measurement Protocol > Criar.

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Se você fornecer qualquer apelido, o valor do secret será exibido e poderá ser usado na sua chamada

Caso você não saiba 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 com o Google Analytics deve estar visível, e você também pode navegar diretamente de lá.

73b4d77a57eddfba.png

Coletar app_instance_id

É possível usar qualquer um dos métodos abaixo para coletar o app_instance_id.

  1. Como usar o BigQuery Export
  2. Buscando nativamente no código-fonte do aplicativo

Ambas são explicadas em detalhes abaixo

  1. Como usar o BigQuery Export

Se a exportação do BigQuery estiver ativada, 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 fica disponível somente após a ativação do botã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. Buscando nativamente no código-fonte do app

Se seu aplicativo for criado usando Java, você pode usar 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, teste 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 aplicativo iOS, use 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. Desenvolvimento da ligação

Você pode criar uma chamada de amostra usando o Criador de eventos no GA4. Para isso, você precisa fazer login e ter os cookies ativados. Verifique se o botão está definido como "firebase".

fd78d961f3e48238.png

Você precisará preencher os seguintes campos

  • api_secret: já criado no GA4
  • firebase_app_id: para fazer isso, navegue até Administrador > Fluxos de dados > escolha seu fluxo . Ele será exibido como abaixo

19801c8e5cb29222.png

  • app_instance_id: você já recuperou esse valor
  • user_id não é obrigatório. Você pode deixar o campo em branco por enquanto
  • Categoria: mude para "Personalizado" no menu suspenso e insira o nome que quiser (não use eventos coletados automaticamente). Aqui, estamos usando "test_from_codelab"

54cce53df64d697.png

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

16a8f531a3894021.png

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

475801f25c3caf26.png

Depois disso, clique em "VALIDAR EVENTO" , o botão destacado em laranja. Ela deve exibir a mensagem abaixo especificando que o evento é válido, e você verá um botão para agora "SEND TO GA". Nesse momento, se o evento aparecer como inválido, a ferramenta vai informar o campo exato onde há um problema, e você poderá corrigir isso e tentar novamente.

23e4e6800705b4aa.png.

Agora você pode clicar no botão, e ele vai enviar um evento de teste ao GA4

4. Como validar eventos no GA4

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

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 isso não aparecer nos relatórios comuns imediatamente.

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 da API e o payload do evento para criar uma arquitetura semelhante em Python (ou em qualquer linguagem de sua escolha) que pode fazer essa chamada. É possível programar isso na frequência desejada e operacionalizá-lo. Nesta parte, você pode usar qualquer ambiente de desenvolvimento integrado de sua escolha que seja compatível com Python ou apenas um bloco do Google Colab, que não requer instalação no dispositivo.

Ao consultar o Criador de eventos do GA4, você vai notar que o endpoint ficou como abaixo.

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

O payload do evento estava assim:

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

É possível converter isso para Python usando algo como:

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 executá-lo com os valores certos, o evento será refletido em tempo real no GA4 da mesma forma.

6. Parabéns

Parabéns, você usou o Measurement Protocol no GA4. Agora você pode criar arquiteturas de solução avançadas para enviar dados mais significativos ao Google Analytics e melhorar a análise de marketing e de negócios. Para aproveitar ao máximo esse recurso, sugerimos que você se conecte ao Google Ads e importe esses eventos como conversões. Consulte a etapa 6 deste codelab para conferir instruções detalhadas sobre o assunto. Para o acompanhamento de conversões, o Google Ads só exibe os dados associados ao IDFA ou aos IDs de dispositivos coletados do SDK do Firebase nos últimos 60 dias. Tenha em mente que esta ainda é uma API Alfa e verifique as limitações listadas aqui , que precisam ser resolvidas antes do lançamento completo.

Você aprendeu

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