Google アナリティクス4でMeasurement Protocolを使用する

こんにちは、香田です。

今回はGoogle アナリティクス4でMeasurement Protocolを使用する方法について紹介していきます。

事前にGoogle アナリティクス4 プロパティが必要になる為、下記を参考に作成してみてください。

Google アナリティクス4 プロパティの作成

Measurement Protocolとは

はじめにMeasurement Protocolについて簡単に説明すると、Measurement ProtocolとはHTTPリクエストを利用してGoogle アナリティクスへ直接イベント送信できる仕組みのことです。

ウェブサイトやモバイルアプリ以外からもGoogle アナリティクスにデータを送信することが可能となります。

Measurement Protocol ユースケース

事前準備

Measurement Protocolを利用する場合、事前準備としてGoogle アナリティクス UIでAPI SecretMeasurement IDを取得します。

API Secretは[管理]、[データ ストリーム]よりストリームを選択し、[Measurement Protocol API secret]にて作成し、シークレットの値をコピーします。

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

GA4 Event Builderで送信確認

次にGA4 Event Builderを利用し、イベントの検証、送信確認を実施します。

GA4 Event Builder

GA4 Event Builderのサイトより、[client]に[gtag.js]が設定します。

次に事前準備で取得したapi_secretmeasurement_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_SECRETMEASUREMENT_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を使用する方法いかがでしたでしょうか。

ウェブやアプリ以外で発生した外部イベントを送信できる為、さまざまなユースケースで活用できるのではないでしょうか。

最後までご覧いただきありがとうございます。

SNSでもご購読できます。