概要
時間演算子を使用すると、特定の時点に対して相対的なメッセージを送信できます——アクションが発生した後や今後の日付の前など。 その時点をUnix タイムスタンプ(秒単位)としてタグを使用してユーザーに保存します。OneSignal は現在時刻をそのタイムスタンプと比較し、経過時間(または残り時間)に基づいてユーザーをターゲットにできます。 これにより、メッセージを手動でスケジュールすることなく、リマインダー、フォローアップ、期限切れメッセージを簡単に自動化できます。 一般的な使用例:- カート放棄:一定時間後にチェックアウトしていないユーザーにリマインドする
- イベントリマインダー:予定されたアポイントや更新日の前にユーザーにメッセージを送信する
- マイルストーン:ユーザーが期限までにアクションを完了していない場合のフォローアップ
- 誕生日:ユーザーの誕生日(または誕生日前後)に自動メッセージを送信する
時間演算子は有料プランでのみ利用できます。無料プランでも、ファーストセッションやラストセッションなどのデフォルトの時間ベースセグメントフィルターを使用できます。
いつ使用すべきか?
時間演算子は次の場合に使用してください:- 固定されたカレンダー時間ではなく、イベントに対して相対的なメッセージを送信する
- 移動する時間ウィンドウを作成する(例:「24~48時間後」)
- 異なる日付を持つ多くのユーザーに対して同じロジックを再利用する
- 時間の経過とともに資格を継続的に評価する
タグ vs カスタムイベント
多くの「リマインダー」ユースケースはタグまたはカスタムイベントのいずれかで解決できます。最適なオプションは、保存する必要があるものと自動化をトリガーする方法によって異なります。- ユーザーに最新の既知タイムスタンプ(例:
cart_updated_atやsubscription_expires_at)を保存し、その値に基づいて時間をかけてセグメント化したい場合はタグを使用します。 - 各イベント発生(プロパティ付き)を記録し、リアルタイムの行動に基づいてジャーニーをトリガーしたい場合はカスタムイベントを使用します。
実際には、多くの実装で両方を使用できます:リアルタイム追跡用のカスタムイベントと、後でセグメント化したいユーザー状態用のタグ。
| 機能 | Tags | Custom Events |
|---|---|---|
| データ使用 | セグメンテーションとパーソナライゼーション | セグメントなしでJourneysをトリガー、Wait Untilステップ、Journeys内で直接パーソナライゼーション |
| データ保持期間 | 永久 | 30日以上(永久ストレージが利用可能) |
| データ形式 | キーバリューの文字列または数値 | JSON |
| データソース | OneSignal SDK、API、または統合(制限あり) | OneSignal SDK、API、または統合 |
| データアクセス | セグメンテーションとメッセージパーソナライゼーション | JourneysとJourneyメッセージテンプレートのパーソナライゼーション、セグメンテーション(近日公開) |
- 静的であまり変更されないユーザープロパティにはTags
- リアルタイムシナリオ、複雑なセグメンテーション、より洗練されたジャーニーワークフローにはCustom Events
クイックリファレンス
- イベント日を秒単位の 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秒)に設定

上限を追加する(推奨)
上限がないと、ユーザーは永続的にセグメントに残ります。2つ目のフィルターを追加してウィンドウを作成します:
- 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’で値が秒単位のタイムスタンプである2つのタグを設定します。
- 次のフィルターを使用して
current_timeセグメントを作成します:- User Tag:
current_timeTime Elapsed Greater Than:2分 - および User Tag:
current_timeTime Elapsed Less Than:5分
- User Tag:
- 次のフィルターを使用して
future_timeセグメントを作成します:- User Tag:
future_timeTime Elapsed Greater Than:-5分 - および User Tag:
future_timeTime Elapsed Less Than:-2分
- User Tag:
- 現在時刻日付の2分後に
current_timeセグメントに入り、現在時刻日付の5分後にセグメントを出る。 - 未来時刻日付の5分前に
future_timeセグメントに入り、未来時刻日付の2分前にセグメントを出る。
