ウェブサイトのGoogle Analytics App+Webのeコマースイベント設定を設定しようとしています。ドキュメントを参照してください。ここ。
eコマース構成には多くのカスタム コードがあるため、一般的な GA App+Web Web イベント テンプレートを使用できません。そのため、この場合は代わりにカスタム HTML タグを使用します。
最初のテストとして、次の単純なイベントを発生させてみました。
<script>
gtag('event', 'blabla', {
'test_param1': 'test_value_1'
});
</script>
ただし、イベントは GA に正しく送信されず、代わりにコンソールに次のエラーが返されます。
キャッチされない参照エラー: gtag が定義されていません
再現するには、次のページを参照してください。https://www.hema.nl/mooi-gezond/make-up/make-up-accessoires/toilettassen-1/toilettas-11830901.html
追加情報:
- GA アプリ + Web ベースの初期化は、GA アプリ + Web 構成テンプレート タグを介して GTM 経由で (正常に) 実行されます。
- また、GA App+Web ウェブイベント テンプレート タグを使用して、GTM 経由で他のいくつかの (単純な非 e コマース) GA App+Web イベントも構成し、これらのイベントは GA に正常に送信されました。
何が問題なのか、なぜコンソール エラーが表示されるのか、なぜイベントが GA に送信されないのか、誰か知っていますか?
ベストアンサー1
短い答え
GTM GA アプリ + ウェブ タグに加えて、gtag() を定義するために次のコードを追加する必要があります。
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
</script>
長い答え
公式文書によると(詳細はこちら) これはサイトに含める必要があるコードです:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'MEASUREMENT_ID');
</script>
このタグが付いた Web サイトを調べたところ、GTM が最初の行を挿入していることがわかりました。これは、分析を機能させるのに十分です。ただし、他の行は追加されていません。その一部は、gtag
アナリティクス データ レイヤーに情報をプッシュするための「シンタックス シュガー」としてグローバル関数を効果的に定義しています。
個人的には、これは本当に奇妙だと思います。なぜなら、GTM を使用することは、Web サイトに Google Analytics を追加する最も標準的な方法であり、同じ会社が提供しているからです。