幅広い知識と幅広いスキルを求められている系システムエンジニアです。リモートワークしかやりません。

「サーバーサイドGTMがなぜ要るのか」について整理してみた

なんで要るん

サーバーサイドGTMがなんで必要なのかー?が言語化しづらかったのでちょっと整理してみました。

規制だとかプライバシーだとかはもうわかったから、無いとどうなるねん、いくらするねんっていう内容です。

Server Side GTM(以下sGTM)が無いと何が困るか

sGTMが無いと、Google Analyticsで ユーザー数が重複カウント されてしまいます。

sGTMありsGTMなし
PV数
ユーザー数

まず前提として、Google Analyticsはブラウザ側(クライアント側)が持っているCookieというデータの保存場所にある情報で同一ユーザーかどうかを判定しています。
このCookieは消えたり期限が切れると再設定されますが、そのタイミングでGoogle Analyticsからは違うユーザーとして認識されてしまいます。
iOSのブラウザ(SafariやらChromeやらFirefoxやらWebkitを使うもの)の仕様として、sGTMが無い状態ではCookieが24時間で削除されてしまうので、大抵のサイトでは毎回新しいユーザーになってしまいます。
これではリピート顧客の分析ができません。

Chromeも同じような対応を進めている(2024年目処)ので早めになんとかしないといけない...

という問題が今発生しています。

じゃあさくっとsGTM入れたらええやん

sGTMの導入は、今まで<head>にタグをコピペするだけで済んでいた時代からするとハードルがものすごく高く...

  • 自分でサーバーを用意しなければならない
  • 測定対象のサーバーと同じドメインでアクセスできなければならない
    • 例: サイトが hogehoge.com であれば、 analytics.hogehoge.com などに自前GTMサーバーを用意する必要がある
  • 止まると測定ができないので、冗長構成や監視体制を整えなければならない

などなど。

サーバーサイドGTM専用のホスティングサービスがあってもよさそうですが、「同じドメインじゃないとダメ」というのがサービス提供し辛いポイントかなと思われます。
メインドメインの設定ミスの責任は...とりたくないですね...

いくらするの?

初期費用

前述の通りまぁまぁのエンジニアリングスキルが必要なので15万円~は見たほうがよいと思います。
と考えながらググってみたら以下を見つけました。クラスターを組むのを考えたら15万円~で安いほうだと思いますが。

- 2022-07-29 19:00 追記

後述のCloud Runを使った方法だったら初期費用も安くできそうですね。
ただしスキルが必要なのは確かなのでやっぱり技術費込みで8万~は欲しいところです。

- 追記ここまで

運用費用

"データは資産!しっかりしたものを!!" であれば、

  • サーバー2台
  • ロードバランサー

が最低要件なので、サーバー費用で月額最低1万円程度発生。
加えて監視など運用のエンジニアリング費用として30,000円~と考えて 40,000円/月~ と見積もります。

"そんなにアクセス数は無いし、1日ぐらい欠落しても文句言わないよ" であれば、

  • サーバー1台

の構成で、月額4,000円 + 落ちたときだけ面倒見る程度の保守費用10,000円/月で 合計14,000円/月 というのもアリかもしれないですね。

リピート顧客の測定にこれだけの費用をかけるか?は、Webサイトにどれだけ力を入れるか次第かなと思います。

それ、Cloud Runにしたらもっと安くなるで!

Cloud Run + カスタムドメインマッピング ならかなりサーバー費用を安く抑えられそうですね。 起動時間を考慮して最小インスタンス数1で 1,300円/月 ぐらい でしょうか?

CNAMEじゃなくてAレコードでカスタムドメインマッピングをしないとダメなのは注意事項として記しておきます。
(CNAMEがダメな理由は わかりやすくまとめてくださっている記事 がありましたのでご紹介します。)

"落ちた時だけ対応"のエンジニアリング費用合わせまして、10,000円/月~。どうでしょうか。

このブログに入れてみた

さくっと導入してみました。アクセス数が無さすぎて負荷が全然わかりませんが、アイドル状態でメモリ使用量が27MB程度なので、重くはなさそうです。
Google Analytics 4への送信と、全イベントをLokiに転送するようにしてみました。データとしてはログのようなものなので、BigQueryに書き込むより個人的には扱いやすくて好きな構成です。
Webサーバーのログと違って画像などのアセット1つ1つのログがでないので省エネですね。

- 2022-07-29 19:00 追記

👆は借りているVPSにdocker-composeで立ち上げただけだったんですが、その後 Cloud Run が気になったのでTerraformでCloud Runで(ほぼ)一発デプロイできました。

今はCloud Runで動かしています。

- 追記ここまで

ChromeのデベロッパーツールでCookiesを見ると FPID という名前の HttpOnlySecureLax なCookieが見えるかと思います。

参考

© 2023 @miiton