結論から言うと
どちらもプロダクトの中で小さなメッセージを表示するため、2つのチャネルは似て見えます。しかし、リーチと同意という2つの線引きでは、正反対の側にあります。Webプッシュは、ユーザーがブラウザーの権限を許可したあと、サイトを離れてデバイスに届きます。アプリ内メッセージは利用中のセッションの中にとどまり、別途の権限は必要ありません。1つではなく、2つの別々のツールとして扱ってください。
Webプッシュの仕組み
Webプッシュは、ブラウザーの3つの要素の連携で成り立っています。サービスワーカー(ブラウザーがバックグラウンドで動かし続けるスクリプト)、Push API(ブラウザーをプッシュサービスに登録し、メッセージを受け取る)、Notifications API(システムの通知を表示する)です。ユーザーはブラウザーの権限プロンプトで「許可」を明示的にクリックする必要があり、クリックするまでは何も送れません。オプトインのあとは、購読のエンドポイントと暗号鍵が得られ、サーバーはタブが閉じていてもブラウザーのプッシュサービス経由で送信できます。メッセージがサイトの外に届くため、Webプッシュはこの中で再エンゲージメントを担うチャネルです。役割としては、アプリの中にあるものより、SMSやメールに近い存在です。注意点は、ブラウザーとOSの対応状況に左右されること、そしてユーザーがいつでも権限を取り消せることです。
iOSでの注意点
iPhoneとiPadでは、通常のSafariのタブでWebプッシュは機能しません。AppleがWebプッシュに対応したのは、Safari 16.4(2023年3月)以降、ユーザーがホーム画面に追加したWebアプリに限られます。権限のリクエストは、ページの読み込み時ではなく、「購読する」ボタンなどへの直接のタップに応じて表示しなければなりません。つまりiOSで届けられるのは、サイトをWebアプリとしてインストールし、そのうえで権限を許可したユーザーに限られます。デスクトップと同じだと考えず、この差を前提に計画してください。
アプリ内メッセージの仕組み
アプリ内メッセージは、利用中のセッションの中で表示されます。ユーザーがプロダクトを使っている間に表示されるバナー、モーダル、スライドアウト、ツールチップなどです。ユーザーはすでにプロダクトの中にいるため、別途のオプトインはありません。メッセージは体験の一部です。トレードオフはリーチです。アプリ内メッセージが届くのは、いまその場にいる人だけです。離れていったユーザーを呼び戻すことはできず、解約したユーザーの目に触れることもありません。
どちらをいつ使うか
| やりたいこと | 使うチャネル |
|---|---|
| 離れていったユーザーを呼び戻す | Webプッシュ(またはメール、SMS) |
| アクティブユーザーに新機能を告知する | アプリ内のバナーまたはモーダル |
| 初めてのユーザーをセットアップに案内する | アプリ内のツールチップまたはスライドアウト |
| サイトの外にいる人に、急ぎのイベントを知らせる | Webプッシュ |
| 作業の途中でアップグレードを促す | アプリ内のモーダル |
率直な役割分担はこうです。アプリ内メッセージはすでに部屋にいる人に対応し、Webプッシュは出ていった人を探しに行きます。ほとんどのプロダクトは両方を使い、カスタマージャーニーの中で連携させて、同じ人が同じ用件でアプリ内のメッセージとWebプッシュを数分以内に続けて受け取らないようにしています。どのメッセージをどのチャネルで、どの順番で、重複なく届けるかを決めることは、多くのチャネルを動かす段階から、それらを1つとして動かす段階への移行です。これはマルチチャネルとオムニチャネルの違いのテーマです。OneSignalやNovuのような単体のツールは、プッシュ通知などの通知配信に特化しています。エンゲージメントプラットフォームは、Webプッシュとアプリ内メッセージを、ほかのチャネルと同じジャーニーのロジックに組み込みます。