我有一个小脚本,如果用户来自我/其他远程网站上的横幅,则会将用户重定向到主网站。
<?
.
..
...
....
header("location:$golink");
?>
但谷歌分析不会显示引荐来源网站(脚本工作的位置),而是显示点击横幅的网址。显然,我无法跟踪横幅出现和不想要的所有网站。我希望refferer成为脚本工作的站点。我如何使用 $ _ SERVER ['HTTP_REFERER']; 才能执行此操作?
答案 0 :(得分:3)
GA有一种方法可以让您使用指定值override the default referring URL(document.referrer)。
因此,如果要保留服务器端的重定向,可以在header()调用中将引用URL作为查询字符串参数附加,然后在目标页面上查找它并将其指定为引用URL。
我不知道你是如何构建你的$ golink变量的,但基本上你会添加以下内容:
$golink .= "?ref=" . $_SERVER['HTTP_REFERER'];
如果已经存在网址参数,请使用&
代替?
,并且上面的代码假设使用ref
作为网址参数,因此请使用您想要的任何变量。
然后在目标网页上,在_trackPageview
来电之前,您需要添加
_gaq.push(['_setReferrerOverride', ref]);
ref
将是一个javascript变量,其值为ref = xxx查询字符串参数。出于某种奇怪的原因,Javascript没有本地方式来获取URL参数值,GA也没有提供(暴露的)解决方案。如果您已经在页面上有一个解决方案来获取URL参数(例如来自框架或您已经创建的函数的东西),那么就使用它。否则,很容易找到一个能为你做的javascript函数。
这样做有几个好处:
答案 1 :(得分: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
[编辑:仅限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>