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

現在Cloudflare Zarazを使っているが、正式版にあたってコストが数万円になるかも・・というお話を聞き、いったんサーバサイドのGoogleTagManagerを調べてみることにした。
※この記事は「タグマネージャ」が何をするのか知っているエンジニアに向けた内容です。
公式ドキュメント(古いほうもあって焦った)

なぜやるのか?
- 一般的にタグマネージャは、管理画面で複数のアクセス解析や広告などの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クライアントに対応みたいなことが書いてあるので、これが正解っぽい。
があってるかわからないので詳しい人教えてくれ~

サーバサイドタグマネージャ系製品その他
- Cloudflare Zaraz https://www.cloudflare.com/ja-jp/application-services/products/zaraz/
- Tealium https://tealium.com/ja/tealium-iq-tag-management-system/
- Stape.io https://stape.io/
- Elever https://www.getelevar.com/
- Blotout https://blotout.io/