一、简介
最后更新: 2021-06-08
你将建造什么
在此 Codelab 中,您将学习如何使用Measurement Protocol将外部事件发送到 GA4。
此 Codelab 假设您已经有一个应用程序,其中实施了 Google Analytics for Firebase。如果您想了解如何与 Google Analytics for Firebase 集成,请先参考此代码实验室。如果您想了解如何使用 Firebase 构建应用程序,请参阅Firebase Android Codelab-Build Friendly Chat 。
你会学到什么
- 拨打您的第一个 MP 电话的步骤
- 了解调用所需的参数
- 发送并验证您的测试电话
- 在 Python 中构建示例脚本以进行调用
你需要什么
- 您的 Android 或 iOS 应用程序
- 任何 IDE 进行更改
- GA4 帐户
- 可选 - Python 开发环境(或Colab )
2.收集必填字段
在 GA4 中创建 API Secret
导航至 GA4 并通过导航至管理>数据流>选择您的流> Measurement Protocol >创建来创建新的 API 密钥
你可以提供任何昵称,会显示秘密值,你可以在你的调用中使用
如果您不确定如何访问 GA4,您可以访问您的 Firebase 项目,检查项目设置 > 集成 > Google Analytics,然后点击“管理”。 Google Analytics 连接应该是可见的,您也可以直接从那里导航
收集 app_instance_id
您可以使用以下任何一种方法来收集您的 app_instance_id。
- 使用 BigQuery 导出
- 在您的应用程序源代码中本地获取
这两个都在下面详细解释
- 使用 BigQuery 导出
如果启用了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 - 要获得此信息,您可以导航至Admin > Data Streams > choose your stream 。它应该显示如下
- app_instance_id - 您已经检索到该值
- user_id 不是强制性的。你可以暂时留空
- 类别 - 从下拉列表中将其更改为“自定义”,并输入您选择的任何事件名称(不要使用任何自动收集的事件)。这里我们使用“test_from_codelab”
您还可以选择通过单击下面的按钮来提供事件参数和/或用户属性
填写完所有内容后,您应该会看到类似这样的内容,带有“验证事件”按钮
到达此位置后,单击“VALIDATE EVENT”,该按钮以橙色突出显示。它应该显示下面的消息,指定该事件是有效的,你现在应该看到一个按钮“发送到 GA”。此时,如果事件无效,该工具将告诉您出现问题的确切字段,您可以修复它并重试
您现在可以点击该按钮,它应该会向 GA4 发送一个测试事件
4. 验证 GA4 中的事件
发送事件后,您可以导航到您的 GA4 帐户并检查实时。你应该看到事件通过
事件从实时视图传播到实际事件报告选项卡可能需要大约 24 小时,因此如果您没有立即在常规事件报告中看到这一点,也无需担心!
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 呼叫