PythonでUAとGA4のPageViewをサーバーからリクエストする方法

そもそもUAとGA4とは?

UAとは、UniversalAnalyticsの略称で、GA4よりは1世代前のアクセス解析ツールです。しかし、今も多くのサイトで使われており、正直こちらの方が使いやすいという人も多いのではとか思ったりしています。

GA4とは、GoogleAnalytics4の略称で、UAからすると次世代のアクセス解析ツールになります。元々はアプリ用として使われていたイベントベースでのデータ表示になっていることが特徴的です。

なぜサーバーからPV数をリクエストする必要があるのか?

なぜこのようなことをする必要があったのかというと、リダイレクト処理を行う際に、そのURLがどのくらいアクセスされているのか知りたいということがありました。その際に、サーバー側から、GAにPVとして換算させる処理を行いたいなと思い、今回のこの方法に至りました。

Measurement Protocolを使用する

通常、GAのコードはJSでHTML側に埋め込みますが、サーバー側で処理を行う際には、あまり耳慣れないMeasurement Protocolというものを使用します。

その為には、以下のことを行って、キーなどを取得します。

Google API Consoleを使用出来るようにする

まず、Measurement Protocolを使用するには、APIのキーが必要となる為、Google API Consoleを使用出来る状態にしましょう。Gmailのアカウントを持っていれば、プロジェクト名を入れるなどして、簡単に登録は出来るかと思います。

Google Analytics APIを有効にする

続いて、Google Analytics APIを有効にしましょう。

こちらの画面のように、有効化するだけでOKです。

credentialの作成をする

続いて、credentialを作成して、Client IDやSecret Keyなどを取得しましょう。

Measurement IDを取得する

GA4の場合、Measurement IDというものが必要なります。これは、Google Analyticsの設定画面から取得することが出来ます。以下が取得場所になります。

プロパティ -> データストリーム -> ストリームの選択 -> Measurement Protocol API Secret

Universal AnalyticsへPVのリクエストを送る

ここまで来たら、いよいよAPIを使用して、リクエストを送ります。まずはUAを使用している場合についてです。

今回は、より簡単に行う為に、universal-analytics-python3というパッケージを使用しました。

使用方法は、以下のような感じで、hittypeをpageviewにすることに注意が必要です。

from universal_analytics import HTTPRequest, Tracker

with HTTPRequest() as http:
    ga = Tracker(settings.GOOGLE_ANALYTICS_UA, http, client_id=settings.GOOGLE_API_CLIENT_ID)
    ga.send(
        'pageview',
        {
            'title': 'ページタイトル',
            'path': '/path/',
        }
    )

これだけで、UAへリクエストが送れるので、正しく送れているかリアルタイムで確認してみましょう。

Google Analytics4へPVのリクエストを送る

続いて、GA4を使用している場合についてです。

こちらも簡単に行う為に、ga4mpというパッケージを使用しました。

使用方法は、以下のようになります。注意したいのが、eventの全てになります。このパラメータ名を間違えるだけで、他のものと揃わず綺麗に表示されません。これで大分手こずりました。。

あとは、Measurement IDとSecret Keyを使用するところも注意が必要ですね。

from ga4mp import Ga4mp

event_parameters = {
    'page_title': 'ページタイトル',
    'page_location': '/path/',
    'page_referrer': '飛び先のURL',
}
events = [{'name': 'page_view', 'params': event_parameters}]
ga = Ga4mp(
    measurement_id=settings.GOOGLE_MEASUREMENT_ID,
    api_secret=settings.GOOGLE_MEASUREMENT_API_SECRET,
    client_id=settings.GOOGLE_API_CLIENT_ID,
)
ga.send(events)

こちらもリクエストが正しく送れているか、リアルタイムで確認してみましょう。

まとめ

以上で、UAとGA4どちらにもPVを送ることが出来るようになりましたが、いかがでしたでしょうか?

使用方法だけ見てみても、大分差分があるのでなかなか苦労しましたが、使うことが出来るようになると何かと便利かもしれません。

コメントを残す