Open5
プッシュ通知を入れたい時に考慮すること
料金は無料
FCMアーキテクチャの概要
Firebase コンソールでできること
- 全員への一斉通知
- iOS だけへの通知
- Android だけへの通知
- バージョンごと
- 言語
- ユーザーオーディエンス?
- 初回起動
- 前回のアプリエンゲージメント
- これを使用すれば、何日前にアプリを開いたユーザなのかが取れそう
- [GA4] 自動的に収集されるイベント - アナリティクス ヘルプ
- 自動で収集されるのでアプリを開いたら最後のエンゲージメントが更新されると思われる
- https://support.google.com/analytics/answer/9234069?hl=ja&ref_topic=9756175
- アプリ
- 任意のタイミングデバイストークンをAPIに送信する
- ログアウトした時にデバイストークンをAPIから削除
- サーバー
- デバイストークン登録APIを作成
- デバイストークンは複数登録できるようにする
- 一つしかトークンが登録できないと、複数端末でログインした時に対応できないため
- デバイストークン削除APIを作成
- 同じ端末で別のアカウントでログインしたら、同じデバイストークンに、複数のプッシュ通知が届いてしまうため
- ログイン→ログアウト→別のアカウントでログイン
- プッシュ通知の送信を行う処理を作成
- プッシュ通知を送信した時にエラーが発生
- 届かなかったエラーの場合はアンインストールされたと同義なので、登録しているデバイストークンを削除する
- バッチとかも
- 管理画面が必要になる
やること
- APNs認証キーの発行
- 【iOS】Firebase Cloud Messagingで利用するAPNs認証キー・証明書の作り方 - Qiita
- https://qiita.com/MYamate_jp/items/994a31d5408bc09998bc#apple-push-notification-authentication-key
- Firebase プロジェクトに認証キーを登録
- dev
- stg
- prod
- アプリ側の実装
- インストール
- iOS 側の設定
- Andoird 側の設定
- Firebase Cloud Messaging | FlutterFire https://firebase.flutter.dev/docs/messaging/overview/
- Flutter の実装
- テストするために必要なこと
- 実機ビルドするために Apple Developer に登録
考慮すること
- バッジは必要か
- iOS だとホーム画面などにバッジがついて数字がつく
- Android は一部端末のみ対応
- 通知のアイコン
- iOS はアプリアイコンなので用意は不要
- Android は自分で作成しなければいけない
- デフォルトのものを使用することも可能
- アプリがフォアグラウンドの際に通知を表示するか
- 通知をタップした時の挙動
- アプリを起動することはデフォルトで行える
- 特定の画面に遷移
- 実装コストは高い(画面遷移の実装方法によるが)
- プッシュ通知の許可をユーザからOFFにされた場合
- 設定画面からアプリの設定画面に飛べるようにするのか
- OFFにされたら許可のダイアログは出せない
- プッシュ通知の許可をどこ(どの画面)で表示するか
- iOS は許可が必要
- Android は Android13 から許可が必要