メインコンテンツへスキップ

概要

時間に敏感なメッセージは、適切なユーザーエクスペリエンスと成功したアプリ/サイトにとって非常に重要です。OneSignalの時間演算子を使用すると、過去、現在、または未来のイベントの「経過時間が〇〇より大きいか小さいか」を簡単に追跡できます。 人気のあるユースケース:
  • カート放棄メッセージ:ユーザーがショッピングカートにアイテムを追加します。一定時間経過後にチェックアウトに失敗した場合は、リマインダーメッセージを送信することが重要です。
  • サブスクリプション有効期限リマインダー:サブスクリプションが終了する前にユーザーに事前に知らせ、時間を見失ってサブスクリプション後に再登録を忘れた場合でもドリップシーケンスを作成します。
  • 重要なイベント:アプリ内でユーザーが登録したイベントがある場合は、数日前、数時間前、数分前にリマインドします!
  • マイルストーン:ユーザーが完了または送信する必要がある特定のマイルストーンについてリマインドします。
  • 誕生日メッセージ: 毎年自動化された誕生日の挨拶を送信します。

時間演算子の仕組み

時間演算子は、データタグの値として秒単位のunixタイムスタンプを追加することで機能します。タイムスタンプは秒単位の整数値(10桁)である必要があります。例:event : 1600968090、ここでeventは追跡したい任意のもので、イベントを識別するために使用されるタグの「キー」であり、1600968090Unix Timestamp Seconds Formatで表された過去、現在、または未来のイベントの日付です。 次に、ユーザータグセグメントフィルターまたはAPI Create notification tags フィルターを使用して、その日付からの経過時間または日付が発生する前の時間に基づいてユーザーをターゲティングできます。詳細については、Journeyを参照してください。
「経過時間」演算子は有料プランでのみ利用できます。無料プランでは、デフォルトの時間セグメントフィルター:First SessionLast Sessionを引き続き使用できます。

経過時間演算子

OneSignalは、Time Elapsed Greater ThanおよびTime Elapsed Less Than演算子で指定した特定のタイムスタンプからの経過時間に基づいてセグメントを作成する機能をサポートしています。(unixタイムスタンプ値を持つデータタグのみがこの方法で比較できることに注意してください。) これにより、上記で説明した自動的に提供されるファーストセッションとラストセッションのフィルターよりも、はるかに広範な時間ベースのアクションが可能になります。 特定のタイムスタンプと「経過時間」演算子を使用すると、たとえば、ユーザーがアプリで最後にアクションを実行した時刻を設定し、指定された期間が経過した後に通知を送信する自動通知を設定できます。
1

データタグを設定

データタグkey : value形式です。keyはイベント名または識別子である必要があり、valueは秒単位のunixタイムスタンプである必要があります。
2

セグメントを作成

User Tagフィルターで、_KEY_フィールドにタグkeyを設定し、Time Elapsed Greater Than演算子を使用し、_VALUE_として希望する秒数を設定します。

経過時間セグメントフィルターを設定

別の例として、確認メールを送信してから1週間以内にメールアドレスを確認していないユーザーに通知を送信できます。intro_email_timeキーを持つデータタグを設定し、「Time Elapsed Greater Than」と604800(7日 × 24時間 × 60分 × 60秒)の値を使用します。
3

通知またはメッセージで自動化

これを1回限りのメッセージとして送信することも、そのバケットに入る新しいユーザーにも自動的にメールを送信したい場合は、この演算子でAutomated Messagesを使用して、オンボーディングまたはエンゲージメントアクションを自動化できます。
サイトにチェックアウトまたは決済システムがある場合、時間演算子はあなたのユースケースに最適です。詳細については、カート放棄ガイドを参照してください。

特定の日付のX日前にユーザーをターゲティング

ターゲット日の_前に_メッセージをトリガーすることもできます(たとえば、ユーザーのサブスクリプションが期限切れになる2日前にリマインダーを送信):
  • 未来の日付をUnixタイムスタンプに変換し、ユーザーにタグを付けます。
  • セグメントで、Time Elapsed Greater Thanを使用し、値を負の数として設定します(たとえば、2日前の場合は-172800)。

日付の前にユーザーをターゲティングするためのセグメント

誕生日をターゲティング

次回の誕生日をunixタイムスタンプとしてキャプチャし、毎年送信される繰り返しJourneyを設定することで、誕生日メッセージを設定できます。タイムゾーンとうるう年のため、日付は100%正確ではない場合がありますが、非常に近くなります。 ユーザーの誕生日を尋ねるときは、現在の年に基づいて月と日をunixタイムスタンプに変換します。その日付を現在の日付から減算します。日付が経過していない場合は、ユーザーにタグを付け、日付が経過している場合は、年を1つ増やして未来の日付でユーザーにタグを付けます。 誕生日タグを設定するJavaScriptコードの例:
javascript
//設定する必要があるデータ:
let birthdayMonth = 0;//形式はMM 0インデックス、1月 = 0、12月 = 11
let birthdayDay = 29;//形式はDD

let currentDate = new Date();
let currentDateUnixTimestamp = Math.round(currentDate.getTime() / 1000);
let currentYear = currentDate.getFullYear();
let birthdayMonthDay = new Date(currentYear, birthdayMonth, birthdayDay); // 形式 YYYY、MM、DD
let birthdayUnixTimestamp = Math.round(birthdayMonthDay.getTime() /1000);
let currentBirthdayPassed = Math.sign(birthdayUnixTimestamp - currentDateUnixTimestamp);

let birthdayTimestamp = 0;

if (currentBirthdayPassed === 1) {
console.log("誕生日はまだ来ていません!")
birthdayTimestamp = birthdayUnixTimestamp

} else if (currentBirthdayPassed === -1) {
console.log("来年お祝いします")
birthdayMonthDay = new Date(currentYear + 1, birthdayMonth, birthdayDay);
birthdayUnixTimestamp = Math.round(birthdayMonthDay.getTime() /1000);
birthdayTimestamp = birthdayUnixTimestamp;

} else {
console.log("誕生日の時刻が正しく設定されていません")
}
OneSignal.push(function() {
OneSignal.User.addTag("birthday", birthdayTimestamp);
});
_birthday_タグとtime elapsed greater than 0秒で誕生日セグメントを作成します。 ユーザーの次の誕生日が経過すると、このセグメントに自動的に追加されます。

誕生日トリガー用のセグメント

誕生日に送信するメッセージである誕生日メッセージテンプレートを作成します。日付が100%正確ではない可能性があるため、たとえば「また今年のその時期が来ました!」のようなことを言うことができます。 次に、誕生日Journey内で、毎年送信されるように再入場ルールを52週間に設定します。