メインコンテンツへスキップ

なぜプッシュ権限プロンプトを使用するのですか?

バナーとして表示され、ロック画面に表示され、サウンドを再生するなどのプッシュ通知を送信するには、まずユーザーの権限を取得する必要があります。iOS、Android、Huawei、Amazon、Webでは、これにはシステムレベルの権限プロンプトの表示が含まれます。
iOS and Android system-level push permission prompts side by side
このガイドはモバイルアプリプッシュサブスクライバー向けです。ウェブプッシュについては、ウェブプッシュ権限プロンプトをご覧ください。 前提条件: OneSignalアカウントOneSignal SDKをインストール済みのモバイルアプリ、およびアプリ内メッセージを有効化済みであること。
iOSはシステム権限プロンプトを1回のみ許可します。Androidは2回許可します。ユーザーが拒否した場合、システム設定で通知を手動で有効にする必要があります。タイミングの悪いプロンプトは、サブスクライバーを永久に失う可能性があります。
iOSでは、ユーザーにプロンプトを表示せずに通知センターに静かに配信される仮通知も使用できます。テストや低摩擦オンボーディングに最適です。
システムプロンプトは回数が制限されているため、AppleGoogleの両方が、表示前に通知の価値を説明することを強く推奨しています。requestPermission() SDKメソッドを使用していつでもプロンプトをトリガーできますが、適切なコンテキストがなければユーザーは拒否する可能性が高くなります——iOSでは、拒否されたプロンプトは再表示できません。 推奨されるアプローチは「ソフトプロンプト」です——リクエストを紹介するカスタムアプリ内メッセージです。ユーザーが受け入れると、システムプロンプトが表示されます。拒否した場合は何も起こらず、後で再度尋ねることができます。
In-app message leading to system push permission prompt

アプリ内プッシュ権限プロンプトの設定

1

自動権限プロンプトを削除する

開始する前に、アプリがネイティブプッシュプロンプトを自動的にトリガーしていないことを確認してください:
  • アプリ起動時に呼び出している場合は、requestPermission()またはoptIn()メソッドを削除します。
  • requestAuthorizationWithOptionsへのネイティブiOS呼び出しと、プッシュトークンを生成するメソッドを削除します。
  • requestPermissionsへのAndroid呼び出しと、プッシュトークンを生成するメソッドを削除します。
また、アプリでOneSignal SDKの最新バージョンを使用していることを確認してください。
2

アプリ内メッセージを作成または編集する

メッセージ > アプリ内に移動し、次のいずれかを実行します:
  • デフォルトのプッシュ権限プロンプトテンプレートを編集するか、
  • 新しいメッセージをクリックして独自のメッセージを作成します。
OneSignal in-app messages list showing the Push Permission Prompt template
オーディエンスをすべてのユーザーに表示に設定します。OneSignalはプッシュ権限プロンプトのクリックアクションに基づいて、プッシュを未購読のユーザーにのみ自動的にこのメッセージをフィルタリングします。
Audience setting configured to show to all users
3

メッセージデザインをカスタマイズする

アプリに合わせて外観、感触、表現をパーソナライズします。ユーザーがどのような通知を受け取るか、そしてなぜそれらが価値があるのかを知らせます。詳細については、ドラッグアンドドロップでアプリ内メッセージをデザインするまたはHTMLでアプリ内メッセージをデザインするをご覧ください。
In-app message block editor with a push opt-in prompt
4

プッシュ権限プロンプトクリックアクションを追加する

メッセージ内の任意のボタンまたは画像にプッシュ権限プロンプトクリックアクションを追加します。タップすると、システムプロンプトが表示されます。
Click action dropdown with Push Permission Prompt selected
iOS native push notification permission prompt
ユーザーがすでに権限を拒否している場合、ボタンは代わりにアプリの通知設定に誘導します。
「プッシュ権限プロンプト」アクションを持つアプリ内メッセージは、すでに通知を許可しているユーザーには表示されません。
5

トリガーを選択する

オーディエンスは、メッセージを表示する資格があるユーザーを制御します。トリガーは、いつ表示されるかを制御します。
In-app message trigger configuration panel
メッセージをトリガーできます:
  • アプリを開いたとき
  • 設定されたセッション時間の後
  • 特定のユーザーイベント時
  • プログラム的に、アプリ内メッセージSDKメソッドを使用してタイミングとコンテキストを完全に制御
たとえば、ユーザーがアプリで少なくとも5分間過ごすまで待つには:
Session duration trigger set to 5 minutes
6

スケジュールと頻度

メッセージが表示される頻度を制御します:
  • 1回のみ — 最初に準備ができていなかったユーザーを転換できる可能性が低い。
  • 条件が満たされるたびに — 積極的すぎてユーザーを煩わせる可能性がある。
  • 複数回(推奨) — 大きな最大値(例:9999)と表示間の間隔(例:2週間)を設定する。これにより、未購読ユーザーに定期的に再プロンプトを表示しながら邪魔にならない。使用ケースに応じて間隔を調整する。
Schedule configuration showing max displays and gap between views
メッセージを更新してライブに設定します。統計を監視し、必要に応じて表示間の間隔を調整します。

プログラム的に権限プロンプトを表示する

requestPermission()またはoptIn() SDKメソッドを使用して、プッシュ権限プロンプトを手動でトリガーできます。これは、次のようなカスタムフローに役立ちます:

プッシュ権限とプロンプト結果の追跡

アプリ内メッセージを使用してプッシュをプロンプトする場合、アプリ内メッセージクリックリスナーを使用してクリックアクションを追跡できます。 アプリ内メッセージが表示されてもユーザーがボタンをクリックしない場合は、アプリ内メッセージライフサイクルイベントを使用してインプレッションと閉じるアクションを追跡できます。 システムレベルの権限プロンプト自体の結果を追跡するには、プッシュ権限リスナーを使用します。
これらのSDKイベントを選択したバックエンドまたは分析ツールに送信できます。

FAQ

ユーザーがプッシュ権限プロンプトを拒否した場合はどうなりますか?

iOSでは、システムプロンプトを拒否するとアプリのプッシュ通知が永久に無効になります——プロンプトは再表示できません。Androidでは、ユーザーはもう1回チャンスがあります(合計2回)。すべての試みを使い果たした後、ユーザーはデバイスの設定 > 通知で手動で通知を再有効化する必要があります。OneSignal SDKのrequestPermission(fallbackToSettings: true)メソッドは、以前に権限が拒否された場合にユーザーを通知設定にリダイレクトできます。

ネイティブシステム権限プロンプトをカスタマイズできますか?

できません。ネイティブiOSおよびAndroidの権限ダイアログはオペレーティングシステムによって制御されており、カスタマイズできません。カスタマイズできるのはソフトプロンプト(システムプロンプトの前に表示されるアプリ内メッセージ)のみです。ソフトプロンプトを使用して通知の価値を説明し、期待値を設定し、システムプロンプトで「許可」が選択される可能性を高めます。

仮通知でユーザーにプロンプトを表示できますか?

はい。iOS仮プッシュ通知を使用している場合でも、ソフトプロンプトを表示してこれらのユーザーをフルプッシュサブスクライバーに転換できます。仮通知から価値を見たユーザーのタイミングを戦略的に選んでください。

以前にプッシュを拒否したユーザーに再プロンプトするにはどうすればよいですか?

iOSでユーザーが拒否した(またはAndroidで2回拒否した)後は、システム権限プロンプトを再表示することはできません。代わりにrequestPermission(fallbackToSettings: true) SDKメソッドを使用します。これにより、ユーザーが手動で通知を有効にできるアプリの通知設定ページが開きます。通知の価値を説明するアプリ内メッセージと組み合わせて使用してください。

Androidはいつから権限プロンプトを要求し始めましたか?

Android 13(APIレベル33)でランタイム通知権限が導入され、プッシュ通知のために明示的なユーザーの同意が必要になりました。
  • リリース: 2022年8月(Pixelデバイス)
  • ターゲットSDKに必要: 2023年8月31日現在、Google Playのすべての新しいアプリとアップデートは、APIレベル33以上をターゲットにする必要があります。
  • ソース: 通知権限に関するGoogleの開発者ガイド

iOS仮プッシュ通知

iOS 12+で事前の権限プロンプトなしに通知センターに通知を送信します。