サイレント通知とは?
サイレント通知を使用すると、可視メッセージを表示したり音を鳴らしたりすることなく、アプリを起動してバックグラウンドタスク(同期やデータの更新など)を実行できます。 iOSでは、これらをバックグラウンド通知と呼び、Androidではデータ通知として知られています。これらはまとめてサイレントプッシュと呼ばれ、通常の可視通知とは異なる動作をします。制限事項
- アプリがサイレントプッシュを受信できない場合:
- 配信は保証されません:
- AppleとGoogleの両方がサイレント通知をベストエフォートとして扱います。iOSは低電力モード、バックグラウンドアプリの更新がオフ、またはユーザーがアプリを閉じた場合に配信を遅延またはドロップする可能性があります。AndroidはDozeまたはOEMの省電力ルールの下で配信を制限またはバッチ処理する可能性があります。
- このため、サイレント通知は重要な更新には使用しないでください。
- 購読ユーザーのみ:OneSignal SDKは購読しているサブスクリプションにのみデータ通知を送信します。非購読ユーザーに到達するには、この回避策に従ってください。
- クロスプラットフォームSDKの限定的なサポート:
- サイレント通知は、ネイティブコード(AndroidのJava/Kotlin、iOSのSwift/Obj-C)で処理する必要があります。
- iOSは
application:didReceiveRemoteNotification:fetchCompletionHandler:の実装が必要です。 - Androidは通知サービス拡張機能の実装が必要です。
OneSignalからサイレント通知を送信
OneSignalからサイレント通知を送信するには、次の手順に従います:可視コンテンツを省略
メッセージから可視テキストまたはタイトルを削除します。これには次が含まれます:
- API:Create notification APIリクエストの
contents、headings、subtitle。 - Dashboard:Message、Title、Subtitle
content_availableを設定
- API:
content_availableをtrueに設定します。 - Dashboard:「Send to Apple iOS」の下のContent availableをチェックします。これはすべてのプラットフォームに適用され、システムにメッセージが送信されていないことを伝えるだけです。
APIペイロードの例
プラットフォーム固有の設定
iOSバックグラウンド通知の設定
バックグラウンド通知を処理するには、iOSアプリのXcodeでBackground Modes > Remote Notifications機能を有効にする必要があります。これは通常、モバイルSDKセットアップに従った場合に含まれています。 通知を処理するには、AppDelegateメソッドapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:)を実装します。
Appleドキュメント:
Androidデータ通知の設定
通知サービス拡張機能を使用してAndroidでデータ通知を処理します。 これにより次が可能になります:- アプリが強制終了されていない限り通知を処理
- 通知の表示または抑制方法をカスタマイズ
VoIP通知の送信
VoIP通知はサポートされていますが、標準のOneSignal SDKの外で追加の構成が必要です。OneSignalはVoIPトークンを自動的に登録しません。VoIP通知セットアップガイド
iOSでリアルタイム通話用のVoIPプッシュ通知を設定します。
FAQ
サイレント通知をアンインストールまたは購読解除の検出に使用できますか?
技術的には可能ですが、信頼性がありません。上記の制限事項セクションで説明したように、サイレント通知の配信は保証されていません。 代わりに:- 少なくとも月に1回、すべてのユーザーに可視通知(コンテンツを含む)を送信してください。
- オプションで補足チェックとしてサイレント通知を送信してください。
確認配信はサイレント通知で機能しますか?
確認配信はサイレント通知では機能しません。サイレント通知を使ってリーチ可能なユーザー数を測定できますか?
いいえ、信頼性がありません。サイレント通知は配信が保証されていません。- 配信は保証されない — AppleとGoogleの両方がサイレント通知をベストエフォートとして扱い、遅延またはドロップする可能性があります。たとえば、アプリが閉じられている(強制終了)場合、iOSはドロップし、AndroidとiOSは省電力ルールの下で制限します。
- 配信は確認されない — 確認配信はサイレント通知では機能しないため、どのユーザーが実際にプッシュを受信したかを知る方法がありません。