FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

プッシュ通知をお知らせ一覧に利用する(データ保存。全体配信編)

f:id:mbaasdevrel:20200408172220p:plain

プッシュ通知をアプリ内でお知らせ一覧として利用する試みです。それによってデータストアでわざわざお知らせ用のクラスを作成、管理しなくてもよくなるでしょう。

今回はプッシュ通知を全体配信にのみ利用している場合における、データ保存法を紹介します。

全体配信とは

プッシュ通知は大きく分けて3つの配信方法があるといえます。

  • 全体配信
  • 条件配信
  • 個別配信

全体配信とは、登録されているデバイストークン全体に対して配信するものです。条件を指定しない分、シンプルな管理が可能ですが、セグメント化されていない分、役立たない内容の配信も行われてしまうことも多くなります。そのため開封率はそれほど高くないでしょう。

f:id:mbaasdevrel:20200408172220p:plain

条件配信はデバイストークンに条件を指定しておいて、絞り込み条件として使うものです。例えば性別、年齢層、興味のある情報、居住地域などです。配信条件を絞り込む分、より確度の高い配信が可能になります。利用者にとってもマッチした情報が配信される傾向にあるので、開封率も高くなります。

f:id:mbaasdevrel:20200408172228p:plain

個別配信はよりセグメントを細かくした配信方法です。また、チャットアプリなどで個人宛にメッセージが来た際のプッシュ通知としても使われます。mBaaSの管理画面では配信したプッシュ通知ごとに開封率を取っているため、表示は若干煩雑になりがちです。

f:id:mbaasdevrel:20200408172252p:plain

今回はこの中の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();

これで受信したプッシュ通知の一覧が得られました。後はこのプッシュ通知一覧を表示してあげればいいだけです。

まとめ

全体配信の場合は、配信日時だけで絞り込むのが手軽です。今回の実装を参考にお知らせ一覧機能を実装してみてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。