Show Menu
SUJETS×

Utilisation d’AppMeasurement avec des iframes

Vous pouvez référencer des variables AppMeasurement à partir d’iframes enfant et parentes. Il est nécessaire de définir toutes les variables au même emplacement que la bibliothèque AppMeasurement. Les exemples suivants expliquent comment définir les variables et méthodes AppMeasurement de base à l’intérieur et à l’extérieur d’un iframe.
Si vous utilisez Adobe Experience Platform Launch, assurez-vous que l’objet de suivi est accessible à tous. Reportez-vous à la section Présentation de l’extension Adobe Analytics dans le guide de l’utilisateur Lancement.
! Evitez d’inclure des bibliothèques AppMeasurement sur une page parente et un iframe. Cela comporte des risques d’envoi de plusieurs demandes d’image, d’augmentation du nombre de rapports et d’appels serveur facturables.

Accès à AppMeasurement qui réside dans un iframe

Vous pouvez accéder aux variables AppMeasurement par le biais de l’objet iframe. Ces exemples définissent pageName et appellent la méthode t() t() en utilisant deux méthodes différentes pour référencer l’objet 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();

Accès à AppMeasurement depuis un iframe

Vous pouvez accéder aux variables AppMeasurement sur une page parente depuis un iframe. Cet exemple définit pageName et appelle la méthode t() t() à l’aide de la parent proprié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();

Utilise postMessage et événement des écouteurs

Vous pouvez également utiliser postMessage des écouteurs et des écouteurs de événement pour définir des variables. Cette méthode ne nécessite pas de référence directe à un 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");

Limites

  • Comme pour tout autre code JavaScript, les iframes ne peuvent communiquer que lorsque les domaines et les protocoles correspondent. Ces exemples ne fonctionnent pas si le contenu iframe réside sur un domaine différent de celui du parent.
  • Si AppMeasurement réside dans un iframe, la referrer variable est définie sur l’URL parente et non sur l’URL référente réelle. Vous pouvez définir manuellement la referrer variable pour résoudre ce problème.
  • Le débogueur experience-cloud-debugger.html Adobe Experience Cloud ne reconnaît pas les demandes d’image déclenchées dans les iframes.
  • Le Activity Map n’affiche pas le heatmap sur les liens sur lesquels l’utilisateur a cliqué dans les iframes. La totalité de l’iframe est mise en surbrillance.