Utilizzare AppMeasurement con gli iframe

Puoi fare riferimento alle variabili AppMeasurement sia dagli iframe figlio che da quelli padre. È necessario definire tutte le variabili nella stessa posizione in cui esiste 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 i tag in Adobe Experience Platform, accertati che l’oggetto tracker sia accessibile a livello globale. Consulta Panoramica dell’estensione Adobe Analytics.

ATTENZIONE

Evita di includere librerie AppMeasurement sia su una pagina padre che su un iframe. In questo modo si comportano rischi per l’invio di più richieste di immagini, si gonfiano i rapporti e si aumentano le chiamate al server fatturabili.

Accedere ad AppMeasurement che risiede in un iframe

Puoi accedere alle variabili AppMeasurement tramite l’oggetto iframe. Questi esempi impostano pageName e chiama t(), metodo utilizzo di 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 da un iframe

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

// 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 listener di eventi e

In alternativa, puoi utilizzare postMessage e 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, il referrer La variabile viene impostata sull'URL padre, non sull'URL di riferimento effettivo. È possibile impostare manualmente referrer per risolvere il problema.
  • Il Adobe Experience Cloud Debugger 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.

In questa pagina