AdWords
671 Usuários online agora
671 Usuários online agora
Aprenda a usar recursos e relatórios para medir seus resultados com o AdWords: quais os melhores relatórios do AdWords e as principais formas de utilizá-los para entender e otimizar a performance de sua conta
Guie-me
star_border
Responder

Evento de link externo não funciona

[ Editado ]
Calouro ✭

Galera, coloquei os javascript nos link externos do site e no painel do Analytics não aparece nenhum monitoramento em Eventos.

 

Ficou assim:

 

 

<a href="http://www.blackedecker.com.br/BDHome.asp" target="_blank" onclick="trackOutboundLink('http://www.blackedecker.com.br/BDHome.asp'); return false;"><img src="http://comerbemparavivermelhor.com.br/wp-content/uploads/2015/10/output_BYtQZC.gif"></a>
<a href="http://www.alaskaseafood.com.br/home/"  target="_blank" onclick="trackOutboundLink('http://www.alaskaseafood.com.br/home/'); return false;"><img src="http://comerbemparavivermelhor.com.br/wp-content/uploads/2015/10/logo-black-oficial-cópia.jpg"></a>

O script do body de acompanhamento é esse:

 

 

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-68118716-1', 'auto');
  ga('send', 'pageview');

</script>

 

 

O script do header coloquei esse:

 

 

<script>:
/**
* Função que acompanha um clique em um link externo no Google Analytics.
* Essa função processa uma string de URL válida como um argumento e usa essa string de URL
* como o rótulo do evento.
*/
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
     function () {
     document.location = url;
     }
   });
}
</script>

 Alguem sabe porque? Valeu!

Especialistas responderamverified_user

Soluções aceitas
Marcado como Melhor Resposta.
Solução
Aceita pelo autor do tópico Lucas M
Outubro 2015

Re: Evento de link externo não funciona

Principal Colaborador

Lucas, 

 

O código fica assim:

 

<script>
/**
* Função que acompanha um clique em um link externo no Google Analytics.
* Essa função processa uma string de URL válida como um argumento e usa essa string de URL
* como o rótulo do evento.
*/
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
     function () {
     document.location = url;
     }
   });
}
</script>

Sem os ":"

Ricardo Gaya

Exibir solução no post original


Todas as respostas

Re: Evento de link externo não funciona

Principal Colaborador
Olá Lucas, como vai?

Aparentemente seus códigos parecem estar em ordem e não achei de primeira mão nada que pudesse causar algum conflito, como uma pontuação errada ou algo fora do lugar.

O que me chamou a atenção foi o fato de você ter dito que o código do GA está instalado no BODY. Apesar de funcionar, como parte das boas práticas e instalação recomendada, o código deve ser instalado também dentro do <head></head>.

Se você puder mover o código do GA pro Head e ver se funciona...

Pode ser também algum conflito com outros códigos do seu site. Precisa ver também se você não está com nada bloqueando javascript pra você.

Se você puder postar o site pra gente ver, pode ajudar.

Abraços,

Re: Evento de link externo não funciona

[ Editado ]
Principal Colaborador

Lucas, tudo bem?

Aparentemente o problema esta na "ordem" em que seus snippets estão carregando. Veja, você primeiro carrega a function trackOutboundLink e só depois você carrega o snippet padrão do GA.

Ou seja, os hits que você esta teoricamente deveria enviar para GA estão indo para Limbo e não para sua conta UA. Outra coisa de extrema importância é você implementar esses snippets no seu <head>.

A ordem ficaria assim:

Snippet padrão do GA :

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-68118716-1', 'auto');
  ga('send', 'pageview');

</script>



E depois:

<script>:
/**
* Função que acompanha um clique em um link externo no Google Analytics.
* Essa função processa uma string de URL válida como um argumento e usa essa string de URL
* como o rótulo do evento.
*/
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
     function () {
     document.location = url;
     }
   });
}
</script>


Assim você enviará os hits para o Google Analytics. Piscadela do Smiley Ok?

Abraço.

Ricardo Gaya

Re: Evento de link externo não funciona

Principal Colaborador

Ricardo-Gaya escreveu:


Aparentemente o problema esta na "ordem" em que seus snippets estão carregando. Veja, você primeiro carrega a function trackOutboundLink e só depois você carrega o snippet padrão do GA.

Ou seja, os hits que você esta teoricamente deveria enviar para GA estão indo para Limbo e não para sua conta UA. Outra coisa de extrema importância é você implementar esses snippets no seu <head>.


Javascript possui uma característica chamada "Elevação" ou "içamento" no qual ele eleva para o topo do código todas as declarações de funções, assim a ordem não seria problema.

 

Apesar de trackOutboundLink() não ser uma função, ele é chamado somente quando o usuário dá o clique no link, e a declaração já foi carregada faz tempo pois ele somente conseguirá dar o clique após o carregamento do DOM. 

 

Eu também não consegui detectar erros no código - somente uma depuração para conseguir resolver o problema - se você conseguir nos fornecer uma página com o código instalado talvez consigamos ajudar mais. 

___

"Você não precisa de uma empresa de 100 funcionários para desenvolver aquela ideia" ~Larry Page

Re: Evento de link externo não funciona

Principal Colaborador
Gravity, bom dia,

Verdade, o trackOutboundLink() somente será chamado com o evento onclick do link. Você tem razão! Smiley feliz


Ricardo Gaya

Re: Evento de link externo não funciona

[ Editado ]
Principal Colaborador

Fiz alguns testes com o trackOutboundLink direto no código em um site teste e realmente não esta funcionando como deveria.

 

Mesmo estando definido: trackOutboundLink is not defined

 

Procurei a documentação oficial no Developers e nada. Alguém tem alguma referência?

 

Bom, para uma resolução "paralela" do problema, podemos  enviar da seguinte maneira:

 

 

<a href="http://linkexterno.com" onclick="ga('send','event','Outgoing Links','linkexterno.com')" target="_blank">Seu texto âncora</a>

 

 

Testei o funciona praticamente da mesma maneira. Smiley feliz Vou continuar pesquisando para ver o que aconteceu com o trackOutboundLink. De qualquer forma você pode fazer dessa maneira. 

 

Abraço.

Ricardo Gaya

Re: Evento de link externo não funciona

Principal Colaborador
A documentação está no help do GA e não do Devolpers, demorei pra achar também hahaha

https://support.google.com/analytics/answer/1136920?hl=pt

mas aparentemente, usou certinho o que está no guia.

Re: Evento de link externo não funciona

[ Editado ]
Principal Colaborador

Oi @leandrofm, obrigado. Smiley feliz

 

E vi essa documentação e utilizando ":" logo após a abertura de <script> causa o seguinte "erro": Uncaught ReferenceError: trackOutboundLink is not defined. E sinceramente não entendi sua funcionalidade técnica. Smiley triste Na minha opinião é um erro na documentação.

 

Sem os ":" funciona normalmente! Eu queria achar a referência dessa function no developers para avaliar a necessidade dos ":". Será que temos em algum lugar (continuo pesquisando)? 

 

@Gravity você sabe porque teríamos esse "erro" utilizando os ":" como sugerido pelo Google?

Ricardo Gaya

Re: Evento de link externo não funciona

Principal Colaborador
Também achei estranho o uso do dois pontos, tanto que vi no código que o Lucas postou e fui ver na documentação oficial.


Agora, não vejo uma aplicação técnica pros dois pontos no código. De qualquer jeito, o sinal de fechamento ">" fica muito perto dos dois pontos no teclado. Talvez a pessoa que escreveu a documentação tenha esbarrado sem querer.

Se sem os dois pontos o código funciona, achamos o problema.

Re: Evento de link externo não funciona

Principal Colaborador
Pois é fica perto e suspeito! rs... Smiley feliz
Ricardo Gaya