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 密鑰。
您可以提供任何暱稱,系統會顯示密鑰值,供您在通話中使用
如果不確定如何存取 Google Analytics 4,請前往 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. 建構 Call
您可以使用 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 呼叫和事件酬載,在 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 呼叫的指令碼