Google Tag Manager を使って JavaScript エラーを収集する
Google Tag Manager は単にアクセス解析のタグを配信するだけでも、サイト自身にトラッキング ID などを直接埋め込まずに Tag Manager 管理画面から誰でも変更可能な状態に出来てとても便利です。
今回はさらにエラーリスナータグと、ユニバーサルアナリティクスのイベントトラッキングを組み合わせることで、サイトに変更を加えることなく、サイト上で発生したエラーを Google Analytics のイベントとして収集する方法を考えてみます。
次に、エラーリスナータグの発生させたイベントをユニバーサルアナリティクス (トラッキングタイプ=イベント) を使って報告したいのですが、エラー情報を受け渡す方法が一見したところ良く分かりません。色々触ってみたところ、受け渡し方法は、マクロを経由してデータレイヤ変数を引き渡せば良いみたいです。
こちらのヘルプ JavaScript エラー リスナー - イベント リスナー - Tag Manager ヘルプ
に書かれている通り、データレイヤ変数が設定されるので、以下のようなマクロをまず設定します。
このようなマクロを使って、以下のようなイベントトラッカーを設定します。
すべて » イベント カテゴリ: gtm » イベント アクション: gtm.pageError
ユーザーの安全のためこのイベントトラッキングはユニバーサルアナリティクスの SSL 有効モードで行うのが良いと思います。
今回はさらにエラーリスナータグと、ユニバーサルアナリティクスのイベントトラッキングを組み合わせることで、サイトに変更を加えることなく、サイト上で発生したエラーを Google Analytics のイベントとして収集する方法を考えてみます。
設定方法
まず、エラーリスナータグを全ページに配信するように設定します。次に、エラーリスナータグの発生させたイベントをユニバーサルアナリティクス (トラッキングタイプ=イベント) を使って報告したいのですが、エラー情報を受け渡す方法が一見したところ良く分かりません。色々触ってみたところ、受け渡し方法は、マクロを経由してデータレイヤ変数を引き渡せば良いみたいです。
こちらのヘルプ JavaScript エラー リスナー - イベント リスナー - Tag Manager ヘルプ
に書かれている通り、データレイヤ変数が設定されるので、以下のようなマクロをまず設定します。
マクロ名 dataLayer gtm.errorLineNumber マクロのタイプ データ レイヤー変数 データ レイヤー変数名 gtm.errorLineNumber データ レイヤーのバージョン バージョン2
このようなマクロを使って、以下のようなイベントトラッカーを設定します。
配信条件 {{event}} が gtm.pageError に等しい タグの種類 ユニバーサルアナリティクス トラッキング タイプ イベント イベント トラッキングのパラメータ カテゴリ gtm 操作 {{event}} ラベル {{dataLayer gtm.errorUrl}}:{{dataLayer gtm.errorLineNumber}}: {{dataLayer gtm.errorMessage}} 値 (空欄) 非インタラクション ヒット True
レポートの見方
エラー統計情報は、レポートで、行動 > イベント > 上位のイベント > イベントカテゴリ、から順番にクリックして以下のように絞り込めば OK です。すべて » イベント カテゴリ: gtm » イベント アクション: gtm.pageError
追加情報
イベント リスナー - Tag Manager ヘルプ によると、同様のイベントリスナーは他にも以下のものが利用可能です。例えばクリックリスナーを使用すると、どの DOM 要素がクリックされているかを、要素の ID などで識別して収集することが出来ます。クリック リスナー フォーム送信リスナー リンク クリック リスナー タイマー リスナー 履歴リスナー JavaScript エラー リスナー
ユーザーの安全のためこのイベントトラッキングはユニバーサルアナリティクスの SSL 有効モードで行うのが良いと思います。
コメント
コメントを投稿