谷歌分析让我发疯。
我在应用商店中有一个应用。我想发送一封电子邮件直接链接到应用程序商店中的应用程序页面,但我想跟踪点击次数。
到目前为止,我有一个像
这样的链接www.mypage.com/promoletter/
该位置包含一个index.php文件,该文件将302重定向到我自己的网站,如下所示:
header("Location: http://www.mypage.com/index.php?page=App_Store
&utm_source=promoletter&utm_medium=email&utm_campaign=v1-promoletter");
我这样做2重定向,因为
现在,通过我的index.php页面,创建了一个html页面,它执行另一个302重定向到
http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8
也使用上面的php头功能。
现在,一切都很好,但当然它没有被记录在Analytics(因此问题:))。写这个,我意识到这是因为ga.js文件永远不会被加载,因为在php头函数之前你不能有任何输出。
如何解决?
答案 0 :(得分:2)
没有超时的简单代码是:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = false;
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);
})();
_gaq.push(function(){
window.location.replace("http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8");
});
</script>
无需等待,只需设置 ga.async = false; 并更快地重定向工作,几乎没有延迟。
答案 1 :(得分:1)
解决此问题的最佳方法是使用javascript重定向。发送包含ga.js和脚本标记的html页面:
...
<script type="text/javascript" src="ga.js"></script>
<script type="text/javascript">
window.location.href = "http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8"
</script>
...
或者确保加载了ga.js:
...
<script type="text/javascript" src="ga.js"></script>
<script type="text/javascript">
setTimeout('window.location.href = "http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8http://itunes.apple.com/ie/app/MY-APP/id-SO-AND-SO?ls=1&mt=8"',500)
</script>
...
我不确定是否可以“欺骗”ga像素请求。您可能还需要不适合您的cookie。但是,您可能可以伪造后端的ga像素来跟踪正确的值。
javascript重定向可能会更简单一些:)
答案 2 :(得分:1)
谢谢Ragnar,
你指出了我正确的方向,自从发表我的问题后我学到了很多东西。 也许其他人对我的实际解决方案感兴趣,或者有人有更好的方法。
我已经使用3次重定向解决了我的问题(不幸的是我没有看到另一种方式)。 首先,我有一个类似的链接:
www.mypage.com/promoletter/
这比重定向到(php标题函数):
header("Location:
http://www.mypage.com/index.php?page=processGAVars&nextPage=App_Store
&utm_source=promoletter&utm_medium=email&utm_campaign=v1-promoletter");
构建的页面正在处理Google Analytics变量,并且当javascript被禁用时,再次使用javascript或元刷新重定向到另一个页面(nextPage = App_Store)。 你可以直接重定向到App Store,但是在用户的地址栏中留下了一个包含GA变量的URL(显然只在iPhone / iPad上,见下文)。
重定向之前有一个短暂的延迟,因此GA会更改它的工作(竞争条件)。
$url = "http://www.mypage.com/index.php?page=".$_GET['nextPage'];
<noscript>
<meta http-equiv="refresh" content="1; url=<?php echo $url;?>" />
</noscript>
<script type="text/javascript">
function redirect() {
window.location.replace("<?php echo $url;?>");
}
</script>
<body onload="setTimeout('redirect()', 500)">
最后一页使用javascript或元刷新再次实际重定向到App Store,就像上面一样,没有任何延迟。
到目前为止,在我测试的浏览器中(使用和不使用javascript,chrome,safari以及iPhone / iPad safari和terra的Firefox),有一个短暂的延迟,用户可以看到重定向。但是,此重定向不会显示在用户历史记录中,并且一旦返回前一页,则按后退按钮。
在用户的计算机上,获取itunes.apple.com页面。在IOS设备上,App Store应用程序启动,浏览器显示用户离开的页面。
我发现在iDevice上,包括实际重定向到iTunes页面的页面中的GA javascript,阻止了返回原始页面的过程(例如stackoverflow.com)。然后向用户显示(空白)重定向页面。