Open3

サーバサイドGTMについてのメモ

Yusuke KawabataYusuke Kawabata

現在Cloudflare Zarazを使っているが、正式版にあたってコストが数万円になるかも・・というお話を聞き、いったんサーバサイドのGoogleTagManagerを調べてみることにした。

※この記事は「タグマネージャ」が何をするのか知っているエンジニアに向けた内容です。

公式ドキュメント(古いほうもあって焦った)
https://developers.google.com/tag-platform/tag-manager/server-side/overview?hl=ja

Yusuke KawabataYusuke Kawabata

なぜやるのか?

  • 一般的にタグマネージャは、管理画面で複数のアクセス解析や広告などのJSタグを管理できるので便利な一方、JSの多重読み込みによりFCPのスコアが下がったりする。
  • そこでサーバサイドタグマネージャを導入すると、だいたいどのタグでも必要になるやろ。という情報(画面解像度とかCOOKIEデータとか)を1回だけ取得して、サーバ上で各種タグに送信してくれるため、10個くらいタグを読ませている場合10倍速くなる(はず)
  • さらに、本体サイトと同じドメインのサブドメインから実行するので、各種プライバシー制限にも引っかかりにくい。
  • さらに、お行儀の悪い広告タグとかが動作しないので、セキュア

ざっくりやることの全体像

  • 先にサーバサイドじゃないGTMコンテナ(Web/W)をセットアップして、読み込むタグや発火タイミングをセットしておく?
  • サーバサイドGTMのコンテナ(Sserver/S)を作成する
  • GCPにてCloud Runをセットアップし、特定の環境変数(S)をつけてDockerコンテナを起動する。
  • プレビュー用にもうひとつ同じCloudRunを立ち上げる(実際は環境変数の関係でこっちが先)
  • 既存のGTM(W)のGA4パラメータにサーバコンテナURL(S)をセットする
  • するとGTM(W)発火→GA4のスクリプトが発火→サーバコンテナ(S)に送信→サーバコンテナのGA4クライアントという部品が受け取る→サーバサイドGTM(S)のタグがサーバ内で発火する

という感じっぽい、ローカルとサーバでそれぞれ作動するタグ・クライアントの名前がGA4なのが気になるが、試しにFacebookのコンバージョンタグを使おうとしてもGA4クライアントに対応みたいなことが書いてあるので、これが正解っぽい。

があってるかわからないので詳しい人教えてくれ~