Utilizzare AppMeasurement con gli iframe

Puoi fare riferimento a variabili AppMeasurement da iframe figlio e padre. È necessario definire tutte le variabili nella stessa posizione in cui si trova la libreria AppMeasurement. Gli esempi seguenti spiegano come impostare variabili e metodi di base di AppMeasurement all'interno e all'esterno di un iframe.

Se utilizzi Adobe Experience Platform Launch, assicurati che l’oggetto tracker sia accessibile a livello globale. Consulta Panoramica dell’estensione Adobe Analytics nella guida utente di Launch.

ATTENZIONE

Evita di includere le librerie AppMeasurement sia su una pagina padre che su un iframe. In questo modo si rischia di inviare più richieste di immagini, gonfiare i rapporti e aumentare le chiamate al server fatturabili.

Accedere ad AppMeasurement che si trova in un iframe

È possibile accedere alle variabili AppMeasurement tramite l'oggetto iframe. Questi esempi impostano pageName e richiamano il metodo t() utilizzando due modi diversi per fare riferimento all'oggetto 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();

Accedere ad AppMeasurement dall'interno di un iframe

Puoi accedere alle variabili AppMeasurement da una pagina padre direttamente da un iframe. Questo esempio imposta pageName e chiama il metodo t() utilizzando la proprietà parent.

// 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();

Utilizzare postMessage e i listener di eventi

In alternativa, è possibile utilizzare i listener di eventi postMessage e per impostare le variabili. Questo metodo non richiede un riferimento diretto a 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");

Limitazioni

  • Come con altri codici JavaScript, gli iframe possono comunicare solo quando i domini e il protocollo corrispondono. Questi esempi non funzionano se il contenuto dell’iframe si trova in un dominio diverso da quello principale.
  • Se AppMeasurement risiede in un iframe, la variabile referrer è impostata sull'URL principale, non sull'URL effettivo di riferimento. Puoi impostare manualmente la variabile referrer per risolvere il problema.
  • Il debugger Adobe Experience Cloud non riconosce le richieste di immagini attivate all'interno di iframe.
  • Activity Map non visualizza la mappa di calore sui collegamenti selezionati all’interno di iframe. Viene invece evidenziato l’intero iframe.

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now