
こんにちは、香田です。
今回はGoogle アナリティクス4でMeasurement Protocolを使用する方法について紹介していきます。
事前にGoogle アナリティクス4 プロパティが必要になる為、下記を参考に作成してみてください。
Measurement Protocolとは
はじめにMeasurement Protocolについて簡単に説明すると、Measurement ProtocolとはHTTPリクエストを利用してGoogle アナリティクスへ直接イベント送信できる仕組みのことです。
ウェブサイトやモバイルアプリ以外からもGoogle アナリティクスにデータを送信することが可能となります。
事前準備
Measurement Protocolを利用する場合、事前準備としてGoogle アナリティクス UIでAPI Secret
とMeasurement ID
を取得します。
API Secret
は[管理]、[データ ストリーム]よりストリームを選択し、[Measurement Protocol API secret]にて作成し、シークレットの値をコピーします。

Measurement ID
は[管理]、[データ ストリーム]よりストリームを選択し、[測定 ID]の値をコピーします。

GA4 Event Builderで送信確認
次にGA4 Event Builderを利用し、イベントの検証、送信確認を実施します。
GA4 Event Builderのサイトより、[client]に[gtag.js]が設定します。
次に事前準備で取得したapi_secret
とmeasurement_id
をそれぞれ入力し、client_id
は任意の値を入力します。

次にサンプルのイベントを設定していきます。
[event_category]は[Custom]を選択し、[evnet_name]は[email_tracking]を入力します。
[Parameters]より[name]に[action]、[string value]に[open]を入力します。

設定したイベントの検証として[VALIDATE EVENT]をクリックします。
イベントが有効であることを確認し[SEND TO GA]より、Google アナリティクスへイベントが送信されるか確認します。

Google アナリティクス UIのリアルタイムへアクセスし、イベント数に表示されることが確認できるはずです。
注意) 送信したイベントがリアルタイムへ表示されない場合がありますが、翌日などしばらく経過すると[エンゲージメント]の[イベント]へ表示されているはずです。

サンプルアプリケーションについて
GA4 Event Builderで検証したイベント送信を元に、Python製のWebフレームワーク FastAPIを利用しサンプルアプリケーションを作成していきます。
サンプルアプリケーションの例として、Google アナリティクスのユニバーサルアナリティクス(UA)利用時に測定できていたメールトラッキングを、GA4でも測定できるようサンプルアプリケーションを作成していきます。
UA メール トラッキング – Measurement Protocol
Python 開発環境の設定
作業ディレクトリの作成
$ mkdir workspace
$ cd workspace
venv仮想環境 初期化
$ python -m venv venv
$ source venv/bin/activate
パッケージ インストール
$ pip install fastapi uvicorn requests
サンプルアプリケーションの作成
サンプルアプリケーションとしてmain.py
というファイル名で作成します。
下記コードのAPI_SECRET
、MEASUREMENT_ID
は適宜設定してください。
from fastapi import FastAPI
import requests
import json
import uuid
app = FastAPI()
GA_ENDPOINT = "https://www.google-analytics.com/mp/collect"
API_SECRET = "XXXX"
MEASUREMENT_ID = "XXXX"
@app.get("/collect")
def collect():
client_id = str(uuid.uuid4())
name = "email_tracking"
payload = {
"client_id": client_id,
"events": [
{
"name": name,
"params": {
"action": "open"
}
}
]
}
data = json.dumps(payload)
url = "%s?api_secret=%s&measurement_id=%s" % (
GA_ENDPOINT, API_SECRET, MEASUREMENT_ID)
r = requests.post(url, data=data, verify=True)
return {"status": r.status_code}
アプリケーションを起動します。
$ uvicorn main:app --reload
GETリクエストを送信します。
$ curl http://127.0.0.1:8000/collect
Google アナリティクス UIのリアルタイムにイベント数が確認でれきば成功です。

さいごに
Google アナリティクス4でMeasurement Protocolを使用する方法いかがでしたでしょうか。
ウェブやアプリ以外で発生した外部イベントを送信できる為、さまざまなユースケースで活用できるのではないでしょうか。
最後までご覧いただきありがとうございます。