Google Analytics:跟踪从电子邮件到外部网页的链接

时间:2011-09-02 10:41:06

标签: google-analytics http-status-code-302

谷歌分析让我发疯。

我在应用商店中有一个应用。我想发送一封电子邮件直接链接到应用程序商店中的应用程序页面,但我想跟踪点击次数。

到目前为止,我有一个像

这样的链接
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重定向,因为

  1. 网址看起来更好,
  2. 我可以在发送简报后编辑utm变量
  3. 现在,通过我的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头函数之前你不能有任何输出。

    如何解决?

3 个答案:

答案 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)。然后向用户显示(空白)重定向页面。

看到它在行动? http://hd-apps.com/links/stackoverflow/