【问题标题】:Setting tracking cookie on client side vs server side?在客户端和服务器端设置跟踪cookie?
【发布时间】:2018-07-24 07:11:31
【问题描述】:

我们希望设置跟踪 cookie 来检查我们通过各种营销活动获得了多少用户。在我们网站的每个活动 URL 上,我们添加以下查询字符串参数:- utm_source、utm_medium 和 utm_campaign。

示例网址:- https://example.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=jan

任何时候,我们从服务器上的任何 URL 获取请求,我们都会检查:

  1. 如果 url 有 utm_* 参数,我们会将这些参数保存在 cookie 中。
  2. 如果 url 中没有这样的 utm_* 参数,并且如果引用主机是我们的网站,即https://example.com/,我们会将其保存在 cookie 中 6 个月。
  3. 如果url中没有这样的utm_*参数,并且referer是搜索引擎之一,我们将搜索引擎名称保存在cookie中。

我们还有几个类似的条件。

我们应该在服务器端(C#)还是客户端(javascript)编写这个逻辑?

【问题讨论】:

  • 要么。 - - - - -
  • 这是用于 Google Analytics 的吗?
  • 这是用于分析.. 不仅用于 GA.. 我们在每个订单/交易/引导中保存此 cookie,以标记哪个引导来自哪个活动/媒介/来源

标签: javascript c# asp.net asp.net-mvc cookies


【解决方案1】:

从技术上讲,您可以在任一端进行;但实际上,使用服务器端方法可能会稍微好一些,因为浏览器会更难绕过(无论它们是否接受 cookie)。 noscript 和 adblockers 之类的东西可能会干扰客户端的实现。

此外,如果您在服务器端进行操作,您可以将该信息与浏览器的指纹一起存储在数据库中,并与该信息进行比较以供将来访问。即使 cookie 被阻止/清除,这也会起作用。

【讨论】:

  • 如果浏览器不接受cookie,即使我们从服务器端设置,也会有问题,对吧?因为他们仍然不允许使用 cookie
  • 更正:-如果浏览器不接受cookie,即使我们从服务器端设置它,也会有问题,对吧?当 cookie 来自服务器到浏览器时,浏览器仍然不允许 cookie。因此,服务器不会在下一个请求中获取该 cookie 信息
猜你喜欢
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2011-05-22
相关资源
最近更新 更多