Googleアナリティクスのタグの有効/無効を環境別に設定する方法をご紹介致します。
今回はLaravelでの実装例となります。
環境
Laravel:5.5
今回やりたいこと
Googleアナリティクスのタグを本番環境以外では読み込みたくない。
→タグの有効/無効を環境別で設定する。
環境別設定は以下のイメージとします。
→開発/検証環境:無効
→本番環境:有効
実装の流れ
1.envファイルの設定
envファイルにGoogleアナリティクスの有効/無効を設定します。
GA_ENABLE=false
GA_ENABLE=true
2.GoogleアナリティクスのタグをBladeファイルに記述
GoogleアナリティクスのタグをBladeファイルに記述します。
<!-- Global Site Tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GA_MEASUREMENT_ID'); </script>
「GA_MEASUREMENT_ID」のところに実際のトラッキングIDが入ります。
また、他の処理は記述せずに上記のみが記述されているファイルが望ましいと思います。
3.タグを読み込みたいページでBladeファイルをinclude
Googleアナリティクスのタグを読み込みたいページで以下を記述します。
@includeWhen(env(GA_ENABLE), 'ga')
上記により、envファイルのGA_ENABLEがtrueの場合のみ、ga.blade.phpが読み込まれます。
少し脱線しますが、今回Bladeの読み込みには「@includeWhen」を使用しています。
以下のようにも書けるのですが、「@includeWhen」でスッキリと書けました。
@if(env(GA_ENABLE)) @include('ga') @endif
参考:https://readouble.com/laravel/5.5/ja/blade.html
4.機能の確認
GA_ENABLE=trueの場合、タグが読み込まれる。
GA_ENABLE=falseの場合、タグが読み込まれない。
が確認できました。
おわりに
おそらくGoogleアナリティクスの設定で、開発/検証環境のURLからのタグ送信を除外することも可能なはずですが、Googleアナリティクスのアカウント自体はお客様側で持っているケースなどもあるかと思います。
お客様側でその辺りを意識する必要がないようにするために、開発側のみで完結する対応案となります。
今回はGoogleアナリティクスの件を例に挙げましたが、他にも類似ケースはよくあるかと思います。