什么是客户端ID发送跟踪数据时经由测量协议谷歌分析?(What is the client ID w

2019-07-18 00:23发布

我想使用谷歌的新的测量协议从我的服务器,而不是JavaScript的发送跟踪事件。

此页面说的是需要在客户端ID: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#required

而这个页面说,这是可选: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#visitor

另外,在这些文件中定义的格式不同 - 第一页给出了一个整数作为一个例子,只是说,这是“一个独特的价值”,而第二个链接说它应该是一个UUID。

如果我发送任何用户ID或生成的UUID我的后台,如何将谷歌知道该访问者链接到现有访客会话? 好像我需要找回GA的内部参考,以现有的用户。

任何帮助表示赞赏 - 谢谢!

Answer 1:

整数或UUID

cid是在第二个值相当于_utma当您使用的JavaScript跟踪cookie。 在JS跟踪,它是一个随机整数(由生成Math.round(2147483647 * Math.random()) 但strored,并将其作为一个字符串:这样你就可以使用这两种格式(整数或UUID)。

必需/可选

随着JS跟踪,与丢失的用户ID发送的请求是通过分析服务器忽略。 因此,假设它是必需的。

链接网站访问与测量协议的行动

如果你想你的后端用户先前与分析的JavaScript跟踪访问者链接ga.js ,就可以得到cid从价值_utma饼干。 但我不建议这样做; 每次改变时间(终端或浏览器的变化,饼干清洗等),你将失去与客户的先前动作的链接。

更新

analytics.js当有人问不存在。 cid现在存储在cookie _ga 。 您可以使用JavaScript得到它:

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

至于写这,当你得到从跟踪ClientID的,如上面的代码它不会给你一个UUID,但在“XY”的格式两个随机32位整数。 此实现可能改变将来的UUID。

或者用自己的价值(如后台生成的UUID)设置:

ga('create', 'UA-XXXXX-Y', {'clientId': 'your_client_id'});


Answer 2:

在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


Answer 3:

我使用与快递和通用,分析模块节点,然后选择使用嵌入在_ga cookie中的CID,而不是生成自己的CID服务器端。

我server.js看起来像这样...

app.use(function(req, res, next) {
  if(req.session && (!req.session.cid) && req.cookies._ga){
    //Use the cid already embedded in the _ga cookie and save to session so I can access from socket routes
    var gaSplit = req.cookies._ga.split('.');
    req.session.cid = gaSplit[2] + "." + gaSplit[3];
  };
  next();
});  

再后来,我可以做到这一点..

ua = require('universal-analytics')
var visitor = ua('UAXXX', req.session.cid)

HTH



文章来源: What is the client ID when sending tracking data to google analytics via the measurement protocol?