使用 Measurement Protocol 将应用事件发送到 GA4

一、简介

最后更新时间: 2021-06-08

您将构建什么

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

本 Codelab 假设您已经有一个应用了 Google Analytics for Firebase。如果您想了解如何与 Google Analytics for Firebase 集成,请先参考此 Codelab 。如果您想了解如何使用 Firebase 构建应用,请参阅Firebase Android Codelab-Build Friendly Chat

你会学到什么

  • 拨打您的第一个 MP 电话的步骤
  • 了解调用所需的参数
  • 发送并验证您的测试电话
  • 在 Python 中构建示例脚本以进行调用

你需要什么

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

2. 收集必填字段

在 GA4 中创建 API Secret

导航到 GA4 并通过导航到管理>数据流>选择您的流>测量协议>创建来创建新的 API 密钥

8dee89e850ae90bb.png

d0be19d8112435a2.png

de5a80a1445d3a14.png

您可以提供任何昵称,并将显示秘密值,您可以在通话中使用

如果您不确定如何访问 GA4,可以访问您的 Firebase 项目,检查项目设置 > 集成 > Google Analytics,然后单击“管理”。谷歌分析连接应该是可见的,你也可以直接从那里导航

f0feed0557420678.png

收集 app_instance_id

您可以使用以下任何一种方法来收集您的 app_instance_id。

  1. 使用 BigQuery 导出
  2. 在您的应用程序源代码中本地获取

这两个都在下面详细解释

  1. 使用 BigQuery 导出

如果您启用了BigQuery 导出,则可以按照以下步骤操作

  • 登录 Firebase
  • 导航到项目设置 > 集成 > BigQuery
  • 点击数据集附近的“在 BigQuery 中查看”

注意:数据集只有在启用切换大约 24-48 小时后才可用

1dc4e93dee33316f.png

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

aa6d384e380a11e8.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 App,你可以在 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”

15440faa9ca6a1f1.png

您需要填写以下字段

  • api_secret - 早先已在 GA4 上创建
  • firebase_app_id - 为此,您可以导航到Admin > Data Streams >选择您的流。它应该显示如下

71174b16f86ff03e.png

  • app_instance_id - 您已经检索到此值
  • user_id 不是强制性的。您可以暂时将其留空
  • 类别 - 从下拉列表中将其更改为“自定义”,并输入您选择的任何事件名称(不要使用任何自动收集的事件)。这里我们使用“test_from_codelab”

cf580a708bb0a8a2.png

或者,您还可以通过单击下面的按钮来选择提供事件参数和/或用户属性

da59bb982f6f906a.png

填写完所有内容后,您应该会看到类似这样的内容,并带有一个“验证事件”按钮

39676ab485d17dc0.png

到达此位置后,单击“验证事件”,该按钮以橙色突出显示。它应该显示下面的消息,指定事件是有效的,你会看到一个按钮现在“SEND TO GA”。此时,如果事件无效,该工具将告诉您存在问题的确切字段,您可以修复该问题并重试

1d63d1e067c46294.png

您现在可以单击该按钮,它应该向 GA4 发送一个测试事件

4. 在 GA4 中验证事件

发送事件后,您可以导航到您的 GA4 帐户并检查实时。你应该看到事件通过

7b9e9a0f74b64757.png

事件从实时视图传播到实际事件报告选项卡可能需要大约 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,并将这些事件作为转化导入。您可以参考此代码实验室中的第 6 步以获取详细说明。出于转化跟踪目的,Google Ads 只会显示过去 60 天内从 Firebase SDK 收集的与 IDFA 或设备 ID 相关联的数据。请记住,这仍然是一个 alpha API,并确保通过此处列出的限制,这些限制应在完全启动之前解决

你学会了

  • 如何收集正确的变量以进行 MP 调用
  • 如何发送和验证测试事件
  • 如何构建脚本来发送 MP 呼叫