概述
时间操作符让您能够发送相对于特定时刻的消息——例如事件发生后或即将到来的日期前。 您将该时刻作为Unix时间戳(秒)使用标签存储在用户上。OneSignal然后将当前时间与该时间戳进行比较,并让您根据已过去的时间(或剩余时间)来定位用户。 这使得自动化提醒、跟进和截止日期消息变得容易,无需手动安排消息。 常见用例:- 购物车放弃:提醒在特定时间后未结账的用户
- 事件提醒:在预定约会或续订日期前向用户发送消息
- 里程碑:当用户在截止日期前未完成某项操作时进行跟进
- 生日:在用户生日(或生日前后)发送自动消息
时间操作符仅在付费计划中可用。免费计划仍可以使用默认的基于时间的细分过滤器,如首次会话和最后会话。
何时应该使用此功能?
在以下情况下使用时间操作符:- 发送相对于事件的消息,而不是固定的日历时间
- 创建移动时间窗口(例如,“24-48小时后”)
- 为许多具有不同日期的用户重用相同的逻辑
- 随着时间推移持续评估资格
标签 vs 自定义事件
您可以使用标签或自定义事件解决许多”提醒”用例。最佳选择取决于您需要存储的内容以及如何触发自动化。- 当您想要在用户上存储最新已知时间戳(例如,
cart_updated_at或subscription_expires_at)并根据该值随时间进行细分时,使用标签。 - 当您想要记录每次事件发生(带属性)并基于实时行为触发旅程时,使用自定义事件。
在实践中,许多实现可以同时使用两者:自定义事件用于实时追踪,标签用于以后要进行细分的用户状态。
| 功能 | 标签 | 自定义事件 |
|---|---|---|
| 数据用途 | 细分和个性化 | 无需细分即可触发旅程、等待步骤、直接在旅程中实现个性化 |
| 数据 保留期限 | 永久 | 30天以上(提供永久存储) |
| 数据格式 | 键值对字符串或数字 | JSON |
| 数据来源 | OneSignal SDK、API 或集成(有限) | OneSignal SDK、API 或集成 |
| 数据访问 | 细分和消息个性化 | 旅程和旅程消息模板个性化、细分(即将推出) |
- 标签用于静态且不经常更改的用户属性
- 自定义事件用于实时场景、复杂细分和更复杂的旅程工作流
快速参考
- 将事件日期转换为以秒为单位的Unix时间戳。
- 设置一个标签,其中键是事件名称,值是时间戳作为字符串(例如,
'event_date': '1739145600')。 - 使用Time Elapsed Greater Than操作符创建细分:
- 对于过去日期之后,使用Time Elapsed Greater Than操作符和正值
- 对于未来日期之前,使用Time Elapsed Greater Than操作符和负值
在过去事件后发送消息
当您想要在某事发生后经过一定时间后向用户发送消息时,使用此模式。 示例:在用户更新购物车24小时后发送购物车放弃提醒创建细分
- 转到Audience > Segments
- 添加User Tag过滤器
- 将Key设置为
cart_updated_at - 选择Time Elapsed Greater Than
- 将Value设置为
1天(或24小时或86400秒)

添加上限(推荐)
没有上限,用户将永远保留在细分中。添加第二个过滤器来创建窗口:
- Time Elapsed Greater Than
24小时 - Time Elapsed Less Than
48小时

在旅程中使用细分
创建一个定位您细分的旅程来自动化消息传递。
在未来事件前发送消息
使用此模式在即将到来的日期前向用户发送消息,例如约会或续订。- 将未来日期存储为Unix时间戳标签(例如,
'future_date': '1739145600') - 使用Time Elapsed Greater Than和您所需的进入时间作为负值创建细分
- 示例:
-2天(或-172800秒)
- 示例:

- 使用相同的Time Elapsed Greater Than操作符和更近时间的负值添加上限
- 示例:
-1天(或-86400秒)
- 示例:

示例:生日消息
通过存储每个用户的下一个即将到来的生日作为时间戳来发送生日消息。设置定期旅程
- 创建一个定位您生日细分的旅程
- 将重新进入设置为52周,以便用户可以在明年重新进入
- 在发送后更新
birthday标签为明年的日期(在您的后端或旅程中)
尽可能使用用户的本地时区计算生日时间戳。仅使用服务器时间可能会导致消息比预期更早或更晚发送。
生日消息将在用户
birthday标签日期附近发送给用户。FAQ
数学是如何工作的?(技术详细信息)
时间操作符存在是为了让您创建相对的、移动的窗口而不是固定日期。 OneSignal使用此公式计算经过时间:- 过去的时间戳 → 正值
- 未来的时间戳 → 负值
Time Elapsed Greater Than X:当elapsed > X时匹配Time Elapsed Less Than X:当elapsed < X时匹配
Less Than立即匹配:
任何负数都小于任何正数。所以time_elapsed_lt 2 days(172,800秒)会匹配未来30天的时间戳,因为:
如何测试?
- 通过外部ID、订阅ID、电子邮件或电话号码查找您的用户。有关查找用户的详细信息,请参阅查找和设置测试订阅。
- 获取当前日期和未来日期(从现在开始5分钟)的以秒为单位的时间戳。
- 设置两个标签,键为’current_time’和’future_time’,值为以秒为单位的时间戳。
- 创建一个
current_time细分,包含以下过滤器:- User Tag:
current_timeTime Elapsed Greater Than:2分钟 - AND User Tag:
current_timeTime Elapsed Less Than:5分钟
- User Tag:
- 创建一个
future_time细分,包含以下过滤器:- User Tag:
future_timeTime Elapsed Greater Than:-5分钟 - AND User Tag:
future_timeTime Elapsed Less Than:-2分钟
- User Tag:
- 在当前时间日期后2分钟进入
current_time细分,在当前时间日期后5分钟退出细分。 - 在未来时间日期前5分钟进入
future_time细分,在未来时间日期前2分钟退出细分。
