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

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

プッシュ通知にカスタムペイロードを設定する3つメリットとその実装方法

https://cdn-ak.f.st-hatena.com/images/fotolife/f/fjct/20171019/20171019094346.png

アプリにプッシュ通知機能が実装されていることは、一般的になっていますが、多くの場合プッシュ通知は「メッセージを配信するツール」として認識されています。イベントのお知らせなどアプリの機能とは切り離した機能としてしか活用されていないのが現状です。 しかし、プッシュ通知が備えている機能にペイロードという機能があります。このペイロード機能をカスタマイズして活用することで、プッシュ通知は単にメッセージを一方的に配信するツールではなく、メッセージ以外のさまざまなデータをアプリに届けることが可能になります。この記事では、そんなカスタムペイロード機能についてご紹介していきます。

カスタムペイロードとは

プッシュ通知には「タイトル」と「メッセージ」を載せて配信するのが一般的です。iOSの場合は、この「タイトル」と「メッセージ」を以下のようなjsonデータとして作成し、プッシュ通知を配信します。

aps_alert_body_title

このデータのことをプッシュ通知のペイロードといいます。ペイロードのjsonデータは拡張して、さまざまなデータをプッシュ通知に持たせることが可能です。これをカスタムペイロードといいます。

 

カスタムペイロードを使う3つのメリット

カスタムペイロードを設定することで、アプリはプッシュ通知からデータを受信できるようになります。すると次の3つのことが実装可能になります。

確認したら消えてしまっていたプッシュ通知を残しておける

「プッシュ通知でイベントのお知らせがきていたけど、あれは何時からだっけ?」もう一度プッシュ通知を確認したくてもプッシュ通知は1度見たら消えてしまいます。せっかくユーザーの興味を引き付けることに成功しても、イベントに参加してもらえなければ意味がありません。消えてしまったプッシュ通知を復活させることはできませんが、受信時にプッシュ通知のメッセージをペイロードデータから取得しておけば、問題は解決しますね!カスタムペイロードに設定をしたデータはメッセージ以外にもすべて取得することが可能です。

pushlog

 

アップデートをせずにアプリ内データの更新ができる

データ更新のためにアプリのアップデートをしなければならないことがあると思います。できるなら頻繁にデータ更新してアプリを改良したいと思いますが、アップデートには「ストア審査」というリスクがあります。

ストア審査は避けたい

 

「データは更新したいけど、アップデートはしたくない」というのが本音ですね。それを叶えるのことができる機能の1つがこのカスタムペイロードです。例えば、「アプリ内で使用している音声データを更新するために、そのダウンロードURLを送りたい」場合は、新しいURLを

{"URL":"http://mb.cloud.nifty.com/update_data/new_music_data.mp3"}

の形でカスタムペイロードに設定することで、 プッシュ通知起動時に新しいデータのダウンロードURLを取得することが可能です。

 

指定した時間に確実にプッシュ通知を配信できる

リモートプッシュ通知受信して裏でペイロードを受信するイメージ
  • 12:00頃、次のようなプッシュ通知(リモートプッシュ通知)を配信
    • 以下の内容でペイロードを設定
カスタムペイロード
  • このように使用することで、事前に配信したプッシュ通知(12:02受信)を開くと、その通知からペイロードを取得できるため、必ず20:00ぴったりに、プッシュ通知を配信できる(配信したように見せること)ができます

プッシュ通知は通常プッシュ通知配信サーバー(iOSはAPNs、AndroidはFCM)を介して行われます。したがって、今すぐ配信をしたい場合でも、一度プッシュ通知配信サーバーへリクエストを出さなければならず、またそこで処理を行うため、どうしても遅延が生じてしまいます。これを解決するのが、カスタムペイロードとローカルプッシュ通知の合わせ技です。ローカルプッシュ通知とは、通常のサーバーから配信されるプッシュ通知(リモートプッシュ通知)と違い、アプリの内部で通知を生成し、表示する機能です。ユーザーからはローカルプッシュ通知のリモートプッシュ通知の見分けは付きません。このローカルプッシュ通知を使用することで、20時から始まる「タイムセール」の開始時刻ジャストに配信されるプッシュ通知を送ることができます。

 

カスタムペイロードの実装方法

カスタムペイロードの有効性を理解できたところで、実際の実装方法を見ていきましょう。ここでは、より簡単にプッシュ通知を実現するために、ニフティクラウドmobile backend(以下mBaaS)を使った実装方法をご紹介します。

mBaaSとは?

 

カスタムペイロードを設定したプッシュ通知の送り方

mBaaSはダッシュボードを利用して、簡単にプッシュ通知を配信することができます。最も簡単にプッシュ通知を配信するには、メッセージのみ指定すれば配信可能です。

mBaaSダッシュボード_プッシュ通知フォーム

タイトルやメッセージもペイロードデータとして端末側で受け取ることは可能ですが、それ以外にデータを受信したい場合はカスタムペイロードを設定します。カスタムペイロードはフォームの「JSON」にjson形式で記入します。

  • 例えば、keyを「URL」、valueを「http://mb.cloud.nifty.com/update_data/new_music_data.mp3」として設定する場合
{"URL":"http://mb.cloud.nifty.com/update_data/new_music_data.mp3"}

これだけOKです!とても簡単ですね◎ 次はこのデータを受信してみましょう。

 

プッシュ通知からペイロードデータを取得する方法

アプリ側ではプッシュ通知を受信したときにプッシュ通知からペイロードのデータを受信するためのコードを実装する必要があります。例えばiOSの場合は、受信時の状況に応じて、以下の2つの処理を実装します。

  • アプリ不使用時にプッシュ通知を受信⇒アプリが起動されたときにペイ路オードを取得する処理
アプリ不使用時にプッシュ通知を受信した場合
  • アプリ使用時にプッシュ通知を受信⇒プッシュ通知の受信タイミングでペイロードを取得する処理
アプリ使用時にプッシュ通知を受信した場合

詳細な説明は、下記のサンプルあるいはドキュメントページをご覧下さい

注意:ペイロードの実装方法は、mBaaSを利用するために必要な設定(SDKの導入・読み込み・初期化)と、プッシュ通知を受信するために必要なコーディングは設定済みとして解説していますので詳細は下記ドキュメントをご確認ください。

さいごに

いかがでしたでしょうか。プッシュ通知にカスタムペイロードを設定することによって、プッシュ通知はメッセージ以外にもさまざまなデータを配信できることができることを学びました。mBaaSを使ったカスタムペイロードの実装方法について、さらに詳しく知りたい方へ、サンプルをご用意いたしました。ぜひご活用ください!