コンテンツにスキップ

イベント駆動型プッシュ

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

利用できるプラン

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

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

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

変数の利用

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

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

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

配信までの流れ

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

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

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

// Class RichFlyer.RFPluginScript
public static void PostMessage(string[] events, Dictionary<string, string> variables, int? standbyTime, RFPostMessageCallback onResult)                        
パラメータ 内容
events 管理サイトで作成したメッセージに紐づいたイベントの配列。
variables 変数。変数名とその値のDictionaryセット。
standbyTime イベント発生からプッシュ通知配信までの待機時間(分)。最大43200分(30日間)まで指定可能。※nullの場合は管理サイトで設定した値が適用されます。
onResult 結果リスナー


結果応答リスナ

処理の結果とイベント投稿IDを渡します。

public delegate void RFPostMessageCallback(bool result, long code, string message, string[] eventPostIds);

パラメータ 内容
result 成否
code エラーコード
message エラーメッセージ
eventPostIds イベント投稿ID


イベント投稿ID

メッセージ配信リクエストが成功すると処理完了リスナでイベント投稿ID(eventPostIds)を取得できます。
リクエスト後、待機時間内であれば、この値を利用してメッセージ配信リクエストをキャンセルすることができます。
イベントに紐づいたメッセージが複数ある場合は、その数の分だけ応答されます。
待機時間を0にした場合は、同IDは応答されません。


エラーコード

エラーコード 内容 予想される原因
401 認証失敗 認証トークンが不正か、期限切れの可能性があります。
アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。
404 サービス不明 管理サイトで取得したSDK実行キーが指定されていない可能性があります。
SDK実行キーの確認方法
404 イベント名不明 指定したイベント名に紐づく投稿が管理サイトで作成されていない可能性があります。
600 通信エラー RichFlyerサーバへの接続に失敗しています。通信環境の悪化等が考えられます。
601 デバイストークン不明 OSから発行されるデバイストークンがRichFlyer SDKに渡されていないか失われた可能性があります。
アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。
602 認証トークン不明 デバイストークンの登録に失敗している可能性があります。
アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。
603 認証トークン不明 デバイストークンの登録に失敗している可能性があります。
アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。
604 SDK実行キー不明 SDK実行キーが指定されていない可能性があります。


実装例

実装例

    string[] events = new string[] { "event1", "event2" };

    Dictionary<string, string> variables = new Dictionary<string, string>();
    variables.Add("name", "Suzuki");
    variables.Add("item", "Books");

    RFPluginScript.PostMessage(events, variables, 300,
        (bool result, long code, string message, string[] eventPostIds) => {
            Debug.Log($"Post Message. result:{result}, code:{code}, message:{message}");
            if (eventPostIds != null)
            {
                foreach (string eventPostId in eventPostIds)
                {
                    Debug.Log($"EventPostId: {eventPostId}");
                }
            }
        });


配信のキャンセル

配信リクエストを行ったメッセージが待機時間内であればキャンセルを行うことができます。
※待機時間なし、待機時間経過後のメッセージはキャンセルできません。

// Class RichFlyer.RFPluginScript
public static void CancelPosting(string eventPostId, RFPostMessageCallback onResult)
パラメータ 内容
eventPostId イベント投稿ID。メッセージ配信リクエストの応答で取得できる。
onResult 結果リスナー


実装例

実装例

    string eventPostId = "00000000-1111-2222-3333-444444444444";
    RFPluginScript.CancelPosting(eventPostId, (bool result, long code, string message, string[] eventPostIds) =>
    {
        Debug.Log($"Cancel Message. result:{result}, code:{code}, message:{message}");
    });