アクセス解析担当者がGTMについて語るブログ

GTM(Google Tag Manager)・GA(Google Analytics)の中~上級者向け情報を中心に発信

GoogleAnalyticsのgtag.jsタグでdataLayer変数の変数名を変更する方法

結論

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-X&l=dataLayerOption"></script>
<script>
  window.dataLayerOption = window.dataLayerOption || [];
  function gtag(){dataLayerOption.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXXXX-X');
</script>
  • 読み込むURLの末尾に&l=データレイヤー変数名を追記する
  • タグ内のdataLayerという文字列(変数名)をすべて書き換える変数名に変更する

上の2点を設定することで、データレイヤー変数を"dataLayer"から他の変数名に変更できます。

説明

dataLayer変数を別の用途としてすでに用いているため別の変数名にする必要がある際には、上記のようにlパラメータを利用することでGTMのように変更することが可能となります。
GTMを読み込むタグではlパラメータを利用していたため、ちょっと試してみたところPVタグが動くことを確認しました。
現状gtag.jsのドキュメント上には記載されていなかったため、仕様として採用されていない可能性があります。そのため、この挙動を利用する際は自己責任でお願いします。

GTMとgtag.jsを併用する場合

GTMとgtag.jsを併用している場合にデータレイヤー変数名を変更する必要は必ずしもありません。
GTMのデバッグ時にgtag.jsのイベントが混じってきて見づらいなどの懸念点があるときのみ変更すればよいと思われます。
なお併用は推奨されておらず、Googleアナリティクス、Google広告のタグはGTMでまとめて管理するほうがよいでしょう。

所感

Google広告のタグの挙動もdataLayer変数に依存しているため、dataLayerという変数名はGoogle用に使用する認識でいたほうがよさそうです。
似たような方法で回避は可能かと思われますが、設定ミスによる取得漏れのほうが可能性が高いと考えられます。