在javascript客户端和java服务器之间共享Google Analytics ClientID
Sharing Google Analytics ClientID between javascript client and java server
我一直在使用Google Analytics为我的web应用程序进行基本分析,只是使用如下javascript调用来跟踪页面印象:
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview')
这种方法一直让我感到沮丧,因为我无法可靠地捕获一些服务器端事件。我刚刚发现我可以使用测量协议在服务器端记录事件。在我的服务器上记录事件看起来很容易,除了cid(clientid)参数。。。
我所理解的是,在浏览器上,使用我目前拥有的javascript,cid会被随机创建,然后存储在_ga cookie中。我还知道,我应该在同一客户端的客户端("页面视图")和服务器(其他事件)调用之间共享clientid/cid值,以便将它们关联在一起。
这个StackOverflow链接对我来说是一个有用的参考
问题是:我应该吗
- 在服务器上创建一个clientid,然后与客户端共享;或
- 我应该让客户端上的javascript创建clientid,然后尝试与服务器共享吗?(我怀疑这是更好的答案)
对于(1),我认为我可以做的是:
- 在服务器(即谷歌应用程序引擎)上的会话中存储UUID
- 当我使用测量协议直接在服务器端创建事件时,直接使用该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问题)。
如果能就使用哪种方法提供建议,我将不胜感激。。。。非常感谢。
我还建议您选择选项2:让谷歌处理cid
参数的设置。
由于该参数已在域上的_ga cookie中设置,因此它会随每个HTTP请求一起传递到应用程序服务器。
您所需要做的就是在服务器端:
- 从_ga cookie中提取CID
- 将其链接到当前用户(您的应用程序可能使用自己的会话cookie来识别用户)
例如,这个答案提供了Rails代码:
def save_google_analytics_client_id
if current_user && cookies["_ga"]
client_id = cookies["_ga"].split(".").last(2).join(".")
if current_user.google_analytics_client_id != client_id
current_user.google_analytics_client_id = client_id
current_user.save
end
end
end
- 如何在Google柱状图中动态添加行/列
- 在javascript客户端和java服务器之间共享Google Analytics ClientID
- 自定义共享网址Google+与多参数
- 将文本设置为google+共享按钮
- Google Plus通过javascript共享,带有自定义图像
- Google+1按钮在多个子页面中共享,但它应该't
- Google共享联系人API更新公司范围内的联系人目录
- 在Google Analytics和Google Tag Manager中添加此共享事件
- 在 Javascript 中使用 Google Drive 共享链接
- 如何将圆形徽标用于 Google 课堂共享按钮
- 无需验证即可访问共享Google Drive文件夹中的文件,JavaScript
- google+共享和oneninteraction-未确认
- 添加此共享facebook和google+url
- 如何使用JavaScript计算url的Google Plus共享总数
- Google Plus共享和使用Google Plus登录消失了
- 使用Google Apps Script修改文件共享设置
- 当使用Google Closure编译器时,在浏览器和node.js之间共享JS的最佳方式
- Google Drive Api v3创建共享文件
- 如何在google+上删除图片共享时的url显示
- 当登录多个帐户时,无法获得Google Drive API共享对话框