google analytics catch 22

时间:2011-01-13 16:36:00

标签: php javascript jquery google-analytics autosave

我在这里有一个使用谷歌分析跟踪代码的情况。 我有一个表单,在提交时将数据提交给api。 我们最近决定将此提交记录为带有Google Analytics分析跟踪代码的电子商务交易。在提交应用程序并从api返回数据之前,不会记录事务。这是因为来自api的数据包含在交易中。

问题在于表单还会将数据自动保存到数据库中,这样如果表单没有完全填写和/或提交,则自动php脚本可以在以后提取它以提交给api。

现在抓住了22

我需要找到一种方法来实现这个通过自动PHP脚本提交的数据。

3个不起作用的解决方案

  1. 将服务器端的交易提交给ga。这是可能的,但在这种情况下,谷歌分析从客户端收集的所有数据都来自服务器,这消除了开始使用谷歌分析的全部目的。

  2. 在提交表单之前提交交易。请记住,我们需要从api中检索要在交易中提交的数据。

  3. 将有关客户端的信息保存到数据库,以便在服务器端向Google Analytics分析提交交易时包含在标题中。如果我新增了谷歌分析收集的有关客户端的所有信息,如何欺骗我的IP地址并有时间构建这样的解决方案,那么这样的事情可能会有用。

4 个答案:

答案 0 :(得分:1)

使用AJAX进行自动保存,并使用SUBMIT进行最终更新。

答案 1 :(得分:1)

对于选项3,您可以使用Urchin tracking methods来模拟发送到Google Analytics的数据,然后将其发送到本地文件,该文件会抓取请求信息,然后将其发送给Google完成。

所以,你的JS代码看起来像这样:

var pageTracker = _gat._getTracker("UA-XXXX-1");
pageTracker._setLocalServerMode(); //this disables external GA calls. 
pageTracker._setLocalGifPath("/foo/bar.gif");
pageTracker._trackPageview(); //or your transaction calls

通过查看针对常规__utm.gif请求的网址请求,似乎唯一缺少的是utmcc参数,该参数似乎是Google Analytics Cookie的网址编码版本。您也希望跟踪此信息(在document.cookie之外,或在服务器端),以便在发出Google Analytics请求时将其添加到查询字符串中。这很重要,因为这是存储会话和源信息的地方;否则你的跟踪将没有上下文。

然后,在服务器上,bar.gif可以重写为bar.php,它会捕获查询字符串并请求Google 发送到其服务器的标头(最重要的是查询字符串)和用户代理字符串和IP地址); ,然后添加所需的任何数据,然后获取生成的查询字符串,并向该URL的Google Analytics版本发出cURL请求,并为浏览器添加欺骗标题等。

答案 2 :(得分:1)

除非您可以在API返回必要的数据位后使用异步跟踪代码发送数据,否则没有明智的方法。上面描述的方法很好,但仍然需要你向IP欺骗IP,因为IP是从来电中读取的,它将再次成为服务器。

根据我的经验,Google Analytics(分析)不适用于此类案例(服务器端跟踪)。

答案 3 :(得分:0)

有一个问题是从#1027660的服务器端发送Google Analytics点击,其中提供了有关如何生成服务器端点击的若干建议。

虽然这违反了你的“不能这样做#3”,你可能会发现它看起来很简单,值得破坏这条规则。

祝你好运!