AdWords
473 Usuários online agora
473 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

Cross Domain Tracking" no Universal Analytics (analytics.js)

Calouro ✭

Tenho uma dúvida sobre a configuração do "Cross Domain Tracking" no
Universal Analytics (analytics.js).

Tenho uma loja virtual e uso o domínio www.dominioA.com.br e o
checkout é feito em outro domínio www.dominioB.com.br

No Google Analytics Classic (ga.js) usava o seguinte código:

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-99999999-9']);
  _gaq.push(['_setDomainName', 'none']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type =
'text/javascript'; ga.async = true;
    ga.src=('https:' == document.location.protocol ? 'https://' :
'http://') + 'stats.g.doubleclick.net/dc.js';
    var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
  })();
</script>

Na passagem do domínio A para o domínio B que é um FORM/POST, usava o
seguinte código:

_gaq.push(['_linkByPost', document.Form]);

Desta forma o domínio B consegue ler os cookies do domínio A e
funciona corretamente a transição de domínios.


Estou migrando para o Universal Analytics (analytics.js) e li as
instruções que constam no artigo abaixo:
https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain


Nas páginas da loja que estão em www.dominioA.com.br coloquei o seguinte código:

<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-99999999-9', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', ['www.dominioB.com.br'] );
  ga('send', 'pageview');
</script>



Nas páginas da loja que estão em www.dominioB.com.br coloquei o seguinte código:

<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-99999999-9', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', ['www.dominioA.com.br'] );
  ga('send', 'pageview');
</script>


Fiz desta forma seguindo o código que está de exemplo em
"Acompanhamento de vários domínios" da página abaixo:
https://developers.google.com/analytics/devguides/collection/upgrade/reference/gajs-analyticsjs#cros...

Desta forma não funciona, quando mudo do domínio A para o domínio B, o
Analytics cria uma nova sessão e coloca como "Origens de tráfego" em
"Referência" que a nova sessão se originou do domínio A.

A mudança de domínio ocorre em um FORM/POST e desejo manter a mesma
sessão, como fazia anteriormente com o Analytics Clássico. Alguém tem
algum exemplo desta integração funcionando? Poderiam me ajudar.

Já tentei outras variações do código, mas até agora sem sucesso.

Obrigado.

Alexandre

Especialistas responderamverified_user

Re: Cross Domain Tracking" no Universal Analytics (analytics.js)

[ Editado ]
Principal Colaborador

Oi Alexandre!

 


Alexandre B escreveu:


Nas páginas da loja que estão em www.dominioA.com.br coloquei o seguinte código:

<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-99999999-9', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', ['www.dominioB.com.br'] );
  ga('send', 'pageview');
</script>



Nas páginas da loja que estão em www.dominioB.com.br coloquei o seguinte código:

<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-99999999-9', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', ['www.dominioA.com.br'] );
  ga('send', 'pageview');
</script>


Até aqui, entendo que os códigos que você está usando estão ok.

A questão é o código que você deve usar no formulário do site origem.

 

As instrucões são conforme este artigo, item "Decorating HRML forms":

 

https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain#decorateforms

 

No qual você deveria adicionar o seguinte código na página que contém o formulário:

 

var myForm = document.getElementById('myForm');
addListener(myForm, 'submit', decorateForm);

function decorateForm(event) {
  event = event || window.event;                             // Cross browser hoops.
  var target = event.target || event.srcElement;

  if (target && target.action) {
    ga('linker:decorate', target);
  }
}

// Cross browser way to listen for events.
function addListener(element, type, callback) {
 if (element.addEventListener) element.addEventListener(type, callback);
 else if (element.attachEvent) element.attachEvent('on' + type, callback);
}

 no qual você substitui o "myForm" em

getElementById('myForm')

  pelo id do seu formulário na página.

 

Você já tentou tal código? caso tenha tentado tem como você abrir o console na página do formulário e indicar alguma mensagem de erro JS que esteja ocorrendo?

 

Caso já tenha resolvido o problema. Nos diga o segredo  Smiley feliz

 

___

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