Open4
アクセス解析をGAからGTMへ移行するときのエンジニアTips
dataLayer
に置き換えられる
非インタラクティブイベント計測はGAのgtag
のカスタムイベントと同じ使い勝手でGTMでも非インタラクティブイベント計測を行いたい場合は、dataLayer
で設定できる。
gtag('event', 'hoge')
dataLayer.push({ event: 'hoge'});
TypeScripでdataLayerを使用するときの型定義
dataLayer
を使用するページ(コンポーネント)のみで定義する場合
declare const window: Window['window'] & {
dataLayer: Record<string, unknown>[];
};
カスタムイベント送信箇所
window.dataLayer.push({ event: 'hoge'});
SPAで、ページビューのタイトルがnot set
(不明)のログが頻繁に記録される。
遷移が発生したとき、スクリプトがtitleタグのテキストを反映するよりも先にGTMがdataLayer.pushしているのが原因と思われる。
スクリプトがtitleタグのテキストを反映するタイミングで
イベントを手動でdataLayer.pushしたいときは、ソースコードへこのようにpageview
イベントを埋め込む。
window.dataLayer.push({
event: 'pageview',
page: {
url: location.pathname,
title: 'タイトルにしたいテキスト',
},
});