Q. GTMでページがiframe内のページとして認識されてしまう
同一ドメインのページをiframeで読み込んでいる場合、Google Tag Manager(GTM)がiframe内のページとして認識される挙動を確認した。相談を受けた際の内容をまとめる。
状況
問題の発生したページと、そのページが読み込んでいるページは同一ドメインであり、全く同じgtagの設定が行われていた。
その結果、Google Analytics Debuggerで確認すると次のようにログが送信されていた。
Processing GTAG command: ["config", "...", { "page_path": "/some-page", ... }]
// ...
Processing GTAG command: ["config", "...", { "page_path": "/iframe-page", .... }]
この結果をGTM側で確認すると、タイトルは/some-page
のものになっているが、パスは/some-page
が/iframe-page
として認識されていた。
対応
そもそも今回のケースでは、iframe内でgtagが発火してほしくないため、iframe内かどうかを判定させることでgtagの発火を抑制することで解決した。
iframe内であるかどうかを判定するには次のようにすればいい。
// iframeの場合、window.parentとwindowは一致しない
if (window.parent == window) {
// gtag用のコード
}