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.

CAUTION
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.

AppMeasurement di accesso che risiede in un iframe

È possibile 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 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 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.
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690