使用 Measurement Protocol 向 GA4 发送应用事件

1.简介

上次更新时间:2021 年 6 月 8 日

构建内容

在此 Codelab 中,您将学习如何使用 Measurement Protocol 将外部事件发送到 GA4。

本 Codelab 假定您已实现了 Google Analytics for Firebase 的应用。如果您想了解如何与 Google Analytics for Firebase 集成,请先参阅此 Codelab。如果您想了解如何使用 Firebase 构建应用,请参阅 Firebase Android Codelab 友好聊天

学习内容

  • 首次发起 MP 通话的步骤
  • 了解调用所需的参数
  • 发送和验证测试通话
  • 在 Python 中构建一个示例脚本以进行调用

所需条件

  • 您的 Android 或 iOS 应用
  • 可通过任何 IDE 进行更改
  • GA4 账号
  • 可选 - Python 开发环境(或 Colab

2. 收集必填字段

在 GA4 中创建 API 密钥

前往 GA4 并前往管理 > 创建新的 API 密钥数据流 >选择直播 >Measurement Protocol创建

6e4afca63054d291.png

c9e9ccd2ffba98eb

e714cd969fca4a4d

您可以提供任何别名,系统会显示 Secret 值,您可以在调用中使用该值

如果您不确定如何访问 GA4,可以访问您的 Firebase 项目,依次选择“项目设置”>“集成”>“Google Analytics”,然后点击“管理”。Google Analytics 关联应该会显示,您也可以直接从该处进行导航

73b4d77a57eddfba.png

收集 app_instance_id

您可以使用以下任一方法收集 app_instance_id。

  1. 使用 BigQuery Export
  2. 在应用源代码中以原生方式提取

下文对这两种类型的操作进行了详细介绍

  1. 使用 BigQuery Export

如果您启用了 BigQuery Export ,可以按照以下步骤操作:

  • 登录 Firebase
  • 前往“项目设置”>集成 >BigQuery
  • 点击数据集旁边的“在 BigQuery 中查看”

注意:只有在该切换开关处于启用状态大约 24-48 小时后,数据集才会可用

63d061088b622961.png

  • 在 BigQuery 中,您可以在表中查找 user_pseudo_id。这是您可以在通话中使用的 app_instance_id

4b1b80bdc2884581.png

  1. 在应用源代码中原生提取

如果您的应用是使用 Java 构建的,您可以使用类似以下代码检索 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();
            }
        }
    });

对于 Kotlin,您可以尝试以下方法

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

如果您有 iOS 应用,可以在 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
*/

以下是更多链接,具体取决于您的基础架构

3. 构建调用

您可以使用 GA4 中的事件构建器构建示例调用。(您需要登录并启用 Cookie)。确保将切换开关设置为“firebase”

fd78d961f3e48238.png

您需要填写以下字段

  • api_secret - 之前已在 GA4 上创建
  • firebase_app_id - 如需获取此 ID,您可以依次前往管理 > 数据流 > 选择您的数据流。它应如下所示

19801c8e5cb29222

  • app_instance_id - 您已检索此值
  • user_id 不是必需的。您可以暂时将其留空
  • 类别 - 从下拉菜单中将其更改为“自定义”,然后输入您选择的任何事件名称(请勿使用任何自动收集的事件)。在这里,我们将使用“test_from_codelab”

54cce53df64d697

您还可以选择点击以下按钮,以提供事件参数和/或用户属性

16a8f531a3894021

填写完所有信息后,您应该会看到如下内容,其中包含用于“验证活动”的按钮

475801f25c3caf26

进入该页面后,点击突出显示的橙色按钮“验证事件”。它应该在下方显示消息,指明该事件是有效的,并且您现在应该会看到一个用于“SEND TO GA”(发送到 GA)的按钮。此时,如果事件显示为无效,该工具会告知您存在问题的确切字段,您可以修正该问题并重试

23e4e6800705b4aa

现在,您可以点击该按钮,系统应该会向 GA4 发送测试事件

4. 验证 GA4 中的事件

发送事件后,您可以前往 GA4 账号并查看“实时”部分。您应该会看到该事件

994b51ca46bb1973

事件从实时视图传播到实际事件报告标签页可能需要大约 24 小时,因此如果您没有立即在常规事件报告中看到这些事件,也无需担心!

如果您遇到问题或差异,不妨查看Measurement Protocol 的已知限制(点击此处)

5. 构建 Python 脚本

现在,您已经完成了测试,接下来可以检查 API 调用和事件载荷,以便使用 Python(或您选择的任何语言)构建可进行此调用的类似架构。然后,您可以按所需的频率安排此操作,并将其投入使用。对于本部分,您可以使用您选择的任何支持 Python 的 IDE,也可以使用 Google Colab 笔记本,无需在设备上进行任何安装

返回 GA4 Event Builder,您会看到端点如下所示

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

事件载荷如下所示

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

您可以使用如下所示的代码将其转换为 Python 代码。

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)

使用正确的值执行此操作后,您应该会在 GA4 中实时看到该事件。

6. 恭喜

恭喜,您已成功在 GA4 中使用 Measurement Protocol。现在,您可以构建强大的解决方案架构,将更有意义的数据发送到 Google Analytics,并改进营销和业务分析。为了充分利用这些数据,我们还建议您关联 Google Ads,并将这些事件作为转化数据导入。如需详细了解相关操作,请参阅此 Codelab 中的第 6 步。为了进行转化跟踪,Google Ads 将仅显示与过去 60 天内从 Firebase SDK 收集的 IDFA 或设备 ID 关联的数据。请注意,这仍是一个 Alpha 版 API,请务必查看此处列出的限制,并在正式发布前解决这些限制

您学到的内容

  • 如何收集合适的变量来进行 MP 调用
  • 如何发送和验证测试事件
  • 如何构建脚本来发送 MP 调用