7

我正在 Roku 盒子(brightscript)上实现分析事件和页面查看跟踪。这部分不是那么重要,但要知道 JS 不是一个选项,cookie 设置也不是。我可以设置变量,但它们不是典型的 cookie。好的 - 所以我已经实现了一个很好的解决方案(google-analytics-for-roku-developers/),一切都很好 - 除了!!

分析似乎没有跟踪唯一性,并且列出零。但是,它可以很好地跟踪事件:)

这是我的 URI 请求示例(为清楚起见已解码):

http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=1736644096&utmsr=720p HDTV&utmsc=24-bit&utmul=en-us&utmje=0&utmfl=-&utmdt=RokuPageView&utmhn=Home&utmr=-&utmp=Home&utmac=UA-5035974-13&utmcc=__utma=1394882688.2097034752.1347384621.1347384621.1347384621.2;+__utmb=1394882688;+__utmc=1394882688;+__utmz=1394882688.1347384621.2.2.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none);+__utmv=1394882688.13C1CJ109560;

所以,问题 #1 - 我从文档中了解到 __utma 是跟踪唯一性的元素。你看到那里有什么不对吗?

问题 #2 - 我实现的开发代码为每个事件发送一个新的随机 cookie。这对我来说似乎是错误的。我正在考虑将其更改为在所有事件中持续存在的基于会话的 cookie。那是我远远超出我的理解的时候。对此有何指导?

4

1 回答 1

1

我认为#2的答案就是#1的答案。基本上,您需要模拟浏览器如何处理代码中的 cookie。“会话 cookie”只是一个 cookie,即作为 HTTP 标头与请求和响应一起传递的值 - 使它成为会话 cookie 的原因是它的到期日期设置为过去,它告诉浏览器当浏览器实例关闭时将其删除。

Cookie 非常简单——一种绕过 HTTP 无状态(没有内存)这一事实的机制。如果您在响应中传递 HTTP 标头Set-cookie: <value>,则客户端应该记住该值并Cookie: <value>在后续请求中将其传递回标头中。(与域和过期等有关的 cookie 有更多内容,但并不多)。

因此,如果您的客户端(Roku)有一些持久性机制,那么您只需要存储任何新的 cookie,然后在设置新的随机 cookie 之前,检查标头,如果 cookie 已存储,只需按原样发回即可。您可能需要执行某种任务来定期清理过期的 cookie,等等。

不要害怕饼干。它只是一个标题(具有浏览器赋予的魔力)。

于 2012-11-07T22:36:16.917 回答