デバッグ
utag.jsから開始されるトラッキングコールのデバッグの基礎について解説します。
utag.view()
関数とutag.link()
関数は、それぞれページビューとイベントのトラッキングに使用します。この記事では、これらの関数のデバッグ方法を説明して、関数が呼び出される仕組みとタイミングや渡されるデータを確認します。
デバッグモード
デバッグモードを有効にするには、お好みのブラウザでデバッグツールを開き、次のコマンドを実行します。
document.cookie="utagdb=true";
このCookieによりutag.js
内でデバッグモードが有効になり、有用な出力がコンソールに生成されます。
デバッグモードが有効になった後、ページでトラッキング対象のアクションを起こすと、コンソールにデバッグログが表示されます。コンソールの出力結果でtrigger: view
またはtrigger: link
を調べてください。
次の例は、イベントがトラッキングされた後のコンソールの出力結果を示しています。
trigger:view
またはtrigger:link
の下の行をクリックして、イベントデータオブジェクトを展開したり折りたたんだりします。
ブレークポイント
より詳細なデバッグでは、トラッキングコールが行われるときにコードを中断するようutag.js
にブレークポイントを構成すると役立ちます。こうすると、渡されるデータを検討できるほか、スタックトレースを調べてそのコールの起点を確認することができます。
Chromeのデベロッパーツールを使用してブレークポイントを構成するには:
-
Chromeのデベロッパーツールで、[Sources]に移動して、
utag.js
を開きます。 -
ウィンドウの左下にある波括弧をクリックして、コードを読みやすく展開します(pretty print)。
-
return this.track(
を含む行を見つけ、行番号をクリックしてブレークポイントを構成します。 -
メインウィンドウに戻り、トラッキングコールのいずれかを呼び出すアクションを実行します。トラッキングコールが発生すると、コードを調べることができるよう、ブレークポイントのいずれかによってアクションが停止します。
-
デベロッパーツールの右側には、[Watch Expression]と呼ばれるセクションがあります。+記号をクリックしてウォッチ式を追加します。「
a
」と入力してEnterキーを押すと、この変数のウォッチ式が追加されます。 -
パラメータ
a
に含まれるオブジェクトを展開して、トラッキングコールに渡されたデータを表示します。これが、拡張機能、タグ配信ルール、マッピングで処理する必要のあるデータです。
Chromeのデベロッパーツールでのブレークポイントの構成の詳細については、こちらを参照してください。
この方法のメリットの1つとして、デベロッパーツールの[Sources]タブでレポートされる[Call Stack]を使用してトラッキングコールの起点を調査できる点があります。
utag.link()
のコールの位置を探す例を次に示します。
上の画像は、utag.link()
のコールを捉えるためにutag.js
に構成されたブレークポイントです。(2)をクリックすると、ソースコード内で行われたutag.link()
のコールが(左に)表示されます。
これで次の3つの点をデバッグできるようになりました。
- ブレークポイントにヒットしたかどうか。ヒットした場合は、その関数が正しくトリガーされるように構成されています。
- ブレークポイントにヒットした後は、
utag.view()
またはutag.link()
が呼び出された際に送信されたデータを確認できるようになりました。 utag.view()
またはutag.link()
のコールの実際の構成を確認できるようになりました。
これは、特定のイベントがトリガーされたときに渡された適切なデータが表示されていない場合に有用です。関数で送信されるデータが間違っている可能性があります。
コンソールの出力結果
表示される各種出力結果の詳細を以下に示します。出力は実装に固有のため、このリストですべてが網羅されているわけではありません。また、ログ出力は更新や改良によって変わる可能性が常にあります。
出力結果 | 説明 |
---|---|
Pre-INIT |
プリローダーをスコープとする拡張機能が実行中です |
utag.loader.RD |
ライブラリがUDO、メタデータ、DOMデータなどのデータを読み取ります |
utag.load.INIT |
標準のutag.js ファイルのロジックが開始されます |
All Tags EXTENSIONS |
すべてのタグをスコープとする拡張機能が実行中です |
utag.loader.INIT: waiting 1 |
タグがDOM Readyになるのを待っています |
READY |
ライブラリはDOM Readyになる準備ができています |
WQ |
待機するよう構成されているタグの数を示します(たとえば、"services-dang/tiq-as" プロファイルで4つのタグが有効になっていて、4つすべてが待機に構成されています) |
Attach to head |
タグスクリプトがソースコードに追加されています |
utag.loader.WAIT |
指定されたタグがブラウザに読み込まれますが、タグをトリガーするためにDOM Readyになるまで待機します |
utag.loader.LOAD |
タグのu.send 関数が実行され、タグにデータを送信します |
Sending: 1 |
タグがベンダーに対するコールをトリガーしています |
SETFORCE:WAIT |
DOM Readyのためタグはまもなくトリガーされます |
trigger:view |
トラッキングコールが行われました |
最終更新日 :: 2018年November月7日