AppMeasurement gebruiken met iframes

U kunt verwijzen naar AppMeasurement-variabelen uit zowel onderliggende als bovenliggende iframes. Alle variabelen moeten worden gedefinieerd op dezelfde locatie als de bibliotheek met AppMeasurementen. In de volgende voorbeelden wordt uitgelegd hoe u elementaire variabelen en methoden voor AppMeasurementen binnen en buiten een iframe instelt.

Als u tags gebruikt in Adobe Experience Platform, moet u ervoor zorgen dat het tracker-object algemeen toegankelijk is. Zie Overzicht Adobe Analytics-extensie.

CAUTION
Vermijd het opnemen van bibliotheken met AppMeasurementen op zowel een bovenliggende pagina als iframe. Dit brengt risico's met zich mee voor het verzenden van meerdere verzoeken om afbeeldingen, het opblazen van rapporten en het verhogen van aanroepbare serveraanroepen.

Toegang krijgen tot AppMeasurement dat zich in een iframe bevindt

U hebt toegang tot AppMeasurementen variabelen via het iframe-object. Deze voorbeeldset pageName en de t(), methode twee verschillende manieren gebruiken om naar het iframe-object te verwijzen.

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

AppMeasurement openen vanuit een iframe

U hebt vanuit een iframe toegang tot AppMeasurement-variabelen op een bovenliggende pagina. Deze voorbeeldsets pageName en roept de t(), methode met de parent eigenschap.

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

Gebruiken postMessage en gebeurtenislisteners

U kunt ook postMessage en gebeurtenislisteners instellen. Voor deze methode is geen directe verwijzing naar een iframe vereist.

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

Beperkingen

  • Net als bij andere JavaScript-code kunnen iframes alleen communiceren wanneer domeinen en protocol overeenkomen. Deze voorbeelden werken niet als de iframe-inhoud zich in een ander domein bevindt dan het bovenliggende domein.
  • Als het AppMeasurement zich in een iframe bevindt, referrer De variabele wordt ingesteld op de bovenliggende URL, niet op de werkelijke verwijzende URL. U kunt de referrer variabele om dit probleem op te lossen.
  • De Adobe Experience Cloud debugger worden afbeeldingsverzoeken die binnen iframes worden gestart, niet herkend.
  • De Activity Map geeft de hitmap niet weer boven koppelingen die zijn geklikt binnen iframes. In plaats hiervan wordt het hele iframe gemarkeerd.
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690