使用測量協定將應用事件傳送到 GA4

一、簡介

最後更新: 2021-06-08

你將建構什麼

在此 Codelab 中,您將學習如何使用Measurement Protocol將外部事件傳送到 GA4。

此 Codelab 假設您已經擁有一個實作了 Google Analytics for Firebase 的應用程式。如果您想了解如何與 Google Analytics for Firebase 集成,請先參考此 Codelab 。如果您想了解如何使用 Firebase 建置應用程式,請參閱Firebase Android Codelab-建置友善聊天

你將學到什麼

  • 撥打第一個 MP 電話的步驟
  • 了解調用所需的參數
  • 發送並驗證您的測試呼叫
  • 使用 Python 建構範例腳本來進行調用

你需要什麼

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

2. 收集必填字段

在 GA4 中建立 API 金鑰

導航至 GA4 並透過導航至管理>資料流>選擇您的流程>測量協定>建立來建立新的 API 金鑰

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

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

如果您不確定如何存取 GA4,您可以存取您的 Firebase 項目,檢查項目設定 > 整合 > Google Analytics,然後按一下「管理」。 Google Analytics 連接應該是可見的,您也可以直接從那裡導航

73b4d77a57eddfba.png

收集app_instance_id

您可以使用以下任何方法來收集您的 app_instance_id。

  1. 使用 BigQuery 匯出
  2. 在您的應用程式原始碼中本地獲取

下面詳細解釋這兩者

  1. 使用 BigQuery 匯出

如果您啟用了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. 建構調用

您可以使用 GA4 中的事件產生器建構範例呼叫。 (這需要您登入並啟用 cookie)。確保開關設定為“firebase”

fd78d961f3e48238.png

您需要填寫以下字段

  • api_secret - 先前已在 GA4 上建立
  • firebase_app_id - 要獲取此信息,您可以導航至Admin > Data Streams > choice your Stream 。應顯示如下

19801c8e5cb29222.png

  • app_instance_id - 您已經檢索到該值
  • user_id 不是強制的。您可以暫時留空
  • 類別 - 從下拉清單中將其變更為“自訂”,然後輸入您選擇的任何事件名稱(不要使用任何自動收集的事件)。這裡我們使用“test_from_codelab”

54cce53df64d697.png

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

16a8f531a3894021.png

填寫完所有內容後,您應該會看到類似這樣的內容,其中有一個「驗證事件」按鈕

475801f25c3caf26.png

到達此位置後,按一下“驗證事件”,該按鈕以橘色突出顯示。它應該顯示下面的訊息,指定該事件有效,並且您現在將看到一個「發送到 GA」的按鈕。此時,如果事件顯示為無效,該工具將告訴您存在問題的確切字段,您可以修復該問題並重試

23e4e6800705b4aa.png

現在您可以點擊該按鈕,它應該會向 GA4 發送測試事件

4. 驗證 GA4 中的事件

發送事件後,您可以導航到您的 GA4 帳戶並檢查即時。您應該會看到該事件完成

994b51ca46bb1973.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 中成功使用測量協議。現在,您可以建立強大的解決方案架構,將更有意義的資料傳送到 Google Analytics,並改善您的行銷和業務分析。為了充分利用這一點,我們還建議連接到 Google Ads,並將這些事件作為轉換匯入。您可以參閱此 Codelab中的步驟 6 以取得詳細說明。出於轉換追蹤目的,Google Ads 將僅顯示過去 60 天內從 Firebase SDK 收集的與 IDFA 或裝置 ID 相關的資料。請記住,這仍然是一個 alpha API,並確保透過此處列出的限制,這些限制應在全面發布之前解決

你已經學會了

  • 如何收集正確的變數來進行 MP 調用
  • 如何發送和驗證測試事件
  • 如何建立腳本來發送 MP 呼叫