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. De här exemplen har angetts pageName och ringa t(), metod använder du två olika sätt 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. Det här exemplet anger pageName och anropar t(), metod med parent -egenskap.

// 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

  • Precis som 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 visas referrer variabeln ställs in på den överordnade URL:en, inte den faktiska refererande URL:en. Du kan ställa in referrer variabel som löser problemet.
  • The Adobe Experience Cloud debugger känner inte igen bildbegäranden som utlöses 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