【问题标题】:Chrome extension, unique id per install, for analyticsChrome 扩展,每次安装的唯一 ID,用于分析
【发布时间】:2013-02-21 16:00:35
【问题描述】:

我想在我正在构建的 chrome 扩展程序上跟踪事件。所以我想为每个用户都有一个唯一的标识符。

我不想要关于用户的任何信息,我只想将所有事件组合在一起。

有没有解决这个问题的好方法,无需 ping 服务器。还是我只使用一个很长的随机字符串,这样另一个用户得到相同字符串的概率很低。

我正在使用 segment.io 的 analytics.js 包与 mixpanel 集成。

【问题讨论】:

  • 你是如何完成这项工作的,我正在我的内容脚本中加载 segment.io,但它似乎只发送页面而不发送曲目

标签: google-chrome-extension analytics mixpanel


【解决方案1】:

您可以在扩展安装/更新时生成一个 id。然后,您可以将此值用作您的唯一 ID。像这样的东西应该可以工作(把它放在你的背景页面中):

chrome.runtime.onInstalled.addListener(function(info){
    //    
    // info.reason should contain either "install" or "update"

    var sessionId = localStorage.getItem("session-id");

    if(!sessionId){
      localStorage.setItem("session-id", "random-session-id");
    }
});

关于 onInstalled 的更多信息在这里:https://developer.chrome.com/extensions/runtime#event-onInstalled。注意:它会在安装、扩展更新和 Chrome 更新时触发。

【讨论】:

  • 在开发过程中如何测试这个功能?
【解决方案2】:

不知道为什么 Mixpanel 被标记在这个问题上,但既然是这样,我会提到 Mixpanel jslib 解决了这个问题。

如果在不识别用户的情况下发送事件,jslib 会根据时间、Math.random() 和浏览器特征自动生成 UUID。此数据存储在 cookie 中。

【讨论】:

  • 我本来打算用segmentio向mixpanel发送事件,我应该指定的。
  • 我真是个菜鸟,没想到使用当前时间来生成唯一的 id。我不会使用 mixpanels jslib,但您仍然应该得到接受的答案。
  • 是的,但是将它用作 32 位长随机字符串的种子对我来说是可以的
  • 使用 Math.random() 不能保证是唯一的。对于匿名统计,它可能已经足够好用了,但是如果您要跨浏览器重新启动进行跟踪,您应该生成一个唯一的 id,然后使用 chrome.storage 存储它。启动时,您可以检查它是否存在于存储中并使用它。 RFC4122 here 有一个很好的实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多