使用 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 呼叫