プッシュ通知をアプリ内でお知らせ一覧として利用する試みです。それによってデータストアでわざわざお知らせ用のクラスを作成、管理しなくてもよくなるでしょう。
今回はプッシュ通知を全体配信にのみ利用している場合における、データ保存法を紹介します。
全体配信とは
プッシュ通知は大きく分けて3つの配信方法があるといえます。
- 全体配信
- 条件配信
- 個別配信
全体配信とは、登録されているデバイストークン全体に対して配信するものです。条件を指定しない分、シンプルな管理が可能ですが、セグメント化されていない分、役立たない内容の配信も行われてしまうことも多くなります。そのため開封率はそれほど高くないでしょう。
条件配信はデバイストークンに条件を指定しておいて、絞り込み条件として使うものです。例えば性別、年齢層、興味のある情報、居住地域などです。配信条件を絞り込む分、より確度の高い配信が可能になります。利用者にとってもマッチした情報が配信される傾向にあるので、開封率も高くなります。
個別配信はよりセグメントを細かくした配信方法です。また、チャットアプリなどで個人宛にメッセージが来た際のプッシュ通知としても使われます。mBaaSの管理画面では配信したプッシュ通知ごとに開封率を取っているため、表示は若干煩雑になりがちです。
今回はこの中の1つ目、全体配信について考えます。
全体配信の特徴
全体配信の特徴は、配信端末の絞り込みを行わないことです。あるとしてもiOSまたはAndroidの絞り込みのみになります。配信対象になる端末数は、配信時にInstallationsにあるレコード数すべてになります。
条件配信や個別配信の場合は通知データとトークンとの紐付けを保存する仕組みが必要ですが、全体配信の場合は不要です。
データの取り出し方
データの取り出し方の解説です。各スマートフォンでは自分のデバイストークンは分かっていることとします。そのデバイストークンを使えば自分のinstallationは簡単に取得できます。
const installation = await ncmb.Installation.equalTo('deviceToken', 'eBI...cft').fetch();
この installationの作成日時を使って、Pushクラスの配信日時 deliveryTime
を絞り込みます。この場合、作成日時以降に作成されたプッシュ通知を対象とします。一緒にtarget(iOS、Androidなど)も絞り込み条件に追加しておきます。
const pushes = await ncmb.Push .in('target', installation.deviceType) .greaterThanOrEqualTo('deliveryTime', installation.createDate).fetchAll();
これで受信したプッシュ通知の一覧が得られました。後はこのプッシュ通知一覧を表示してあげればいいだけです。
まとめ
全体配信の場合は、配信日時だけで絞り込むのが手軽です。今回の実装を参考にお知らせ一覧機能を実装してみてください。