- 使用实时数据发送个性化、时间敏感的消息
- 在系统之间同步用户属性和消息数据
- 从您系统中的用户操作触发自动化 Journeys
- 使用您的内部系统作为真实来源,同时利用 OneSignal 的消息传递基础设施

集成指南
OneSignal 与许多热门平台具有直接集成。请查看集成页面,了解您的平台是否受支持——如果支持,请按照该设置指南进行操作。集成
浏览 OneSignal 与 CRM、数据仓库、分析工具等的所有可用集成。
第一步:使用 External ID 识别用户
OneSignal 的external_id 是 OneSignal 与您的数据库之间的关键链接。在 OneSignal 中为每个用户设置 external_id,使其与您数据库中的用户 ID 匹配。这使您能够使用已有的标识符来定位用户、同步数据和触发消息。
如果您使用多个 OneSignal 应用(例如,iOS、Android 和 Web 的独立应用),在所有应用中设置相同的 external_id 可在各平台上识别同一用户。
如果您有匿名用户或没有用于跨系统追踪用户的稳定用户 ID,您可以使用 OneSignal 的 onesignal_id 或 subscription_id。但是,我们建议在用户稳定且可识别时设置 external_id。
onesignal_id 和/或 subscription_id 可通过 Create user API 响应以及使用 Observer 方法的移动和 Web SDK 获取。
纯 API 设置
如果您仅将 OneSignal 用于电子邮件和短信/RCS(没有移动应用或网站),您可以完全通过 REST API 管理用户:- Create user — 使用
external_id、电子邮件地址和/或电话号码创建用户 - Update user — 更新用户属性和订阅
external_id:
- 为您的平台安装 OneSignal SDK。
- 在用户于您的应用中进行身份验证后,使用用户的
external_id调用login。 - SDK 自动捕获推送令牌并将其与用户关联。
第二步:同步用户数据和事件
用户身份设置完成后,您可以从您的系统向 OneSignal 同步两种类型的数据: 标签 — 持久用户属性 标签在 OneSignal 中存储用户属性,用于细分和消息个性化。将其用于描述用户身份的数据,例如计划类型、首选语言或注册日期。- 通过 Update user API 或前端 SDK 设置标签
- 标签在用户上持续存在,直到您更新或删除它们
- 使用标签构建细分并个性化消息内容
completed_purchase、viewed_page 或 subscription_expired。使用它们触发自动化 Journeys。
- 通过我们的 API 或前端 SDK 发送自定义事件
- 自定义事件不像标签那样持久保存,但可用于触发 Journeys 和消息个性化
第三步:导出消息和参与数据
要将投递和参与数据同步回您的系统:- Event Streams — (推荐)消息事件(已发送、已投递、已点击等)的实时 Webhook 投递。最适合在事件发生时保持数据库同步。
- Export subscriptions CSV — 批量导出订阅数据,用于定期同步或迁移。
- View messages API — 以编程方式查询消息历史记录和投递统计数据。
架构建议
- 将您的数据库作为真实来源。 将 OneSignal 视为消息传递层——将用户数据和事件推送到 OneSignal,并提取投递/参与数据。
- 使用 API 进行实时更新。 当用户执行某项操作(例如,完成购买)时,立即调用 OneSignal API 以更新标签或发送自定义事件。
- 使用 CSV 导入进行批量操作。 对于初始入驻或大型迁移,使用 CSV 导入而不是进行数千次单独的 API 调用。
- 遵守速率限制。 对于高量更新,尽可能批量处理请求,并实现带指数退避的重试逻辑。
- 使用 Event Streams 作为返回路径。 不要轮询 OneSignal API 获取投递数据,而是设置 Event Streams 接收消息事件的实时 Webhook。
从您的数据库触发消息
您可以使用两种方法触发消息——根据您的用例选择一种或两种。- API
- 标签和 Journeys
- 自定义事件和 Journeys
使用 Create message API 进行即时的事务性消息传递。通过以下方式定位用户:
external_id- 别名(例如,
crm_id) - 电子邮件或电话号码
- 事务性消息(例如,收据、警报)
- 时间敏感或个性化通知
- 定位个人或群体(每次调用最多 20,000 个用户)
send_after 参数安排消息。常见问题
我应该使用 API 还是 Journeys 从数据库发送消息?
对于收据或警报等即时事务性消息,使用 Create message API。对于受益于可视化工作流构建的自动化生命周期和营销消息,请使用带有标签或自定义事件的 Journeys。我应该在 OneSignal 和自己的系统中分别存储哪些数据?
根据数据的用途决定: 在 OneSignal 中存储什么OneSignal 支持消息个性化中详述的多种消息个性化方式。
- 在自己的系统中保留与消息传递无关的数据(例如,完整的用户档案、交易日志),以获得性能、隐私和控制。从 OneSignal 归档消息历史记录以进行长期分析或合规。
我可以向没有 External ID 的用户发送消息吗?
可以,但需要额外处理。您可以使用 OneSignal 的onesignal_id 或 subscription_id,但在链接到 external_id 之前这些是匿名的。我们建议为每个用户设置 external_id 以简化跨系统识别。
标签和自定义事件的区别是什么?
标签是用于细分和个性化的持久用户属性(例如,计划类型、语言偏好)。自定义事件代表用于触发 Journeys 的一次性用户操作(例如,completed_purchase)。标签描述用户是谁;自定义事件描述用户做了什么。
用户
了解 OneSignal 用户模型以及身份的结构方式。
自定义事件
从您的系统发送事件以触发 Journeys 并追踪用户行为。
消息个性化
使用标签、自定义数据和动态内容个性化消息。
Journeys
构建由用户行为和数据触发的自动化消息传递工作流。