1. 简介
上次更新日期:2021 年 6 月 8 日
构建内容
在此 Codelab 中,您将学习如何使用 Measurement Protocol 向 GA4 发送外部事件。
此 Codelab 假定您已实现 Google Analytics for Firebase 的应用。如果您想了解如何与 Google Analytics for Firebase 集成,请先参阅此 Codelab。如果您想了解如何使用 Firebase 构建应用,请参阅 Firebase Android Codelab - 构建 Friendly Chat。
学习内容
- 发出首次 MP 调用所需的步骤
- 了解进行调用所需的参数
- 发送并验证测试调用
- 在 Python 中构建一个示例脚本来发起调用
所需条件
- 您的 Android 或 iOS 应用
- 用于进行更改的任何 IDE
- GA4 账号
- 可选 - Python 开发环境(或 Colab)
2. 收集必填字段
在 GA4 中创建 API 密钥
前往 GA4,然后依次点击管理 > 数据流 > 选择您的数据流 > Measurement Protocol > 创建,以创建新的 API 密钥
您可以提供任意昵称,系统会显示密文值,您可以在通话中使用该密文值
如果您不确定如何访问 GA4,可以访问您的 Firebase 项目,依次点击“项目设置”>“集成”>“Google Analytics”,然后点击“管理”。Google Analytics 关联应会显示,您也可以直接从此处进行导航
收集 app_instance_id
您可以使用以下任一方法来收集 app_instance_id。
- 使用 BigQuery Export
- 在应用源代码中以原生方式提取
下文将详细介绍这两种情况
- 使用 BigQuery Export
如果您已启用 BigQuery 导出 ,可以按照以下步骤操作
- 登录 Firebase
- 依次前往“项目设置”>“集成”>“BigQuery”
- 点击数据集附近的“在 BigQuery 中查看”
注意:只有在切换开关启用约 24-48 小时后,数据集才会可用
- 在 BigQuery 中,您可以检查表格中是否存在 user_pseudo_id。这是您可以在调用中使用的 app_instance_id
- 在应用源代码中以原生方式提取
如果您的应用是使用 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”
您需要填写以下字段
- api_secret - 之前已在 GA4 中创建
- firebase_app_id - 如需获取此 ID,您可以依次前往管理 > 数据流 > 选择您的数据流。应显示如下
- app_instance_id - 您已检索到此值
- user_id 不是强制性参数。您可以暂时将其留空
- 类别 - 从下拉菜单中将此项更改为“自定义”,然后输入您选择的任意事件名称(请勿使用任何自动收集的事件)。这里使用的是“test_from_codelab”
您还可以选择点击下方的按钮来提供事件参数和/或用户属性
填写完所有内容后,您应该会看到类似如下所示的内容,其中包含一个用于“验证事件”的按钮
到达此页面后,点击以橙色突出显示的“验证活动”按钮。它应显示以下消息,指明该事件有效,并且您应看到一个“发送到 Google Analytics”按钮。此时,如果该事件显示为无效,该工具会告知您存在问题的确切字段,您可以修复该问题并重试
现在,您可以点击该按钮,它应该会向 GA4 发送测试事件
4. 验证 GA4 中的事件
发送事件后,您可以前往 GA4 账号并查看实时报告。您应该会看到相应活动
事件从实时视图传播到实际的事件报告标签页可能需要大约 24 小时,因此如果您没有立即在常规事件报告中看到此内容,请不必担心!
如果您遇到问题或发现数据不一致,不妨点击此处查看 Measurement Protocol 的已知限制
5. 构建 Python 脚本
现在,您已经测试过该 API,接下来可以检查 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 调用的脚本