gpt4 book ai didi

python - 当表单在 Django 中有效时触发谷歌分析事件

转载 作者:太空狗 更新时间:2023-10-29 20:25:32 27 4
gpt4 key购买 nike

我的网站上有一个表单,其他表单用作基础(并且位于不同的 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)

这可能吗?将服务器端与客户端 (javascript) 放在一起做有什么注意事项吗

最佳答案

分析跟踪通常使用页面上的 Javascript 完成,表单验证通常是服务器端的工作。您的示例似乎混合了 Javascript 和 Python 代码,这当然是行不通的。

大多数情况下,您只想使用通用 Javascript 在致谢页面触发事件。使用 Django 很容易做到,您只需要小心,每次使用该表单时,它都会验证您是否将用户发送到相同的感谢页面,您在该页面中使用了您构建的具有事件触发代码的自定义模板。

可以使用 measurement protocol 在服务器端执行此操作.但是有几件事你必须要小心:

1) 使用测量协议(protocol)

测量协议(protocol)仅定义 HTTP 请求,没有客户端库(至少是官方库),因此您必须自己创建和运行查询。这会给您的项目增加不必要的复杂性。

2) 迁移到 Universal Analytics

在您的示例中,您似乎使用了经典分析。 Google Analytics 将他们的跟踪代码升级为一种称为 Universal Analytics 的新语法。测量协议(protocol)仅支持 Universal Analytics,因此如果您打算使用测量协议(protocol),您还应该将所有站点跟踪代码升级到 Universal,以便从客户端/服务器端发送的点击是兼容的。

3) 延迟

测量协议(protocol)可能需要几毫秒才能做出响应。如果您这样做了数百万次,等待 HTTP 响应可能会成为瓶颈,从而延迟您的例程。您可能希望使用 celery 在异步任务中创建并发出此 HTTP 请求或类似的东西。

4) session 继续

Google Analytics 在客户端使用 cookie 来存储客户端 ID,用于了解它是跨多个请求的同一用户。因此,您希望使用相同的 cid 从服务器端发出请求。这将允许 GA 将 javascript 命中与用户在网站上进行的其他命中链接起来。所以你需要获取 _ga cookie,解析它并提取请求中使用的 cid。除了 cid 之外,您还想从真实用户中提取 userIp 和 userAgent 以使用测量协议(protocol)发送您的请求,GA 使用这些来创建地理报告和浏览器/操作系统报告。

如您所见,这是一项繁重的工作,如果您真的必须在服务器端跟踪它,那也许是值得的。但是,如果您不一定非要这样做,那么坚持使用基础知识并只使用 Javascript 可能会更好。

关于python - 当表单在 Django 中有效时触发谷歌分析事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com