Tengo una página simple que necesito para ejecutar algunos GWC & GATC js y luego redirigir a otra url.Uso de JS Callback con Google Analytics
<head>
<script>
function utmx_section(){}function utmx(){}
(function(){var k='xxx',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return escape(c.substring(i+n.
length+1,j<0?c.length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['gwo._setAccount', 'UA-xxxxxx-x']);
_gaq.push(['gwo._trackPageview', '/xxxxxxxx/test']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google- analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script>
window.location = 'MY REDIRECT URL';
</script>
</head>
El problema que estoy teniendo es que necesito para garantizar que el código GATC GWO & se ejecuta antes de que mi window.location se llama. Podría hacer setTimeout, pero eso no ofrece garantías y agrega tiempo de carga adicional.
¿Alguna idea sobre cómo puedo hacer esto?
Esto funciona y tiene sentido, pero por alguna razón, la [sugerencia oficial] (http://www.google.com/support/analytics/bin/answer.py?answer=55527) es usar 'setTimeout' para redirigir algunos ms después de que el evento se haya enviado a la cola GA. – lucasrizoli
@lucasrizoli y todo lo que creo que se llamará a la función una vez que la solicitud del píxel ha sido hecha por el código GA, pero no después de que regrese. Quizás esa es la razón por la que Google sugiere retrasar el redireccionamiento, aunque no sé si es importante esperar a que vuelva la solicitud. –
Si bien se procesa en secuencia desde la cola, nada indica que las instrucciones anteriores habrán terminado de procesarse antes de que se active el siguiente => el tiempo de espera sigue siendo necesario. Sin embargo, Google está escuchando estos requisitos, estad atentos al registro de cambios de ga.js http://code.google.com/intl/fr/apis/analytics/community/gajs_changelog.html –