
高いオプトイン率を実現するための戦略
プッシュのオプトイン率は、システムプロンプト自体の文言よりも、いつ、どのように尋ねるかに大きく左右されます。プロンプト表示を戦略として扱うアプリは、初回起動時にプロンプトを表示するアプリを一貫して上回るパフォーマンスを発揮します。以下の原則はその構成要素です。下記のサンプル戦略は、これらを具体的なプレイブックにまとめる方法を示しています。原則
- 価値を実感した瞬間の後に尋ねる。 ユーザーが通知に値する体験をした直後まで待ってください。オンボーディングの完了、アイテムの保存、トピックのフォロー、注文の実行、初回セッションの完了などです。ユーザーがアプリの用途を理解する前、初回起動時にプロンプトを表示することは、オプトイン率が低くなる最大の原因です。
- iOSでは仮通知から始める。 仮通知はプロンプトを表示せずに通知センターに静かに配信されるため、ユーザーは仮定の説明ではなく実際のコンテンツに基づいて維持するかどうかを判断できます。これはiOSでコンバージョン率が最も高くなることが多く、デフォルトの出発点にすべきです。
- アプリ内ソフトプロンプトで価値を説明する。 ソフトプロンプトはOneSignalのアプリ内メッセージで、送信する通知の種類とそれが重要な理由をユーザーに伝えます。ソフトプロンプトを閉じてもシステムプロンプトの試行回数は消費されないため、まだ準備が整っていないユーザーに再度尋ねることができます。
- システムプロンプトではなく、ソフトプロンプトを拒否したユーザーに再度尋ねる。 ソフトプロンプトを一定の間隔(たとえば
2 weeksごと)で再表示するよう設定します。準備が整っていなかったユーザーは、システムプロンプトの上限を消費することなく、別の機会を得られます。 - コピーとタイミングを反復改善する。 ソフトプロンプトを公開し、メッセージレポートでコンバージョンを観察したうえで、トリガー、文言、頻度を調整します。タイミングとコピーのわずかな変更で、オプトイン率が数十パーセントポイント変動することは珍しくありません。
例:オンボーディングオプトイン戦略
この例では、iOSで即座にリーチを獲得するための仮通知と、フルオプトインのために価値を実感した瞬間に表示するソフトプロンプトを組み合わせています。出発点として使用し、通知の種類と価値を実感する瞬間をアプリに合わせて調整してください。AndroidおよびHuaweiアプリの場合は、フェーズ1をスキップしてフェーズ2から始めてください。 フェーズ1:iOSでのサイレントリーチ- OneSignalダッシュボードの Settings > Apple iOS > Advanced Configuration > Enable iOS 12 direct to history で仮認証をオンにします。
- ユーザーの最初の1週間に、質の高い通知を2~3件送信します。パーソナライズされたおすすめ、速報アラート、週次ダイジェストなど、サブスクライブする価値を示すコンテンツを選択してください。ユーザーはプロンプトなしで通知センターに静かに受信します。
- Messages > In-App で、ユーザーがすでに体験した価値に言及するソフトプロンプトを作成します。ヘッドラインの例:「速報アラートをロック画面で受け取ろう」。
- オーディエンスを Show to all users に設定します。Push Permission Prompt クリックアクションが自動的に未購読ユーザーにフィルタリングします。
- シグナル性の高いイベントでメッセージをトリガーします。仮通知を開く、または仮通知に対して行動する、トピックをフォローする、カートにアイテムを追加する、セッション時間が5分に達するなどです。
- CTAボタンに Push Permission Prompt クリックアクションを追加します。
- スケジュールを Multiple times に設定し、ユーザーあたりの最大表示回数を
20、表示間隔を2 weeksに設定します(約10か月間の再プロンプト表示に相当します)。
- 1~2週間後、メッセージレポートでプロンプトからオプトインへのコンバージョンを確認します。
- SDKリスナーを使ってファネル全体を計測します。ソフトプロンプトのクリック、閉じる動作、システムプロンプトの結果を計測し、イベントを分析ツールに転送してください。
- 数値に基づき、一度に1つの変数(トリガーイベント、ヘッドライン、CTAのコピー、または表示間隔)を調整します。
アプローチを選択する
OneSignalでプッシュサブスクライバーベースを拡大する方法は3つあります。ほとんどのiOSアプリでは仮通知とアプリ内ソフトプロンプトを組み合わせるべきです。ほとんどのAndroidアプリではソフトプロンプトから始めるべきです。| アプローチ | プラットフォーム | 仕組み | 使用するタイミング |
|---|---|---|---|
| アプリ内ソフトプロンプト(推奨) | iOS、Android、Huawei | OneSignalのアプリ内メッセージに Push Permission Prompt クリックアクションを設定します。ボタンをタップするとシステムプロンプトが表示されます。アプリ内メッセージを閉じても何も消費されないため、後で再度尋ねることができます。 | デフォルトの選択肢。コードリリースなしでプロンプトを設計、スケジュール、ターゲット、再表示できます。 |
| プログラム的なプロンプト | iOS、Android、Huawei | アプリコードからrequestPermission()またはoptIn()を呼び出します。システムプロンプトが即座に表示されます。 | アプリがトリガーを制御するカスタムフロー:プリファレンスセンター、プロフィール画面、またはプロンプトを表示するに値するアプリ内イベントなど。 |
| 仮通知 | iOS | OneSignalダッシュボードで有効化します。ユーザーはプロンプトなしで通知センターに静かな通知を受け取り、Keep をタップしてフルサブスクライバーに変換されます。 | iOSのオンボーディングと低摩擦のリーチに最適。ソフトプロンプトと組み合わせて、静かなサブスクライバーをフルプッシュサブスクライバーに変換します。 |

前提条件
- OneSignalアカウント。
- OneSignal SDKをインストールし、
OneSignalInAppMessagesパッケージを有効にしたモバイルアプリ。
アプリ内プッシュ権限プロンプトを設定する
自動権限プロンプトを削除する
開始する前に、アプリがシステム権限プロンプトを自動的にトリガーしていないことを確認してください:
- アプリ起動時に呼び出される
requestPermission()またはoptIn()の呼び出しを削除します。 requestAuthorizationWithOptionsへのネイティブiOS呼び出しと、プッシュトークンを直接生成するコードを削除します。requestPermissionsへのAndroid呼び出しと、プッシュトークンを直接生成するコードを削除します。
アプリ内メッセージを作成または編集する
Messages > In-App に移動し、次のいずれかを実行します:
オーディエンスを Show to all users に設定します。OneSignalは Push Permission Prompt クリックアクションに基づいて、このメッセージをプッシュを未購読のユーザーにのみ自動的にフィルタリングします。
- デフォルトの Push Permission Prompt テンプレートを編集する、または
- New Message をクリックして独自のメッセージを作成する。


メッセージデザインをカスタマイズする
アプリに合わせて外観、雰囲気、文言をパーソナライズします。どのような通知が届くのか、なぜそれが価値があるのかをユーザーに伝えます。詳細は、ドラッグアンドドロップでアプリ内メッセージをデザインするまたはHTMLでアプリ内メッセージをデザインするをご覧ください。

Push Permission Prompt クリックアクションを追加する
メッセージ内の任意のボタンまたは画像に Push Permission Prompt クリックアクションを追加します。タップされると、システム権限プロンプトが表示されます。

ユーザーがすでに最大回数(iOSでは1回、Androidでは2回)システム権限プロンプトを拒否している場合、クリックアクションは代わりにユーザーをアプリの通知設定に誘導します。これはSDKから


requestPermission(fallbackToSettings: true)を呼び出すのと同等です。Push Permission Prompt クリックアクションが設定されたアプリ内メッセージは、すでに通知を許可しているユーザーには表示されません。
トリガーを選択する
オーディエンスはメッセージを表示する資格がある人を制御します。トリガーはいつ表示されるかを制御します。プロンプトは価値を実感した瞬間、つまりユーザーが通知に値する体験をした直後にトリガーすることを目指してください。
トリガーオプション(コンバージョン率がおおむね低い順から高い順):

- アプリ起動時。 シンプルですが、最適であることはめったにありません。アプリの価値が数秒以内に明らかな場合のみ使用してください。
- 設定されたセッション時間の経過後。 良いデフォルト設定。ユーザーがアプリを探索してから尋ねます。
- 特定のユーザーイベント時。 コンバージョンに最適。オンボーディングの完了、アイテムの保存、トピックのフォロー、初回購入の完了など、シグナル性の高いアクションの後にトリガーします。
- プログラム的に、アプリ内メッセージトリガーのSDKメソッドを使用します。タイミングとコンテキストを完全に制御でき、プロンプト表示前に複数のシグナルを組み合わせることも可能です。

スケジュールと頻度
メッセージが表示される頻度を制御します:
- Only once。 最初に準備ができていなかったユーザーを転換できる可能性が低くなります。
- Every time conditions are met。 積極的すぎてユーザーを煩わせる可能性があります。
- Multiple times(推奨)。 ユーザーあたりの最大表示回数と表示間の間隔を設定します。たとえば、表示回数
20、間隔2 weeksにすると、未購読ユーザーに約10か月間、積極的な頻度で再プロンプトを表示します。エンゲージメントが低いアプリやユーティリティアプリで2週間の間隔が押しつけがましく感じる場合は、間隔を緩めてください(たとえば30 daysや60 days)。

プログラム的に権限プロンプトを表示する
requestPermission()またはoptIn() SDKメソッドを使用して、システム権限プロンプトを手動でトリガーできます。これは次のようなカスタムフローに役立ちます:
- プリファレンスセンター。
- ユーザープロフィール画面。
- 特定のアプリ内イベント。
requestPermission()にfallbackToSettings: trueを渡すと、すでに拒否したユーザーは黙って何もしないのではなく、アプリの通知設定にリダイレクトされます。
サブスクリプションが
optOut()によってSDKレベルでオプトアウトされている場合(サブスクリプションレコードにnotification_types: -2と表示されます)、requestPermission()だけではサブスクリプションのステータスは変わりません。代わりにoptIn()を使用してください。権限をリクエストすると同時に、オプトアウト状態を解除します。iOS仮通知を使用する
仮プッシュ通知はiOS 12で導入されました。権限プロンプトを表示せずに通知センターに通知を配信できます。ユーザーはアプリからの実際のコンテンツを見て、その体験に基づいて通知を維持するか、サイレントにするか、オフにするかを判断します。 戦略として有効な理由:- 失敗するシステムプロンプトがありません。事前のオプトイン判断なしに、初回セッションからユーザーへのリーチを開始できます。
- ユーザーは仮定の説明ではなく、実際の価値に基づいて判断します。
- 後からソフトプロンプトを表示することで、仮通知のユーザーをバナー、サウンド、ロック画面アラートを備えたフルプッシュサブスクライバーに変換できます。

プッシュ権限とプロンプト結果を追跡する
- ソフトプロンプト内でユーザーがどのボタンをタップしたかは、アプリ内メッセージクリックリスナーで追跡します。
- インプレッションと閉じる動作(ユーザーがソフトプロンプトを見てもタップしない場合)は、アプリ内メッセージライフサイクルリスナーで追跡します。
- システム権限プロンプト自体の結果は、プッシュ権限オブザーバーで追跡します。
これらのSDKイベントは、任意のバックエンドや分析ツールに転送できます。
FAQ
ユーザーがシステム権限プロンプトを拒否した場合はどうなりますか?
iOSでは、システム権限プロンプトを拒否すると、そのアプリのプッシュ通知は永久に無効になります。プロンプトを再表示することはできません。Androidでは、ユーザーはもう1回チャンスを得られます(合計2回)。すべての試行を使い切ると、ユーザーはデバイスの Settings > Notifications で手動で通知を再有効化する必要があります。Push Permission Prompt クリックアクションとrequestPermission(fallbackToSettings: true)はいずれも、ユーザーを通知設定に直接誘導することで対応します。
ネイティブシステム権限プロンプトをカスタマイズできますか?
いいえ。iOSとAndroidのシステム権限プロンプトはオペレーティングシステムによって制御されており、カスタマイズできません。カスタマイズできるのは、その前に表示されるアプリ内メッセージであるソフトプロンプトだけです。ソフトプロンプトを使って通知の価値を説明し、期待値を設定し、システムプロンプトで「Allow」が選択される可能性を高めましょう。仮通知を利用しているユーザーにもプロンプトを表示できますか?
はい、表示すべきです。仮通知のユーザーは、すでにアプリからの実際の通知を目にしているため、ソフトプロンプトの絶好の対象です。推奨されるパターンについては、iOS仮通知を使用するをご覧ください。ユーザーが仮通知を開いたり操作した直後にソフトプロンプトが出るようタイミングを調整してください。以前にプッシュを拒否したユーザーに再プロンプトするにはどうすればよいですか?
システム権限プロンプトを使い切ったら(iOSでは1回、Androidでは2回)、再表示することはできません。代わりに、requestPermission(fallbackToSettings: true) SDKメソッドか、アプリ内メッセージ上の Push Permission Prompt クリックアクションを使用します。どちらもアプリの通知設定を開き、ユーザーが手動で通知を有効にできるようにします。これを、通知が価値ある理由を説明するアプリ内メッセージと組み合わせて使用してください。
すべてのAndroidバージョンでシステム権限プロンプトが必要ですか?
いいえ。Android 13(APIレベル33)以降のみです。Android 13でランタイム通知権限が導入され、プッシュ通知にユーザーの明示的な同意が必要になりました。- リリース: 2022年8月(Pixelデバイス)。
- ターゲットSDKに必要: 2023年8月31日以降、Google Playのすべての新しいアプリとアップデートはAPIレベル33以上をターゲットにする必要があります。
- 出典: 通知権限に関するGoogleの開発者ガイド。
iOS仮プッシュ通知
iOS 12以降で事前の権限プロンプトなしに通知センターへ通知を送信します。
モバイルSDKリファレンス
requestPermission、optIn、権限オブザーバー、アプリ内クリックリスナーのAPI。ウェブプッシュ権限プロンプト
ソフトプロンプト、スライドダウン、ネイティブウェブプッシュ権限リクエストを設定します。
アプリ内メッセージのセットアップ
ソフトプロンプトを実行できるように、アプリでアプリ内メッセージを有効化します。