我一直在使用 Google Analytics 对我的网络应用程序进行基本分析 - 只是使用这样的 javascript 调用来跟踪页面印象:
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview')
这种方法总是让我感到沮丧,因为我无法可靠地捕获一些服务器端事件。我刚刚发现我可以使用 Measurement Protocol 在服务器端记录事件。在我的服务器上记录事件看起来很容易,除了 cid (clientid) 参数......
我的理解是,在浏览器上,我目前使用的 javascript 会随机创建 cid,然后存储在 _ga cookie 中。我也明白,我应该在客户端(“页面视图”)和服务器(其他事件)调用同一客户端之间共享该 clientid/cid 值,以便将它们关联在一起。
这个 StackOverflow 链接对我来说是一个有用的参考。
问题是:我应该
- 在服务端创建一个clientid,然后分享给客户端;或者
- 我应该让客户端上的 javascript 创建 clientid,然后尝试与我的服务器共享它吗?(我怀疑这是更好的答案)
对于(1),我认为我可以做的是:
- 在服务器上的会话中存储一个 UUID(这是谷歌应用引擎)
- 当我使用Measurement Protocol直接在服务器端创建事件时直接使用该UUID
当我使用 jsp 在页面上创建 ga 对象时使用相同的 UUID:
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com', {'clientId': '<%=[value from the session]%>'});
这种方法让我担心的是,ID 只会在服务器上的会话中持续存在。我认为clientId(cid)的意图是它在很长一段时间内为客户持续存在......所以我想我会忘记谁是新用户和老用户?
对于(2),坦率地说我不知道该怎么做......我从上面的 StackOverflow 链接知道我可以从 ga 对象中的 clientId 参数中获取 cid。我不知道如何将其发送回我的服务器(这可能是一个简单的 javascript 问题)。
肯定会感谢有关使用哪种方法的建议....谢谢!