iFrames での AppMeasurement の使用
最終更新日: 2024年1月26日
- トピック:
- 実装の基本
作成対象:
- 管理者
- 開発者
- リーダー
AppMeasurement 変数は、子 iframe と親 iframe の両方から参照できます。AppMeasurement ライブラリが存在する場所と同じ場所にすべての変数を定義する必要があります。次の例では、iframe の内外に基本的な AppMeasurement 変数およびメソッドを設定する方法を説明します。
Adobe Experience Platform のタグを使用する場合は、トラッカーオブジェクトがグローバルにアクセスできることを確認します。Adobe Analytics 拡張機能の概要を参照してください。
親ページと iframe の両方に AppMeasurement ライブラリを含めないでください。これをおこなうと、複数の画像リクエストが送信される、レポートが水増しされる、課金対象のサーバー呼び出しが増加するなどのリスクが生じます。
iframe 内にある AppMeasurement へのアクセス
iframe オブジェクトを介して AppMeasurement 変数にアクセスできます。これらの例では、pageName を設定し、2 つの異なる方法を使用して t() メソッドを呼び出して iframe オブジェクトを参照します。
// Reference AppMeasurement code that resides within an iframe and send an image request
document.getElementById('targetFrame').contentWindow.s.pageName="Page name within iframe";
document.getElementById('targetFrame').contentWindow.s.t();
// An alternate method to the above if there's only one iframe on the page
window.frames[0].contentWindow.s.pageName = "Page name within iframe";
window.frames[0].contentWindow.s.t();
iframe 内から AppMeasurement にアクセスする
iframe 内から親ページの AppMeasurement 変数にアクセスできます。次の使用例は、pageName を設定し、parent
プロパティを使用して t()メソッドを呼び出しています。
// Reference AppMeasurement code on a parent page from within an iframe and send an image request
parent.s.pageName = "Page Name on Hosted Window";
parent.s.t();
postMessage
とイベントリスナーを使用する
または、postMessage
とイベントリスナーを使用して変数を設定できます。このメソッドでは、iframe に対する直接参照は必要ありません。
// Place this code in your parent window
function listenMessage(e) {
if(e.data == "Example page view call") {
s.pageName = "Page name using postMessage";
s.t();
}
}
window.addEventListener("message", listenMessage, false);
// Place this code in the iframe
window.top.postMessage("Example page view call","https://example.com");
制限事項
- 他の JavaScript コードと同様、iFrames はドメインとプロトコルが一致する場合にのみ通信できます。これらの例は、iframe コンテンツが親とは異なるドメインに存在する場合は機能しません。
- AppMeasurement が iframe 内に存在する場合、
referrer
変数は、実際の参照 URL ではなく親 URL に設定されます。referrer
変数を手動で設定すると、この問題を解決できます。 - Adobe Experience Cloud Debuggerは、iframe 内でトリガーされた画像リクエストを認識しません。
- Activity Map には、iframe 内でクリックされたリンクのヒートマップは表示されません。代わりに、iframe 全体がハイライト表示されます。
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690