2011-01-13 159 views
0

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

问题是表单还将数据自动保存到数据库,以便如果表单没有完全填写和/或提交,自动化的php脚本可以稍后将其提交给api。

现在赶上22

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

3解决方案,将无法正常工作

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

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

  3. 将有关客户端的信息保存到数据库中,以便在将服务器上的事务提交到Google Analytics(分析)时包含在标题中。像这样的东西可能会工作,即如果我新增谷歌分析收集有关客户端的所有信息,如何欺骗我的IP地址,并有时间来构建这样的解决方案。

回答

1

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

+0

我为我的自动保存使用ajax。对不起,我认为这是暗示。 – 2011-01-13 16:48:08

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 

从看URL请求,这使得对一个普通__utm.gif请求,似乎唯一缺少的重要的是utmcc参数,这似乎是Google Analytics(分析)Cookie的网址编码版本。你也希望跟踪这个(在document.cookie之外,或者在服务器端),这样当你发出Google Analytics请求时,你可以将它添加到查询字符串中。这很重要,因为这是存储会话和源信息的地方;否则你的跟踪将不会有上下文。

然后,在服务器上,bar.gif可以改写为bar.php,捕捉,谷歌已发送给它的服务器查询字符串和请求头(首要的是查询字符串和用户代理字符串和IP地址); ,然后添加所需的任何数据,然后获取生成的查询字符串,并向该网址的Google Analytics版本发出cURL请求,并为浏览器等设置欺骗性标头。

1

除非您可以在API返回必要的数据位后使用异步跟踪代码发送数据,否则没有明智的方法。上面描述的方法很好,但仍然会要求你将IP伪装成Google,因为从传入的呼叫中读取IP并且它将再次成为服务器。

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

0

有一个关于从服务器端发送Google Analytics匹配的问题#1027660有几条关于如何生成服务器端点击的建议。

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

祝你好运!