2015-02-20 3 views
2

У меня есть страница, перенаправляющая пользователя на другой сайт. Я хочу отслеживать пользователей, которые нажимают эту ссылку.Как включить аналитику google на странице переадресации?

Мой код:

<!--page start--> 
    <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', 'code', 'auto'); 
     ga('send', 'pageview'); 
    </script> 

    <?php 
     header('Location: http://wikipedia.org'); 
    ?> 
<!--page end--> 

выше перенаправляет пользователя, но аналитика код Google никогда не выполняется. Я предполагаю, что это происходит потому, что перенаправление является мгновенным, и javascript-скрипт не успевает исполнить. Может кто-нибудь объяснить, как отслеживать пользователей, которые нажимают на ссылку?

+0

Да, РНР на стороне сервера, и выполняется перед JavaScript .. вы можете попытаться положить е Javascript перенаправлять после аналитике кода –

+0

@Simone M: Спасибо, но я должен быть уверен, что перенаправление всегда выполняется (даже для тех, у кого нет javascript), так как это ссылка для загрузки. Я не хочу, чтобы пользователи говорили, что ваша загрузка нарушена ... – MasterCode100

+0

Выполнение клиентской части перенаправления не является идеальным. У него будет заметное отставание, и поскольку сервер ответит 200, поисковые системы не будут знать о перенаправлении, и это будет плохо для SEO. Выполнение этой клиентской стороны ** просто ** для отслеживания аналитики является плохой причиной, так как вы можете сделать это на стороне сервера через [Протокол измерений Google Analytics] (https://developers.google.com/analytics/devguides/collection/protocol /). –

ответ

1

«Спасибо, но я должен быть уверен, что перенаправление выполняется всегда (даже для тех, с JavaScript выключен)»

Удалить заголовок PHP. добавьте путь без скрипта. Затем сделать как предложено Simone:

<head> 
<script> 
....google analytics.... 
</script> 
<noscript> 
    <meta http-equiv="refresh" content="0; url=http://wikipedia.org" /> 
</noscript> 
</head> 
<body onload="onWindowLoad()"> 
<script> 
    onWindowLoad = function(){ 
     window.location.href = "http://wikipedia.org"; 
    } 
</script> 
</body> 
+0

Отличное спасибо! Один вопрос: нормально ли использовать только мета-перенаправление? – MasterCode100

+0

GA - асинхронный, вы рискуете уйти, пока не закончите? Испытайте это, хотя. возможно, вы можете делать то, о чем вы думаете. – Radio

+0

Это асинхронный режим, но есть возможность синхронизировать его. Может быть, я должен изменить 'a.async = 1;' на 'a.async = 0;'? – MasterCode100

Смежные вопросы