Använda AppMeasurement med iframes

Du kan referera till AppMeasurementen från både underordnade och överordnade iframes. Det är nödvändigt att definiera alla variabler på samma plats där AppMeasurementet finns. I följande exempel beskrivs hur du ställer in grundläggande AppMeasurement-variabler och -metoder i och utanför en iframe.

Om du använder taggar i Adobe Experience Platform måste du se till att spårningsobjektet är globalt tillgängligt. Se Översikt över Adobe Analytics-tillägg.

CAUTION
Undvik att ta med AppMeasurementen bibliotek på både en överordnad sida och iframe. Om du gör det finns det risk att skicka flera bildbegäranden, få fler rapporter och fler fakturerbara serversamtal.

Få åtkomst till AppMeasurement som finns i en iframe

Du kan komma åt AppMeasurementets variabler via iframe-objektet. I de här exemplen anges pageName och metoden t() anropas på två olika sätt för att referera till iframe-objektet.

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

Få åtkomst till AppMeasurementet inifrån en iframe

Du kan komma åt AppMeasurementets variabler på en överordnad sida inifrån en iframe. I det här exemplet ställs pageName in och metoden t() anropas med egenskapen 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();

Använd postMessage och händelseavlyssnare

Du kan också använda postMessage och händelseavlyssnare för att ange variabler. Den här metoden kräver ingen direkt referens till en 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");

Begränsningar

  • Liksom med annan JavaScript-kod kan iframes bara kommunicera när domäner och protokoll matchar. De här exemplen fungerar inte om iframe-innehållet finns i en annan domän än det överordnade.
  • Om AppMeasurementet finns i en iframe anges variabeln referrer till den överordnade URL:en, inte till den faktiska refererande URL:en. Du kan ställa in variabeln referrer manuellt för att lösa problemet.
  • Adobe Experience Cloud-felsökaren känner inte igen bildbegäranden som utlösts inom iframes.
  • Activity Map visar inte heatmap-kartan över länkar som klickats i iframes. Hela iframe markeras i stället.
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690