iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Modern Web

跟著 OXXO 一起學 GA4 ( Google Analytics 4 )系列 第 32

( Day 15.3 ) GA4 使用 Measurement Protocol API 收集資料

  • 分享至 

  • xImage
  •  

利用 Measurement Protocol API 就可以透過 HTTP POST 的形式,讓 GA4 接收無法安裝 gtag.js 或 GTM 的環境所發送的事件 ( 例如後端伺服器、單晶片、email...等 ),藉此輕鬆評估這些環境和使用者之間的互動,這篇教學會介紹使用 Python、JavaScript 和 Apps Script,操作 Measurement Protocol API 並傳遞相關事件。

原文參考:使用 Measurement Protocol API 收集資料

什麼是 Measurement Protocol API?

Measurement Protocol API 是從通用版 GA 就已經存在的功能,可以使用 HTTP 的方式傳送對應的事件,在通用版 GA 裡可以使用 GET 的方式進行觸發 ( 時常作為追蹤 Email 開信率 使用,但 GA4 的做法有所不同 ),進入 GA4 之後,Measurement Protocol API 改成一率使用 POST 方法進行傳輸事件,並加入 api_secret ( 密鑰 ) 機制,只有擁有 api_secret 才能傳送事件,下方列出 Google 官方提供的架構圖 ( 原圖參考 )。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - Measurement Protocol 架構

Measurement Protocol API 的用途與限制

初次接觸 Measurement Protocol API 時,可能會不了解它的用途,以下列出一些常見的用途:

  • 接收後端伺服器所觸發的事件

    由於 GA4 本身沒有提供後端的 js,但後端工程師而言卻可以藉由 Measurement Protocol API 來記錄一些觸發資訊。

  • 接收無法安裝 gtag.js 或 GTM 的資訊

    有些環境並不允許安裝 gtag.js 或 GTM ( 例如 Email、單晶片...等 ),透過 Measurement Protocol API,就能在觸發特定事件時,傳送對弈的資料。

雖然 Measurement Protocol API 看起來很方便,但仍有一些使用上的限制:

  • 無法紀錄持續時間資訊 ( 每次觸發都是獨立的 )。
  • 每個要求 ( request ) 最多可有 25 個事件。
  • 每個事件最多只能有 25 個參數。
  • 每個事件最多只能有 25 個使用者屬性。
  • 每個使用者屬性的名稱不能超過 24 個半形字元。
  • 每個使用者屬性的值不能超過 36 個半形字元。
  • 每個事件名稱不能超過 40 個字元,只能使用英文字母、數字和底線,且必須以字母為開頭。
  • 每個參數名稱不能超過 40 個字元,只能使用英文字母、數字和底線,且必須以字母為開頭。
  • 每個參數值不能超過 100 個字元。
  • 每個項目參數最多只能有 10 個自訂參數。
  • 傳遞的資訊必須小於 130 KB。

開始使用 Measurement Protocol API

前往 GA4 的「管理 > 資源 > 資料串流」,點擊已經建立好的資料串流。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - 資料串流

進入資料串流後,在最上方能夠看見「評估 ID」,點擊下方「Measurement Protocol API 密鑰」開始建立密鑰。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - 評估 ID 與建立密鑰

點擊「建立」,就能夠建立一組 Measurement Protocol API 密鑰。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - Measurement Protocol API 密鑰

使用 Python 操作

修改下方的 Python 程式碼後,替換自己的評估 ID 和密鑰,執行後就會使用 Measurement Protocol API 將想要傳遞給事件,透過 http request 的 POST 方法發送到 GA4,發送的 cient_id 為 111.111 ( 識別 ID,根據自己的狀況進行更換 ),事件名稱為 oxxo_python,包含參數 ok,參數值為 true。

參考:Flask 函式庫Python 教學 ( 學習導讀 )

import requests, json

# 更換評估 ID 和密鑰
url = 'https://www.google-analytics.com/mp/collect?measurement_id=你的評估ID&api_secret=你的密鑰'

payload = {
    'client_id': '111.111',
    'events': [{
        'name': 'oxxo_python',
        'params': {
            'ok':'true'
        },
    }]
}
requests.post(url,data=json.dumps(payload),verify=True)

執行後,在 GA4 的即時報表裡,就會看見出現傳送的 oxxo_python 事件。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - 使用 Python 操作

使用 JavaScript 操作

修改下方的 Python 程式碼後,替換自己的評估 ID 和密鑰,執行後就會使用 Measurement Protocol API 將想要傳遞給事件,透過 http request 的 POST 方法發送到 GA4,發送的 cient_id 為 222.222 ( 識別 ID,根據自己的狀況進行更換 ),事件名稱為 oxxo_javascript,包含參數 ok,參數值為 true。

參考:JavaScript Fetch API 使用教學

// 更換評估 ID 和密鑰
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=你的評估ID&api_secret=你的密鑰`, {
  method: "POST",
  body: JSON.stringify({
    client_id: '222.222',
    events: [{
      name:'oxxo_javascript',
      params: {
        'ok':'true'
      }
    }]
  })
});

執行後,在 GA4 的即時報表裡,就會看見出現傳送的 oxxo_javascript 事件。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - 使用 JavaScript 操作

使用 Apps Script 操作

修改下方的 Apps Script 程式碼後 ( 參考 Apps Script ),替換自己的評估 ID 和密鑰,執行後就會使用 Measurement Protocol API 將想要傳遞給事件,透過 http request 的 POST 方法發送到 GA4,發送的 cient_id 為 333.333 ( 識別 ID,根據自己的狀況進行更換 ),事件名稱為 oxxo_apps_script,包含參數 ok,參數值為 true。

參考:簡易後端實作 ( Google Apps Script )

function myFunction() {
  var url = 'https://www.google-analytics.com/mp/collect?measurement_id=你的評估ID&api_secret=你的密鑰';

  UrlFetchApp.fetch(url, {
      'headers': {
        'Content-Type': 'application/json',
      },
      'method': 'post',
      'payload': JSON.stringify({
        'client_id': '333.333',
        'events': [{
            'name': 'oxxo_apps_script',
            'params': {
                'ok':'true'
            },
        }]
      })
  });
}

執行後,在 GA4 的即時報表裡,就會看見出現傳送的 oxxo_apps_script 事件。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - 使用 Apps Script 操作

如果是第一次使用,因為要發送 http request 到外部環境,所以需要允許權限才能操作。

GA4 教學 ( Google Analytics 4 ) - 使用 Measurement Protocol API 收集資料 - Apps Script 允許權限

小結

Measurement Protocol API 是一個對開發者而言,非常好用的功能,透過 Measurement Protocol API 就能夠輕鬆接收後端觸發的資料,也更能將 GA4 延伸到許多像是單晶片、電子報、EDM...等無法安裝 gtag.js 或 GTM 的領域。

參考

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 15.2 ) GA4 使用 UTM 參數,收集廣告活動資料
下一篇
( Day 16.1 ) GA4 資料匯入 ( 匯入 CSV 檔案 )
系列文
跟著 OXXO 一起學 GA4 ( Google Analytics 4 )79
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言