使用 Measurement Protocol 將應用程式事件傳送至 GA4

1. 簡介

上次更新時間:2021 年 6 月 8 日

建構項目

在本程式碼研究室中,您將瞭解如何使用 Measurement Protocol 將外部事件傳送至 GA4。

本程式碼研究室假設您已導入 Google Analytics for Firebase 的應用程式。如要瞭解如何整合 Google Analytics for Firebase,請先參閱這個程式碼研究室。如要瞭解如何使用 Firebase 建構應用程式,請參閱 Firebase Android Codelab - 建構 Friendly Chat

課程內容

  • 初次傳送 Measurement Protocol 呼叫的步驟
  • 瞭解用於呼叫的必要參數
  • 傳送及驗證測試呼叫
  • 在 Python 中建構範例指令碼來發出呼叫

軟硬體需求

  • Android 或 iOS 應用程式
  • 任何可進行變更的 IDE
  • GA4 帳戶
  • 選用 - Python 開發環境 (或 Colab)

2. 收集必填欄位

在 GA4 中建立 API 密鑰

前往 Google Analytics 4,依序點選「管理」 >「資料串流」 >「選擇所需串流」 >「Measurement Protocol」 >「建立」,即可建立新的 API 密鑰。

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

您可以提供任何暱稱,系統會顯示密鑰值,供您在通話中使用

如果不確定如何存取 Google Analytics 4,請前往 Firebase 專案,依序點選「專案設定」>「整合」>「Google Analytics」,然後按一下「管理」。您應該會看到 Google Analytics 連結,並可直接從該處前往

73b4d77a57eddfba.png

收集 app_instance_id

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

  1. 使用 BigQuery Export
  2. 在應用程式原始碼中以原生方式擷取

以下將詳細說明這兩種作業類型。

  1. 使用 BigQuery Export

如果已啟用 BigQuery 匯出 功能,請按照下列步驟操作

  • 登入 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. 建構 Call

您可以使用 GA4 中的事件建立工具建構範例呼叫。(需要登入帳戶並啟用 Cookie)。確認切換鈕設為「firebase」

fd78d961f3e48238.png

您需要填寫下列欄位

  • api_secret - 先前已在 GA4 中建立
  • firebase_app_id - 如要取得這個 ID,請依序前往「管理」 >「資料串流」 >「選擇所需串流」。應如下所示

19801c8e5cb29222.png

  • app_instance_id - 您已擷取這個值
  • user_id 不是必填欄位。目前可以留空
  • 類別 - 從下拉式選單將此項變更為「自訂」,然後輸入您選擇的任何事件名稱 (請勿使用任何自動收集事件)。這裡我們使用「test_from_codelab」

54cce53df64d697.png

您也可以點選下方按鈕,選擇提供事件參數和/或使用者屬性

16a8f531a3894021.png

填寫完畢後,您應該會看到類似下方的畫面,並顯示「驗證事件」按鈕

475801f25c3caf26.png

到達這個步驟後,請按一下以橘色醒目顯示的「驗證事件」按鈕。畫面應會顯示以下訊息,指出事件有效,並顯示「傳送至 Google Analytics」按鈕。此時,如果事件顯示為無效,工具會指出有問題的確切欄位,您可以修正該欄位並重試

23e4e6800705b4aa.png

現在您可以點選按鈕,系統應會將測試事件傳送至 GA4

4. 在 GA4 中驗證事件

傳送事件後,您可以前往 GA4 帳戶並查看「即時」報表。您應該會看到事件傳送過來

994b51ca46bb1973.png

事件從即時檢視畫面傳播到實際事件報表分頁,可能需要約 24 小時,因此如果沒有立即在一般事件報表中看到,請不必擔心!

如果遇到問題或差異,建議您查看這裡的 Measurement Protocol 已知限制

5. 建構 Python 指令碼

測試完畢後,您可以檢查 API 呼叫和事件酬載,在 Python (或您選擇的任何語言) 中建構類似的架構,以便進行這項呼叫。接著,您可以排定所需頻率並開始運作。在這部分,您可以選擇使用任何支援 Python 的 IDE,或直接使用 Google Colab 筆記本,不必在裝置上安裝任何程式

回到 GA4 事件建立工具,您會看到端點如下

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 只會顯示與 Firebase SDK 在過去 60 天內收集的 IDFA 或裝置 ID 相關聯的資料。請注意,這仍是 Alpha 版 API,請務必詳閱這裡 列出的限制,並在正式發布前解決這些問題

您已學習以下內容

  • 如何收集正確的變數來發出 MP 呼叫
  • 如何傳送及驗證測試事件
  • 如何建立傳送 MP 呼叫的指令碼