概述
在 OneSignal 中,用户代表拥有一个或多个消息渠道订阅(如推送通知、短信和邮件)的个人。每个用户最多可以关联 20 个订阅,并由 OneSignal ID 唯一标识。 用户最初是匿名的,直到您分配外部 ID,这样您就可以跨设备和平台跟踪他们。用户属性
属性 | 描述 |
---|---|
渠道 | 用户拥有的订阅,如推送、邮件或短信。 |
OneSignal ID | OneSignal 为每个用户自动生成的 UUID v4。在分配外部 ID 时可能会改变。 |
最后会话 | 应用交互的最新时间戳。 |
首次会话 | 用户在 OneSignal 中初始创建的时间。 |
邮箱 | 来自最近邮件订阅的邮箱地址。 |
电话 | 来自最近短信订阅的电话号码。 |
IP 地址 | 来自最近更新的订阅。 |
外部 ID | 您分配的唯一标识符,用于将用户与您的系统统一。 |
标签 | 自定义元数据(例如偏好、行为)。参见数据标签。 |
位置 | 移动订阅的 GPS 坐标(如果启用了位置跟踪)。参见位置触发通知。 |
时区 | 由 SDK 设置的 IANA TZ 格式中的 timezone_id 。可以通过 API 更新。 |
语言 | 用户的 ISO 639-1 格式语言。可以通过 API 或 setLanguage 更新。 |
别名 | 键值对,如 mixpanel_id : 1234 。参见别名。 |
OneSignal ID
OneSignal ID 是生成的内部 UUID v4,用于唯一代表用户。它在以下场景中自动创建: 一旦通过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 使用占位符值,如
NA
、NULL
、0
、-1
、all
或 00000000-0000-0000-0000-000000000000
。匿名用户与已识别用户
匿名用户没有外部 ID。每个订阅都被视为具有自己 OneSignal ID 的独立用户。 已识别用户在订阅中共享外部 ID,允许 OneSignal 合并他们的配置文件。示例:匿名用户
- 用户在 Web 上订阅:
OSID1
- 同一用户安装应用:
OSID2
- 结果:两个独立的配置文件
示例:已识别用户
- 使用外部 ID
EIDA
的 Web 订阅:OSID1
- 使用相同
EIDA
的应用订阅:合并到OSID1
最佳实践
- 始终分配外部 ID。
- 避免使用通用值。
- 使用
OneSignal.login
进行可靠识别。 - 在
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 推送
- 邮件
- 短信
减少 MAU(例如付费墙用例)
您可以使用移动 SDK 隐私方法延迟 SDK 初始化和订阅创建。- 在初始化 SDK 之前调用
setConsentRequired()
– 这可以防止自动创建订阅 - 当准备为用户创建订阅时调用
setConsentGiven()