O hirunewani blog

Q. GTMでページがiframe内のページとして認識されてしまう

Created at

同一ドメインのページをiframeで読み込んでいる場合、Google Tag Manager(GTM)がiframe内のページとして認識される挙動を確認した。相談を受けた際の内容をまとめる。

Table of Contents

状況

問題の発生したページと、そのページが読み込んでいるページは同一ドメインであり、全く同じ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用のコード
}