Usa AppMeasurement con iframe

Potete 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 le variabili e i metodi di base di AppMeasurement all'interno e all'esterno di un iframe.

Se utilizzate Adobe Experience Platform Launch, accertatevi che l'oggetto di tracciamento sia accessibile a livello globale. Consultate panoramica dell’estensione Adobe Analytics nella guida utente di Launch.

!![CAUTION]
Evitate di includere le librerie AppMeasurement in una pagina padre e in un iframe. In questo modo si rischia di inviare più richieste di immagini, di gonfiare i report e di aumentare le chiamate ai server fatturabili.

Accesso ad AppMeasurement che si trova in un iframe

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

Accesso ad 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 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();

Utilizzo postMessage e 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 se i domini e il protocollo corrispondono. Questi esempi non funzionano se il contenuto iframe risiede in un dominio diverso da quello del padre.
  • Se AppMeasurement risiede in un iframe, la referrer variabile viene impostata sull’URL principale, non sull’URL di provenienza effettivo. Potete impostare manualmente la referrer variabile 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