Usar o AppMeasurement com iFrames
Criado para:
- Administrador
- Desenvolvedor
- Líder
Você pode fazer referência às variáveis do AppMeasurement de iFrames filhos e pais. É necessário definir todas as variáveis no mesmo local em que a biblioteca do AppMeasurement existe. Os exemplos a seguir explicam como definir variáveis e métodos básicos do AppMeasurement dentro e fora de um iframe.
Se você usar tags na Adobe Experience Platform, verifique se o objeto do rastreador está acessível globalmente. Consulte Visão geral da extensão do Adobe Analytics.
Acessar o AppMeasurement localizado em um iframe
Você pode acessar variáveis do AppMeasurement por meio do objeto iframe. Esses exemplos definem pageName e chamam o método t() usando duas maneiras diferentes para fazer referência ao objeto do 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();
Acessar o AppMeasurement de dentro de um iframe
Você pode acessar variáveis do AppMeasurement em uma página principal por meio de um iframe. Este exemplo define pageName e chama o método t() usando a propriedade 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();
Usar postMessage
e ouvintes de eventos
Como alternativa, você pode usar postMessage
e ouvintes de eventos para definir variáveis. Este método não exige uma referência direta a um 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");
Limitações
- Assim como em outro código JavaScript, os iFrames só podem se comunicar quando os domínios e o protocolo são correspondentes. Esses exemplos não funcionam se o conteúdo do iframe estiver em um domínio diferente do principal.
- Se o AppMeasurement estiver em um iframe, a variável
referrer
será definida como o URL principal, não como o URL de referência real. Você pode definir manualmente a variávelreferrer
para resolver esse problema. - O Adobe Experience Cloud Debugger não reconhece solicitações de imagem acionadas em iFrames.
- O Activity Map não exibe o mapa de calor em links clicados em iFrames. Em vez disso, o iframe inteiro é realçado.