Usa AppMeasurement con iframe
È possibile fare riferimento a variabili di AppMeasurement da iframe figlio e padre. È necessario definire tutte le variabili nella stessa posizione in cui esiste la libreria AppMeasurement. Negli esempi seguenti viene illustrato come impostare variabili e metodi di AppMeasurement di base all'interno e all'esterno di un iframe.
Se utilizzi i tag in Adobe Experience Platform, accertati che l’oggetto tracker sia accessibile a livello globale. Consulta Panoramica dell'estensione Adobe Analytics.
AppMeasurement di accesso che risiede in un iframe
È possibile accedere alle variabili AppMeasurement tramite l’oggetto iframe. In questi esempi viene impostato pageName e viene chiamato 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 all’AppMeasurement dall’interno di un iframe
Puoi accedere alle variabili AppMeasurement su una pagina padre 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();
Usa postMessage
e listener di eventi
In alternativa, è possibile utilizzare postMessage
e i listener di eventi 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 risiede in un dominio diverso da quello dell’elemento principale.
- Se AppMeasurement risiede in un iframe, la variabile
referrer
viene impostata sull'URL padre, non sull'URL di riferimento effettivo. È possibile impostare manualmente la variabilereferrer
per risolvere il problema. - Il debugger di Adobe Experience Cloud non riconosce le richieste di immagini attivate negli iframe.
- Activity Map non visualizza la mappa di calore sui collegamenti su cui è stato fatto clic all’interno degli iframe. Viene invece evidenziato l’intero iframe.