Pergunta

Eu estou tentando rastrear cliques através do Google Analytics que não resultam em um novo pedido. Especificamente, clica em abas que são criados através do jQuery UI guias Widget . Eu estou usando a versão mais antiga do código ( 'ouriço do rastreador') e tentando registrar os cliques assim:

$('.ui-tabs-nav li a').click(function() {
    val = "/tab/" + $(this).attr('href');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

O mesmo método funciona, em outra instância, cuja única diferença significativa, tanto quanto eu posso dizer, é a falta de um símbolo cardinal (#) na cadeia. É que o personagem não é permitido em uma seqüência rastreado por urchinTracker(), ou poderia haver alguma outra causa (que não seja ninguém ter clicado nos links!)?

Foi útil?

Solução

Por padrão, o Google Analytics marcas de âncora . Para habilitá-lo para o código de controlo legado, use o seguinte formato:

_uanchor = 1;
urchinTracker(val);

A definição de um valor a _uanchor variável é o equivalente a chamar o método _setAllowAnchor quando se utiliza a mais recente base de código GA. (Você encontrará uma comparação detalhada na Google Analytics código de acompanhamento Guia de migração -. este link está desatualizado )

O método _setAllowAnchor é descrito no site Google de referência .

Outras dicas

Em resumo, o Google Analytics não pode rastrear links em páginas que contêm um caractere '#'. Um clique no # foo index.html é tratado simplesmente como um clique em index.html, com tudo após o '#' ignorado.

Você poderia considerar escapar o caractere '#':

$('.ui-tabs-nav li a').click(function() {
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

No seu exemplo, isso iria gravar uma exibição de página para /tab/?main, que deve funcionar bem com o Google Analytics.

Se você deseja acompanhar em páginas cliques âncora, o seguinte seria trabalhar globalmente:

window.onhashchange = function() {
  _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}

Tenha em atenção que, se você tem alguns manipuladores específica onclick como

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // some more clever stuff
 });

Você precisa prefixar manualmente o hash para acionar o onhashchange

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // triggers onhashchange
   location.hash = target;
   // some more clever stuff
 });

Parece que você quer o acompanhamento de eventos do Google Analytics o exemplos usam onclick = "" lixo, mas eu aposto que você poderia provavelmente se ligam estes para eventos de clique jQuery também.

  1. Eu tentei usar o método _uanchor = 1;. Que não trabalho. O motivo ele não funciona é que ele é projetado para enviar os parâmetros do Google Analytics como valores de hash, não enviar o valor de hash.

    A partir do guia citado no de Török Gábor resposta , estabelecendo _uanchor a um tem os seguintes efeitos:

    Quando ativado, usos # vez do ? padrão para separar a haste solicitação da string de consulta

    este é na seção 'Acompanhamento da campanha'.

  2. O Rob Cavaleiro resposta funciona bem, mas eu fiz uma pequena modificação. No código pseudo:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

Não tenho certeza se ele realmente importa para GA ter uma URL como foo.html&bar=baz mas ele só parecia mais limpo para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top