Skip to main content

概述

在 OneSignal 中,用户代表拥有一个或多个消息渠道订阅(如推送通知、短信和邮件)的个人。每个用户最多可以关联 20 个订阅,并由 OneSignal ID 唯一标识。 用户最初是匿名的,直到您分配外部 ID,这样您就可以跨设备和平台跟踪他们。

用户属性

OneSignal ID

OneSignal ID 是生成的内部 UUID v4,用于唯一代表用户。它在以下场景中自动创建:
  • 首次打开移动应用(或重新安装后)
  • 新的 Web 订阅
  • 通过创建用户或CSV 导入创建用户/订阅
  • 清除浏览器缓存
  • 使用 OneSignal.logout 注销
一旦通过 OneSignal.login 使用外部 ID,任何与当前订阅关联的现有 OneSignal ID 都会被与该外部 ID 关联的 ID 替换。如果跨平台(推送、邮件、短信)的订阅共享相同的外部 ID,它们将在同一个 OneSignal ID 下合并。

重新分配和行为

如果用户重新安装应用或清除缓存,将创建新的 OneSignal ID 和订阅。但是,调用 OneSignal.login 会将新订阅链接回原始用户配置文件。 通过 OneSignal.User.addEmail 或 addSms 添加的订阅将继承当前的 OneSignal ID。 SDK 参考:

外部 ID

外部 ID 是您分配给用户的唯一字符串,用于跨设备和订阅跟踪他们。

使用外部 ID 跨用户订阅跟踪用户。

您可以通过以下方式设置或移除外部 ID:
不要为外部 ID 使用占位符值,如 NA、NULL、0、-1、all 或 00000000-0000-0000-0000-000000000000。

匿名用户与已识别用户

匿名用户没有外部 ID。每个订阅都被视为具有自己 OneSignal ID 的独立用户。 已识别用户在订阅中共享外部 ID,允许 OneSignal 合并他们的配置文件。

示例:匿名用户

  • 用户在 Web 上订阅:OSID1
  • 同一用户安装应用:OSID2
  • 结果:两个独立的配置文件

示例:已识别用户

  • 使用外部 ID EIDA 的 Web 订阅:OSID1
  • 使用相同 EIDA 的应用订阅:合并到 OSID1

最佳实践

  1. 始终分配外部 ID。
  2. 避免使用通用值。
  3. 使用 OneSignal.login 进行可靠识别。
  4. 在 login 后设置其他别名。

同一设备上的多个用户

当多个用户共享设备时,每次新登录都应该使用不同的外部 ID 调用 OneSignal.login。这会将 OneSignal ID 和订阅重新分配给新用户。 处理注销:
  • 调用 OneSignal.logout() → 清除外部 ID 并分配匿名 OneSignal ID
  • 可选择使用 optOut 禁用通知,重新登录时使用 optIn 重新启用

月活跃用户 (MAU)

MAU 用于计费,定义为在 30 天计费周期内有最后会话的移动订阅。这包括:
  • 首次打开您的应用的用户,通过我们的 SDK 创建移动订阅
  • 重新安装应用并再次打开的用户,通过我们的 SDK 创建另一个移动订阅
  • 通过我们的 API 导入的用户

MAU 计费示例

如果用户拥有这些订阅:
  • iOS 移动(过去 30 天内活跃)
  • Android 移动(过去 30 天内活跃)
  • Web 推送
  • 邮件
  • 短信
只有 iOS 和 Android 移动订阅计入,结果为 2 个 MAU。 订阅状态对 MAU 计费无影响。

减少 MAU(例如付费墙用例)

您可以使用移动 SDK 隐私方法延迟 SDK 初始化和订阅创建。
  1. 在初始化 SDK 之前调用 setConsentRequired() – 这可以防止自动创建订阅
  2. 当准备为用户创建订阅时调用 setConsentGiven()