※ 告知事項:筆者はニフクラ mobile backendのエバンジェリストを務めています。
アプリをよりアプリらしくし、かつ利用者を増やしていく上でも欠かせないのがプッシュ通知の機能です。皆さんがアプリを作る際に実装したい機能の一つではないでしょうか。
そんなプッシュ通知の仕組みは、アプリをインストールしたデバイスからトークン(インストール端末を特定するためのユニークな文字列)を取得し、そのトークンとメッセージをAppleやGoogleが提供しているサーバに対して送信します。そうすると、プッシュ通知が各デバイスで表示されるという仕組みになっています。
デバイストークンさえ保存する場所があれば、自分でプッシュ通知を管理、送信する仕組みを作ることも可能です。しかしデバイストークンの管理や、アンインストールされた際のメンテナンスは面倒です。そのため、プッシュ通知を管理するクラウドサービスがあります。
プッシュ通知サービスは数多くありますが、今回はCordovaプラグインを提供している(一部非公式の場合もあります)サービスに限って紹介します。
ニフクラ mobile backend
ニフクラ mobile backendは、月100万回までのプッシュ通知送信が無料で行えるサービスです。Monacaと連携しており、Monacaの無料ユーザであっても導入できるプラグインを提供しています(Cordovaプラグインの管理からインストールできます)。ニフクラ mobile backendではプッシュ通知以外にも会員認証、データストア、ファイルストアといった機能を提供しています。
mBaaSでサーバー開発不要! | ニフクラ mobile backend
Firebase
Googleが提供するFirebase Cloud Messagingでは、プッシュ通知が無料で配信できます。Cordovaプラグインは無料では使えないので、Proプラン以上が必須になります。Firebaseではリアルタイムデータベースや認証、アクセス解析などの機能も提供しています。Cordovaプラグインはdpa99c/cordova-plugin-firebasexになります。
Microsoft Azure Notification Hubs
Azureが提供するプッシュ通知サービスです。100万プッシュ通知まで無料、その後は100万プッシュ通知で112円などとなっています。Azureが提供するクラウドサービスと組み合わせて使う際に便利でしょう。Monacaと連携しており、無料ユーザであってもプッシュ通知やシングルサインオン、オフラインキャッシュなどもサポートしたプラグインがインストールできます。Cordovaプラグインはderek82511/cordova-azure-notification-hubsになります。
Notification Hubs - モバイル プッシュ通知 | Microsoft Azure
IBM Cloud
毎月100万メッセージ、1万デバイスまで無料です。その後1000デバイスごとに112円、100万メッセージごとに112円となっています。ibm-bluemix-mobile-services/bms-clientsdk-cordova-plugin-pushというプラグインが用意されています。
IBM Cloudでモバイル・サービスとアプリを開発 | IBM Cloud - 日本 | IBM
AeroGear
プッシュ通知だけでなく、データ同期、認証、CI/CD、解析、セキュリティなどの機能も提供するバックエンドサービスとなっています。aerogear/aerogear-cordova-pushを使うことでプッシュ通知が導入できるようです。
AeroGear - Open Source Libraries for Mobile Connectivity
OneSignal
プッシュ通知に特化したクラウドサービスになります。モバイルアプリであれば制限なく無料で利用できます。セグメントであったり、データにタグを付けるところで課金が分かれています。プッシュ通知の解析、A/Bテストなどの機能があります。CordovaプラグインはOneSignal/OneSignal-Cordova-SDKにあります。
#1 Push Service | Send Mobile & Web Push Notifications - OneSignal
LeanCloud
中国で提供されているメッセージサービスです。アプリを中国市場向けに提供する場合には現地のサービスを使う方が確実でしょう。leancloud/cordova-plugin-leancloudを使ってデバイストークンの取得、配信の管理ができます。
Kii
Kiiはユーザ管理、データベース、プッシュ通知などの機能を提供します。専用のプラグインではなく、phonegap/phonegap-plugin-pushを使ってデバイストークンを取得します。
IoT クラウドプラットフォーム Kii - Kii株式会社
まとめ
デバイストークンの取得はAndroid/iOSネイティブの機能を使うため、プラグインが必須になります。いくつかのサービスでは無料でも導入可能です。それ以外のサービスを使う場合にはCordovaプラグインを導入する必要があります。
プッシュ通知はデバイストークンを取得するのが目的ではなく、その後の配信と開封率など運用が問題になります。まずデバイストークンの取得と保存まではプラグインとクラウドサービスを使って素早く完了させましょう。