2011-12-29 5 views
0

У меня есть небольшой скрипт, который перенаправляет пользователей на главный сайт, если они происходят из баннера на моих/других удаленных сайтах.HTTP Referrer on Redirection

<? 
. 
.. 
... 
.... 
header("location:$golink"); 
?> 

Но Google Analytics не будет показывать сайт реферера (где скрипт работает), а это показывает URL, где щелкнул баннер. Очевидно, я не могу отслеживать все сайты, на которых появляется баннер и не хочет. Я хочу, чтобы refferer был сайтом, на котором работает скрипт. Как мне использовать $ _SERVER ['HTTP_REFERER']; для этого?

ответ

3

GA имеет метод, который позволит вам override the default referring URL (document.referrer) с заданным значением.

Так что, если вы хотите сохранить перенаправление на стороне сервера, вы можете добавить ссылочный URL-адрес в качестве параметра строки запроса в свой вызов header(), а затем искать его на целевой странице и указывать в качестве ссылочного URL-адреса ,

Я не знаю, как вы строите переменную $ golink, но в основном вы бы добавить что-то вдоль линий:

$golink .= "?ref=" . $_SERVER['HTTP_REFERER'];

Использовать & вместо ?, если есть уже URL PARAMS , и приведенный выше код предполагает использование ref в качестве параметра URL, поэтому используйте любой желаемый параметр.

Тогда на целевых страницах, прежде чем ваш _trackPageview вызов, вы бы добавить

_gaq.push(['_setReferrerOverride', ref]);

ref будет Javascript переменной со значением исх = ххх строки запроса парам. По какой-то странной причине Javascript не имеет собственного способа захватить значения параметра URL-адреса, и GA не предоставляет (открытое) решение. Если у вас уже есть решение на ваших страницах для захвата параметров URL (например, что-то из фреймворка или функции, которую вы уже сделали), используйте это. В противном случае довольно легко найти функцию javascript, которая сделает это за вас.

Есть несколько преимуществ для делать это таким образом:

  1. Вам не придется беспокоиться о посетителе видящим промежуточной страницы.
  2. Вам не нужно беспокоиться о том, что у GA не будет возможности полностью загрузить до перенаправления
  3. Вы можете видеть ссылки, привязанные непосредственно к вашим целевым страницам, потому что на промежуточной странице вы всегда увидите, что межстраничная страница как реферер, и вам придется посмотреть ссылки на отчеты URL для межстраничной страницы.
+0

Мой домен перенаправляет на другой домен, и я волнуюсь, даже если я настроил реферер (и у меня есть доступ к 'setRefererOverride' во втором домене), возможно, все параметры, которые создаются google, не будут одинаковыми (isnt это конкретная страница?), или я должен действительно беспокоиться только о домене? –

1

Да, G.A слепы к этому виду серверной части. И их PHP Api тоже не помогает.

Однако, вы могли бы иметь короткую страницу перенаправления, держа тег GA внутри как это:

<html> 
<head> 
<title>A web page that points a browser to a different page after 2 seconds</title> 
<meta http-equiv="refresh" content="2; URL=<?php echo $golink; ?>"> 
<meta name="keywords" content="automatic redirection"> 
<script>var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))</script> 
</head> 
<body> 
If your browser doesn't automatically go there within a few seconds, 
you may want to go to 
<a href="<?php echo $golink ?>">the destination</a> 
manually. 
</body> 
</html> 

Обратите внимание на $golink переменной в мета-тег.

Если вы используете это, не забудьте заменить UA-XXXXX-X на ваш реальный номер счета.

Кредиты: оптимизированная GA тег идет в Mathias Bynens

[EDIT: JavaScript только версия]

<html> 
<head> 
<title>Redirecting you...</title> 
<script>var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))</script> 
<script> 
<!-- 
if (window.addEventListener) 
    window.addEventListener('load', function() { window.location="<?php echo $golink; ?>"; }, false); 
else 
    window.attachEvent('onload', function() { window.location="<?php echo $golink; ?>"; }); 
// --> 
</script> 
</head> 
<body> 
</body> 
</html> 
+0

Я вижу, спасибо .. но я не хочу использовать meta refresh. Даже я использую 0 секунд, я все еще вижу страницу, перенаправляющую, которую я вообще не хочу видеть. Любым другим путем ? возможно, javascript? – hasbehas

+0

Да, вы могли бы выполнить полное перенаправление Javascript, но пользователь все равно будет видеть пустую страницу в течение секунды секунды, потому что некоторые JS-файлы должны загружаться независимо от того, что. Вы хотите, чтобы я обновил страницу? –

+0

да пожалуйста .. я попробую это тоже .. – hasbehas