Tom*_*sen 9 python django google-analytics
我的网站上有一个表单,其他表单用作基础(并且在不同的URL上)但是它们都做同样的工作,创建用户.
我认为当表单有效时,python/django可以将特定事件推送到谷歌分析.
class FormBase(FormView):
def form_valid(self, form):
#push to google analytics
#_gaq.push(['_setAccount', 'UA-12345-1']);
#_gaq.push(['_trackPageview', '/home/landingPage']);
return super(FormBase, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)
这可能吗?是否有任何警告做服务器端与客户端(javascript)
分析跟踪通常使用页面上的Javascript完成,表单验证通常是服务器端作业.您的示例似乎混合了Javascript和Python代码,当然,这些代码不起作用.
最常见的是你只想在感谢页面上使用常见的Javascript来激活事件.使用Django很容易,每次使用该表单时都要小心,它会验证您将用户发送到同一个感谢页面,在那里您使用自己构建的具有事件触发代码的自定义模板.
可以使用测量协议来执行此服务器端.但是有一些事情需要注意:
测量协议仅定义HTTP请求,没有客户端库(至少是官方库),因此您必须自己创建并运行查询.这将增加您的项目的复杂性,这是不必要的.
在您的示例中,您将使用Classic Analytics.Google Analytics将其跟踪代码升级为名为Universal Analytics的新语法.测量协议仅支持Universal Analytics,因此,如果您要使用测量协议,还应将所有站点跟踪代码升级到Universal,以便从客户端/服务器端发送的命中是兼容的.
测量协议可能需要几毫秒才能完成.如果您这样做了数百万次,等待HTTP响应可能会成为瓶颈,延误您的日常工作.您可能希望使用celery或类似的东西在异步任务中创建和发出此HTTP请求.
Google Analytics(分析)使用客户端上的Cookie来存储客户端ID,该客户端ID用于了解多个请求中的同一用户.因此,您希望使用相同的cid从服务器端发出请求.这将允许GA将javascript命中与用户在网站上执行的其他命中相关联.所以你需要抓取_ga cookie,解析它并提取请求中使用的cid.除了cid之外,您还希望从真实用户中提取userIp和userAgent以使用测量协议发送您的请求,GA使用这些来创建Geo报告和Browser/OS报告.
正如你所看到的那样,它有很多工作,也许如果你真的需要跟踪它的服务器端,它是值得的.但是,如果你不一定要坚持基础知识,只需使用Javascript.