適切なプッシュ通知チャネルの種類を選択するChoosing the right push notification channel type

この記事では、アプリのコンテンツの提供に役立つ、3 つの種類の UWP プッシュ通知 (プライマリ、セカンダリ、および代替) について説明します。This article covers the three types of UWP push notification channels (primary, secondary, and alternate) that help you deliver content to your app.

(プッシュ通知を作成する方法の詳細については、次を参照してください、 Windows プッシュ通知サービス (WNS) の概要。)。(For details on how to create push notifications, see the Windows Push Notification Services (WNS) overview.)

プッシュ チャネルの種類Types of push channels

UWP アプリに通知を送信するために使用される、3 種類のプッシュ チャネルがあります。There are three types of push channels that can be used to send notifications to a UWP app. それらは以下のとおりです。They are:

プライマリ チャネル - "従来型" のプッシュ チャネルです。Primary channel - the "traditional" push channel. すべてのアプリ ストアに送信トースト、タイル、raw、または配置されたバッジ通知で使用できます。Can be used by any app in the store to send toast, tile, raw, or badge notifications. こちらをご覧くださいLearn more here.

セカンダリ タイル チャネル- セカンダリ タイルにタイルの更新をプッシュするために使用します。Secondary tile channel - used to push tile updates to a secondary tile. ユーザーのスタート画面にピン留めされているセカンダリ タイルに、タイルやバッジ通知を送信するためのみに使用できます。Can only be used to send tile or badge notifications to a secondary tile pinned on the user's start screen

代替チャネル - Creators Update で追加された新しい種類のチャネルです。Alternate channel - A new type of channel added in the Creators Update. ストアに登録されていないアプリを含め、任意の UWP アプリに直接通知を送信できます。It allows for raw notifications to be sent to any UWP app, including those which aren't registered in the Store.

注意

どのプッシュ チャネルを使用する場合でも、アプリがデバイスで実行されると、ローカルのトースト、タイル、バッジ通知をいつでも送信することができます。No matter which push channel you use, once your app is running on the device, it will always be able to send local toast, tile, or badge notifications. アプリは、フォア グラウンド アプリ プロセスまたはバックグラウンド タスクから、ローカル通知を送信できます。It can send local notifications from the foreground app processes or from a background task.

プライマリ チャネルPrimary channels

これは、Windows で現在、最も一般的に使用されているチャネルです。Microsoft Store を通じて配布されるアプリのほとんどのシナリオに適しています。These are the most commonly used channels on Windows right now, and are good for almost any scenario where your app is going to be distributed through the Microsoft Store. アプリにすべての種類の通知を送信できます。They allow you to send all types of notifications to the app.

プライマリ チャネルで可能なことWhat do primary channels enable?

  • タイルやバッジの更新プログラムをプライマリ タイルに送信します。Sending tile or badge updates to the primary tile. ユーザーがスタート画面にタイルをピン留めした場合、プライマリ チャネルの効果を発揮できます。If the user has chosen to pin your tile to the start screen, this is your chance to show off. アプリ内で、役に立つ情報の更新やエクスペリエンスのリマインダーを送信できます。Send updates with useful information or reminders of experiences within your app.
  • トースト通知を送信します。Sending toast notifications. トースト通知を使うと、ユーザーの前に直ちに情報を提供できます。Toast notifications are a chance to get some information in front of the user immediately. シェルによりほとんどのアプリの一番上に描画され、さらにアクション センターに残るため、ユーザーは後から参照して操作することができます。They are painted by the shell over top of most apps, and live in the action center so the user can go back and interact with them later.
  • バック グラウンド タスクをトリガーする生の通知を送信します。Sending raw notifications to trigger a background task. 通知に基づいて、ユーザーに代わって作業を行うことができます。Sometimes you want to do some work on behalf of the user based on a notification. 直接通知を使うと、アプリのバックグラウンド タスクを実行できます。Raw notifications allow your app's background tasks to run
  • TLS を使用して Windows で提供される転送中のメッセージの暗号化。Message encryption in transit provided by Windows using TLS. ネットワーク上のメッセージは、WNS の受信メッセージとデバイスへの送信メッセージの両方が暗号化されます。Messages are encrypted on the wire both coming into WNS and going to the user's device.

プライマリ チャネルの制限事項Limitations of primary channels

  • デバイス ベンダー間で標準ではないプッシュ通知には、WNS REST API を使用する必要があります。Requires using the WNS REST API to push notifications, which isn't standard across device vendors.
  • アプリごとに 1 つだけのチャネルを作成することができます。Only one channel can be created per app
  • アプリを Microsoft Store に登録する必要があります。Requires your app to be registered in the Microsoft Store

プライマリ チャネルを作成するCreating a primary channel

PushNotificationChannel channel = 
    await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

セカンダリ タイル チャネルSecondary tile channels

セカンダリ タイルへタイルとバッジの更新をプッシュするために使用できるチャネルです。These are channels that can be used to push tile and badge updates to a secondary tile. アプリが使用して、ユーザーに関心のあるアクションを通知したり、アプリで操作できる情報を通知したりできます。たとえば、グループ チャットの新しいメッセージや試合のスコアの最新情報などです。These are used by apps to notify users of interesting actions or information that they can interact with in the app, such as new messages in a group chat or an updated sports score.

セカンダリ タイル チャネルで可能なことWhat do secondary tile channels enable?

  • セカンダリ タイルにタイル通知またはバッジ通知を送信します。Sending tile or badge notifications to secondary tiles. セカンダリ タイルは、ユーザーがアプリを繰り返して使うための優れた方法です。Secondary tiles are a great way to pull users back into your app. セカンダリ タイルは、ユーザーが関心を持つ情報へのディープ リンクです。タイルにユーザーが関心を持つ情報を表示することにより、アプリを繰り返して使用するようにできます。They are a deep link to information they care about, and putting relevant information on the tiles helps to bring them back again and again.
  • さまざまなタイル間のチャネルを分離 (期限切れに) します。Separation of channels (and expiries) between various tiles. これにより、ユーザーによってスタート画面にピン留めされた、さまざまな種類のセカンダリ タイルの間で、バックエンドのロジックを分離することができます。This allows you to separate the logic in the backend between the various types of secondary tiles that a user might pin to their start screen.
  • Windows は TLS を使用して、転送中のメッセージを暗号化します。Message encryption in transit provided by Windows using TLS. ネットワーク上のメッセージは、WNS の受信メッセージとデバイスへの送信メッセージの両方が暗号化されます。Messages are encrypted on the wire both coming into WNS and going to the user's device.

セカンダリ タイルのチャネルの制限事項Limitations of secondary tile channels

  • トースト通知または直接通知はできません。No toast or raw notifications allowed. セカンダリ タイルに送信されるトースト通知または直接通知は、システムによって無視されます。Toast or raw notifications sent to a secondary tile are ignored by the system.
  • アプリを Microsoft Store に登録する必要があります。Requires your app to be registered in the Microsoft Store

セカンダリ タイルのチャネルを作成するCreating a secondary tile channel

PushNotificationChannel channel = 
    await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

代替チャネルAlternate channels

代替チャネルを使うと、アプリは、Microsoft Store へ登録したりアプリに作成されたプライマリ チャネル以外にプッシュ チャネルを作成したりすることなく、プッシュ通知を送信できます。Alternate channels enable apps to send push notifications without registering to the Microsoft Store or creating push channels outside of the primary one used for the app.

代替チャネルで可能なことWhat do alternate channels enable?

  • 任意の Windows デバイスで実行されている UWP への直接プッシュ通知を送信します。Send raw push notifications to a UWP running on any Windows device. 代替のチャネルは、生の通知が (ただし依然ウェイク アップできるローカル トーストを表示するか、タイル通知をバック グラウンド タスク) にのみ許可します。Alternate channels only allow for raw notifications (however you can still wake up a background task to locally show toast or tile notifications).
  • アプリは、アプリ内でのさまざまな機能のために、複数の直接プッシュ チャネルを作成できます。Allows apps to create multiple raw push channels for different features within the app. アプリは、最大 1000 の代替チャネルを作成できます。各チャネルは 30 日間有効です。An app can create up to 1000 alternate channels, and each one is valid for 30 days. アプリは各チャネルを個別に管理したり、取り消したりすることができます。Each of these channels can be managed or revoked separately by the app.
  • 代替プッシュ チャネルは、アプリを Microsoft Store に登録することなく、作成できます。Alternate push channels can be created without registering an app with the Microsoft Store. アプリを Microsoft Store に登録することなく、デバイスにインストールする場合でも、プッシュ通知を受信することができます。If you app is going to be installed on devices without registering it in the Microsoft Store, it will still be able to receive push notifications.
  • サーバーは、W3C 標準の REST API および VAPID プロトコルを使用して、通知をプッシュできます。Servers can push notifications using the W3C standard REST APIs and VAPID protocol. 代替チャネルは、W3C 標準プロトコルを使用します。これにより、保守が必要なサーバー ロジックを簡素化できます。Alternate channels use the W3C standard protocol, this allows you to simplify the server logic that needs to be maintained.
  • エンド ツー エンドでメッセージの完全な暗号化を行います。Full, end-to-end, message encryption. プライマリ チャネルは転送中の暗号化を提供しますが、より高いセキュリティを必要とする場合には、代替チャネルを使うと、アプリは暗号化ヘッダーをパス スルーしてメッセージを保護できます。While the primary channel provides encryption while in transit, if you want to be extra secure, alternate channels enable your app to pass through encryption headers to protect a message.

代替チャネルの制限事項Limitations of alternate channels

  • アプリのサーバーがプッシュを送信できないトースト、タイル、または種類の通知のバッジします。Your app's server cannot send push toast, tile, or badge type notifications. プッシュは、生の通知のみ送信できます。You can only send push raw notifications. アプリは、バックグラウンド タスクから、ローカル通知を送信することは可能です。Your app is still able to send local notifications from your background task.
  • プライマリ チャネルやセカンダリ タイルのチャネルとは異なる REST API が必要です。Requires a different REST API than either primary or secondary tile channels. 標準 W3C REST API を使用するため、アプリでは、トーストやタイルのプッシュ更新を送信するロジックとは異なるロジックを必要とします。Using the standard W3C REST API means that your app will need to have different logic for sending push toast or tile updates

代替チャネルを作成するCreating an alternate channel

PushNotificationChannel webChannel = 
    await PushNotificationChannelManager.GetDefault().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(applicationServerKey, appChannelId);

チャネルの種類の比較Channel type comparison

さまざまな種類のチャネルの比較表を次に示します。Here is a quick comparison between the different types of channels:

Type トーストをプッシュしますか。Push toast? タイルとバッジをプッシュしますか。Push tile/badge? 生の通知をプッシュしますか。Push raw notifications? [認証]Authentication APIAPI ストアの登録が必要ですか。Store registration required? チャネルChannels 暗号化Encryption
1 次式Primary Yes 〇 - プライマリ タイルのみYes - primary tile only Yes OAuthOAuth WNS REST APIWNS REST API Yes アプリごとに 1 つOne per app 転送中In Transit
セカンダリ タイルSecondary Tile XNo 〇 - セカンダリ タイルのみYes - secondary tile only XNo OAuthOAuth WNS REST APIWNS REST API Yes セカンダリ タイルごとに 1 つOne per secondary tile 転送中In Transit
代替Alternate XNo XNo Yes VAPIDVAPID WebPush W3C 標準WebPush W3C Standard XNo アプリあたり 1,0001,000 per app 転送中 + ヘッダー パススルーによりエンドツーエンドの暗号化が可能 (アプリ コードが必要)In transit + end to end encryption possible with header pass through (requires app code)

適切なチャンネルを選択するChoosing the right channel

一般に、いくつかの例外を除き、アプリではプライマリ チャネルを使用することをお勧めします。In general, we recommend using the primary channel in your app, with a few exceptions:

  1. セカンダリ タイルにタイルの更新をプッシュする場合は、セカンダリ タイルのプッシュ チャネルを使用します。If you are pushing a tile update to a secondary tile, use the secondary tile push channel.
  2. 他のサービス (ブラウザーの場合など) にチャネルを渡す場合には、代替チャンネルを使用します。If you are passing out channels to other services (such as in the case of a browser) use the alternate channel.
  3. Windows ストアに登録しないアプリ (LOB アプリなど) を作成する場合、代替チャネルを使用します。If you are creating an app that won't be listed in the Windows store (such as an LOB app) use an alternate channel.
  4. サーバーにある既存の Web プッシュ コードを再利用する場合や、バックエンド サービスで複数のチャネルの必要性がある場合には、代替チャネルを使用します。If you have existing web push code on your server you wish to reuse or have a need for multiple channels in your backend service, use alternate channels.