コンテンツにスキップ

イベント駆動型プッシュ

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

利用できるプラン

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

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

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

変数の利用

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

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

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

配信までの流れ

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

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

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

以下のJavaScriptのメソッドを使用して配信をリクエストします。

//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
<script>
    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);
        });
    }
</script>


配信のキャンセル

//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
<script>
    function cancelEventDrivenMessage(eventPostId) {
        rf_cancelMessage(rfServiceKey, eventPostId).then((result) => {
            console.log(result);
        }).catch((error) => {
            console.log(error);
        })
    }
</script>

実装参考例

以下の参考例ではエディタ内に埋め込む実装方法を使用しています。

投稿作成画面のブロックにある「カスタムHTML」を任意の場所に設置します。

設置したカスタムHTMLブロック内にJavaScriptを埋め込みます。

実装例

以下の例ではボタンを設置して、イベント駆動型のプッシュ通知とその配信のキャンセルを登録しています。

Example
<button id="postMessageButton" type="button">通知登録</button>
<button id="cancelMessageButton" type="button">通知キャンセル</button>

<script>
    const rfServiceKey = "11111111-aaaa-bbbb-cccc-dddddddddddd";
    const rfWebsitePushId = "web.net.richflyer";
    var eventPostId = '';

    var postBtn = document.getElementById('postMessageButton')
    postBtn.addEventListener('click', function() {
        // イベント名
        var eventName = ["purchase_event"];
        // 変数
        var variable = { item: "厳選醤油", name: "鈴木一郎" };
        // 待機時間
        var standbyTime = 10;
        rf_postMessage(rfServiceKey, eventName, variable, standbyTime, rfWebsitePushId).then((id) => {
            // イベント投稿IDを取得
            console.log(id);
            eventPostId = id;
        }).catch((error) => {
            console.log(error);
        });
    })

    var cancelBtn = document.getElementById('cancelMessageButton')
    cancelBtn.addEventListener('click', function() {
        rf_cancelMessage(rfServiceKey, eventPostId).then((result) => {
            console.log(result);
        }).catch((error) => {
            console.log(error);
        })
    })
</script>