コンテンツにスキップ

イベント駆動型プッシュ

利用者の操作などアプリ内で発生したイベントをきっかけとして利用者にプッシュ通知を配信することができます。

利用できるプラン

イベント駆動型プッシュは有料プランでご利用可能です。

イベント駆動型プッシュできること

  • イベント発生から指定の時間経過後(30日以内)にプッシュ通知を配信
  • 変数を使ってメッセージのパーソナライズ

変数の利用

管理サイトでメッセージを作成する際に変数を適用したい箇所に"${}"を使います。
例: 「${name}さまへお得な情報をお届け!!」

アプリから、変数名と値の組み合わせを指定すると変換されてメッセージが配信されます。

例:
アプリから「変数名:name 値:鈴木一郎」を指定して配信をリクエスト
配信されるメッセージ: 「鈴木一郎さまへお得な情報をお届け!!」

配信までの流れ

(管理サイトで行うこと)
1. 任意のイベントを作成
2. 配信するメッセージを作成して、作成したイベントを紐づける
3. 作成したメッセージを承認する

(アプリ側で行うこと)
1. SDKを使用して配信をリクエスト(後述)

メッセージ配信のリクエスト

//rf-functions.js
rf_postMessage(rfServiceKey, events, variables, standbyTime, websitePushId, retry = 3)
パラメータ 内容
rfServiceKey SDK実行キー
events 管理サイトで作成したメッセージに紐づいたイベントの配列。
variables 変数。変数名とその値の連想配列。
standbyTime イベント発生からプッシュ通知配信までの待機時間(分)。最大43200分(30日間)まで指定可能。※未指定の場合は管理サイトで設定した値が適用されます。
websitePushId (OPTIONAL)Safari Push Notificationsで使用するWebsite Push Id
retry (OPTIONAL)エラーが発生した際のリトライ回数。規定値は"3"。

Info

websitePushId は、macOS12以下のSafariへプッシュ通知を配信する場合にのみ必要になります。

イベント投稿IDについて

リクエストに成功すると イベント投稿ID を取得できます。リクエスト後、待機時間内であればイベント投稿IDを使用してリクエストをキャンセルできます。
即時投稿の場合、イベント投稿IDは応答されません。

Example
function purchaseEvent() {
    // イベント名
    var eventName = "purchase_event";
    // 変数
    var variable = { item: "厳選醤油", name: "鈴木一郎" };
    // 待機時間
    var standbyTime = 10;
    rf_postMessage(rfServiceKey, eventName, variable, standbyTime, websitePushId).then((eventPostId) => {
        // イベント投稿IDを取得
        console.log(eventPostId);
    }).catch((error) => {
        console.log(error);
    });
}


配信のキャンセル

//rf-functions.js
rf_cancelMessage(rfServiceKey, eventPostId, websitePushId, retry = 3)
パラメータ 内容
rfServiceKey SDK実行キー
eventPostId イベント投稿ID。メッセージ配信リクエストの応答で取得できる。
websitePushId (OPTIONAL)Safari Push Notificationsで使用するWebsite Push Id
retry (OPTIONAL)エラーが発生した際のリトライ回数。規定値は"3"。

Info

websitePushId は、macOS12以下のSafariへプッシュ通知を配信する場合にのみ必要になります。


Example
function cancelEventDrivenMessage(eventPostId) {
    rf_cancelMessage(rfServiceKey, eventPostId).then((result) => {
        console.log(result);
    }).catch((error) => {
        console.log(error);
    })
}