Usar o AppMeasurement com iframes

Você pode fazer referência às variáveis do AppMeasurement de iframes filho e pai. É 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 o Adobe Experience Platform Launch, verifique se o objeto de rastreamento está acessível globalmente. Consulte Visão geral da extensão do Adobe Analytics no guia do usuário do Launch.

!![CAUTION]
Evite incluir bibliotecas do AppMeasurement em uma página pai e em um iframe. Isso apresenta riscos ao enviar várias solicitações de imagem, inflando os relatórios e aumentando as chamadas faturáveis do servidor.

Acessar o AppMeasurement que reside em um iframe

Você pode acessar as variáveis do AppMeasurement pelo objeto iframe. Esses exemplos definem pageName e chamam o método t() usando duas maneiras diferentes para referenciar o objeto 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 as variáveis do AppMeasurement em uma página pai a partir de um iframe. Este exemplo define pageName e chama o método t() usando a parent propriedade.

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

Uso postMessage e ouvintes de evento

Como alternativa, você pode usar ouvintes de postMessage evento e de tela para definir variáveis. Este método não requer 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 com outro código JavaScript, o iframes só pode se comunicar quando os domínios e o protocolo correspondem. Estes exemplos não funcionam se o conteúdo do iframe reside em um domínio diferente do principal.
  • Se o AppMeasurement residir em um iframe, a referrer variável será definida como o URL pai, não como o URL de referência real. É possível definir manualmente a referrer variável para resolver esse problema.
  • O depurador do Adobe Experience Cloud não reconhece solicitações de imagem acionadas em iframes.
  • Activity Map não exibe o mapa de calor sobre links clicados em iframes. Em vez disso, todo o iframe é realçado.

Nesta página