Skip to content

サイレントプッシュ通知

Braze SDKのサイレントプッシュ通知の設定方法を学習する。

前提条件

この機能を使用する前に、Android Braze SDKを統合する必要がある。 プッシュ通知の設定も必要だ。

サイレント・プッシュ通知を設定する

サイレント通知は BrazeMessaging API を通じて利用できます。サイレント通知を利用するには、Android プッシュオブジェクト内で send_to_sync フラグを true に設定します。また、title または alert フィールドを send_to_sync とともに使用するとエラーが発生するため、それらが設定されていないことを確認する必要があります。ただし、オブジェクト内にデータ extras を含めることはできます。

前提条件

この機能を使う前に、Swift Braze SDKを統合する必要がある。 プッシュ通知の設定も必要です。

iOSの制限

iOSオペレーティングシステムは、一部の機能の通知をゲートする場合があります。これらの機能で問題が発生している場合は、iOSのサイレント通知ゲートが原因である可能性があることに注意してください。詳細については、Appleのインスタンスメソッドおよび未受信通知のドキュメントを参照してください。

サイレント・プッシュ通知を設定する

サイレントプッシュ通知を使用してバックグラウンド作業をトリガーするには、アプリがバックグラウンドでも通知を受け取れるように設定する必要があります。これを行うには、Xcodeのメインアプリターゲットに、Signing & Capabilitiesペインを使用してBackground Modesケイパビリティを追加します。Remote notificationsチェックボックスを選択します。

Xcodeの「capabilities」の下に「remote notifications」モードのチェックボックスが表示されています。

リモート通知バックグラウンドモードが有効になっている場合でも、ユーザーがアプリケーションを強制終了した場合、システムはアプリをバックグラウンドで起動しません。システムによってアプリがバックグラウンドで自動的に起動される前に、ユーザーはアプリケーションを明示的に起動するか、デバイスを再起動する必要があります。

詳細については、バックグラウンド更新のプッシュおよび application:didReceiveRemoteNotification:fetchCompletionHandler:ドキュメントを参照してください。

サイレントプッシュ通知の送信

サイレントプッシュ通知を送信するには、プッシュ通知ペイロードで content-available フラグを 1 に設定します。

content-available フラグは、BrazeダッシュボードおよびメッセージングAPIAppleプッシュオブジェクト内で設定できます。

プッシュコンポーザーの「settings」タブにある「content-available」チェックボックスを表示するBrazeダッシュボード。

サイレントプッシュ通知を送信する際、アプリケーションがイベントを参照できるように、通知ペイロードにデータを含めることもできます。これにより、ネットワークリクエストを削減し、アプリの応答性を向上させることができます。

内部プッシュ通知を無視する

Brazeは、サイレントプッシュ通知を使用して、アンインストール追跡などの特定の高度な機能を内部的に処理します。アプリの起動時やバックグラウンドプッシュ時に自動アクションを実行する場合は、そのアクティビティが内部プッシュ通知によってトリガーされないようにゲーティングすることを検討してください。

たとえば、バックグラウンドプッシュやアプリケーション起動のたびにサーバーに新しいコンテンツを要求するロジックがある場合、不必要なネットワークトラフィックを避けるために、Brazeの内部プッシュがトリガーされないようにすることをお勧めします。Brazeは、ある種の内部プッシュを全ユーザーにほぼ同時に送信するため、内部プッシュからの起動時ネットワーク呼び出しがゲートされていない場合、サーバーに大きな負荷が発生する可能性があります。

ステップ 1:アプリの自動アクションを確認する

次の場所でアプリケーションの自動アクションを確認し、Brazeの内部プッシュを無視するようにコードを更新します。

  1. プッシュレシーバー。バックグラウンドプッシュ通知により、UIApplicationDelegateapplication:didReceiveRemoteNotification:fetchCompletionHandler: が呼び出されます。
  2. アプリケーションデリゲート。バックグラウンドプッシュにより、中断されたアプリがバックグラウンドで起動し、UIApplicationDelegateapplication:willFinishLaunchingWithOptions: および application:didFinishLaunchingWithOptions: メソッドがトリガーされます。これらのメソッドの launchOptions をチェックして、アプリケーションがバックグラウンドプッシュから起動されたかどうかを判断できます。

ステップ 2:内部プッシュユーティリティメソッドを使用する

Braze.Notificationsの静的ユーティリティメソッドを使用して、アプリがBrazeの内部プッシュを受信したか、または内部プッシュによって起動されたかを確認できます。Braze.Notifications.isInternalNotification(_:)は、すべてのBraze内部プッシュ通知で true を返します。これには、アンインストール追跡およびフィーチャーフラグ同期通知が含まれます。

以下に例を示します。

1
2
3
4
5
6
7
func application(_ application: UIApplication,
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
  if (!Braze.Notifications.isInternalNotification(userInfo)) {
    // Gated logic here (for example pinging server for content)
  }
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
  if (![BRZNotifications isInternalNotification:userInfo]) {
    // Gated logic here (for example pinging server for content)
  }
}

前提条件

この機能を使用する前に、Android Braze SDKを統合する必要がある。 プッシュ通知の設定も必要だ。

サイレント・プッシュ通知を設定する

サイレント通知は BrazeMessaging API を通じて利用できます。サイレント通知を利用するには、Android プッシュオブジェクト内で send_to_sync フラグを true に設定します。また、title または alert フィールドを send_to_sync とともに使用するとエラーが発生するため、それらが設定されていないことを確認する必要があります。ただし、オブジェクト内にデータ extras を含めることはできます。

New Stuff!