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

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

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

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

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

プライマリ チャネル - "従来型" のプッシュ チャネルです。Primary channel - the "traditional" push channel. は、ストア内のどのアプリでも、トースト、タイル、未加工、バッジ通知を送信するために使用できます。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. これにより、ストアに登録されていないものも含め、任意の Windows アプリに生の通知を送信できます。It allows for raw notifications to be sent to any Windows 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
  • 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 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 デバイスで実行されている Windows に生のプッシュ通知を送信します。Send raw push notifications to a Windows 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:

TypeType トーストをプッシュするPush toast? タイルバッジをプッシュするPush tile/badge? 直接通知をプッシュするPush raw notifications? 認証Authentication APIAPI ストアへの登録の必要性Store registration required? ChannelsChannels 暗号化Encryption
プライマリPrimary はいYes 〇 - プライマリ タイルのみYes - primary tile only はいYes OAuthOAuth WNS REST APIWNS REST API はいYes アプリごとに 1 つOne per app 転送中In Transit
セカンダリ タイルSecondary Tile いいえNo 〇 - セカンダリ タイルのみYes - secondary tile only いいえNo OAuthOAuth WNS REST APIWNS REST API はいYes セカンダリ タイルごとに 1 つOne per secondary tile 転送中In Transit
代替Alternate いいえNo いいえNo はいYes VAPIDVAPID WebPush W3C 標準WebPush W3C Standard いいえNo アプリあたり 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.