Avaliação de aplicativo de página única

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.