为什么 amplitude sdk 在桌面网络上的每个 session/tab 上重新生成设备 ID?

Why is amplitude sdk regenerating device Id on every session/tab on the web on desktop?

我正在使用振幅Javascript SDK。按照文档:在 https://help.amplitude.com/hc/en-us/articles/115003135607-Tracking-Unique-Users 我假设 Amplitude sdk 本身会为我使用的计算机设置一个设备 ID(顾名思义),并会为我使用的任何浏览器发送相同的设备 ID(除非我使用 setUserId 方法设置自定义 userId)。它不仅会为不同的浏览器发送不同的设备 ID,还会为任何 tab/session.

发送重新生成的设备 ID

我怎样才能防止它发生?

Amplitude SDK 分别为每个浏览器生成设备 ID。一旦您在这些浏览器中使用相同的设备 ID,我们会将用户操作合并到一个用户下。历史事件也会发生这种情况。

如果您在每个选项卡中都有一个新的设备 ID,那么您必须在代码中的某处调用 regenerateDeviceId

我已经联系了振幅支持,振幅SDK中有一个错误。如问题中所述,当我们打开新选项卡或在同一浏览器和用户(非隐身)中重新打开 window 时,不应更改 DeviceId。

将振幅sdk版本从6.2.0更新到7.1.0解决了这个问题!