Neste guia, descrevemos como usar a analytics.js para avaliar a atividade de páginas em sites com conteúdo que seja carregado dinamicamente sem os tradicionais carregamentos de página completa.
Visão geral
O aplicativo de página única (SPA, na sigla em inglês) é um aplicativo da Web ou website que carrega todos os recursos necessários para navegar por todo o site no primeiro carregamento de página. À medida que o usuário clica em links e interage com a página, o conteúdo subsequente é carregado dinamicamente. O aplicativo atualiza o URL na barra de endereço para emular a navegação tradicional nas páginas. No entanto, outra solicitação de página completa nunca é feita.
A tag padrão do Google Analytics funciona bem com sites tradicionais porque o código do snippet é executado toda vez que os usuários carregam uma nova página. No entanto, para um aplicativo de página única, em que o site carrega o novo conteúdo da página dinamicamente em vez dos carregamentos de página completa, o código do snippet da analytics.js é executado apenas uma vez. Isso significa que as exibições virtuais subsequentes de página precisam ser registradas de forma manual à medida que o novo conteúdo é carregado.
Acompanhamento de exibições virtuais de página
Quando o aplicativo carrega conteúdo dinamicamente e atualiza o URL na barra de endereço, os dados armazenados no rastreador também são atualizados.
Para atualizar o rastreador, use o comando set
e informe o novo valor page
:
ga('set', 'page', '/new-page.html');
Depois que você determinar o novo valor da página, ele será usado por todos os hits subsequentes enviados. Para registrar uma exibição de página, envie um hit desse tipo logo após atualizar o rastreador.
ga('set', 'page', '/new-page.html'); ga('send', 'pageview');
Embora o comando send
para hits de exibição de página aceite um campo page
opcional como o terceiro parâmetro, enviar o campo page
dessa forma não é recomendado ao medir aplicativos de página única. O motivo disso é que os campos transferidos por meio do comando send
não são definidos no rastreador e são aplicados somente ao hit atual. Não atualizar o rastreador causará problemas se seu aplicativo enviar hits não relacionados a visualizações de página (por exemplo, eventos ou interações sociais), porque eles serão associados ao valor page
presente no rastreador durante a criação dele.
Gerenciamento de vários URLs para o mesmo recurso
Alguns SPAs atualizam somente o hash do URL quando eles carregam conteúdo dinamicamente. Isso pode criar situações em que muitos caminhos de página diferentes apontam para o mesmo recurso. Nesses casos, geralmente é melhor escolher um URL canônico e enviar o valor page
para o Google Analytics.
Por exemplo, um site cuja página "Sobre" pode ser acessada em de um dos URLs a seguir:
/about.html
/#about.html
/home.html#about.html
Para evitar a duplicação dos seus relatórios, é melhor capturar todas essas visualizações de página como /about.html
.
Considerações importantes
Não atualizar o referenciador do documento
Quando você cria um objeto do rastreador usando o comando create
, o valor de document.referrer
é armazenado no campo referrer
. No contexto de um aplicativo de página única que não usa carregamentos de página completa, o campo referrer
permanecerá sempre o mesmo.
Apesar disso, não é necessário atualizar o campo do referenciador manualmente antes de enviar hits de exibição de página. O Google Analytics é capaz de determinar automaticamente o caminho de navegação correto.
Não atualizar o local do documento
Da mesma forma que o rastreador usa document.referrer
para o campo referrer
, ele utiliza document.location
para location
, que pode conter dados de campanha ou outros metadados na forma de parâmetros de consulta anexados no fim do URL.
Atualizar qualquer campo da campanha ou outros metadados verificados pelo Google Analytics pode encerrar a sessão atual e iniciar uma nova. Para evitar esse problema, não atualize o campo location
ao avaliar exibições virtuais de página em um aplicativo de página única. Em vez disso, use o campo page
.
Não criar novos rastreadores
Não crie novos rastreadores em um aplicativo de página única com a intenção de imitar o que o snippet de acompanhamento JavaScript faz em websites tradicionais. Isso pode enviar um referenciador e dados de campanha incorretos, conforme descrito acima.