サイレントプッシュ通知
Braze SDKのサイレントプッシュ通知の設定方法を学習する。
前提条件
この機能を使用する前に、Android Braze SDKを統合する必要があります。 You’ll also need to set up push notifications.
Setting up silent push notifications
Silent notifications are available through the Braze Messaging API. To take advantage of them, you need to set the send_to_sync
flag to true
within the Android push object and ensure there are no title
or alert
fields set as it will cause errors when used alongside send_to_sync
—however, you can include data extras
within the object.
前提条件
この機能を使用する前に、Swift Braze SDKを統合する必要があります。 プッシュ通知の設定も必要だ。
iOSの制限
iOS オペレーティングシステムは、一部の機能の通知をゲートする場合があります。これらの機能で問題が発生している場合は、iOS のサイレント通知ゲートが原因である可能性があることに注意してください。詳細については、アップルのインスタンスメソッドと 未受信通知のドキュメントを参照のこと。
サイレント・プッシュ通知を設定する
サイレント・プッシュ通知を使用してバックグラウンド作業をトリガーするには、アプリがバックグラウンドでも通知を受け取れるように設定する必要がある。これを行うには、Xcode で、[署名 & 機能] ペインを使ってメインアプリのターゲットにバックグラウンドモード機能を追加します。リモート通知チェックボックスを選択する。
リモート通知バックグラウンドモードが有効になっている場合でも、ユーザーがアプリケーションを強制終了した場合、システムはアプリをバックグラウンドで起動しません。システムによってアプリがバックグラウンドで自動的に起動される前に、ユーザーはアプリケーションを明示的に起動するか、デバイスを再起動する必要があります。
詳細については、[バックグラウンド更新のプッシュ] および application:didReceiveRemoteNotification:fetchCompletionHandler:
[ドキュメント] を参照してください。
サイレントプッシュ通知の送信
サイレントプッシュ通知を送信するには、プッシュ通知ペイロードで content-available
フラグを 1
に設定します。
Apple がリモート通知と呼ぶものは、content-available
フラグが設定された通常のプッシュ通知です。
content-available
フラグは、Braze ダッシュボードおよびメッセージング API の Apple プッシュオブジェクト内で設定できます。
タイトルと本文の両方を content-available=1
でアタッチすることは、未定義の動作につながる可能性があるため、推奨されません。通知が本当にサイレントであることを確認するには、content-available
フラグを 1.
に設定するときに、タイトルと本文の両方を除外します。詳細については、バックグラウンド更新に関するAppleの公式ドキュメントを参照してください。
サイレント プッシュ通知を送信する場合、アプリケーションがイベントを参照できるように、通知ペイロードにデータを含めることもできます。これにより、ネットワークリクエストがいくらか節約され、アプリの応答性が向上する可能性があります。
内部 プッシュ通知を無視する
Brazeは、サイレントプッシュ通知を使用して、アンインストール追跡やジオフェンスなどの特定の高度な機能を内部処理する。アプリの起動時やバックグラウンドプッシュ時に自動アクションを取る場合は、そのアクティビティが内部プッシュ通知によってトリガーされないようにゲーティングすることを検討する。
たとえば、バックグラウンドプッシュやアプリケーション起動のたびにサーバーに新しいコンテンツを要求するロジックがある場合、不必要なネットワークトラフィックを避けるために、Brazeの内部プッシュをトリガーしないようにしたい場合がある。Brazeは、ある種の内部プッシュを全ユーザーにほぼ同時に送信するため、内部プッシュからの起動時ネットワーク呼び出しがゲートされていない場合、サーバーに大きな読み込む負荷が発生する可能性がある。
ステップ1:アプリの自動アクションをチェックする
次の場所でアプリケーションの自動アクションを確認し、Braze の内部プッシュを無視するようにコードを更新します。
- プッシュレシーバー。バックグラウンドプッシュ通知により、
UIApplicationDelegate
のapplication:didReceiveRemoteNotification:fetchCompletionHandler:
が呼び出されます。 - アプリケーションデリゲート。バックグラウンドプッシュにより、中断されたアプリがバックグラウンドで起動し、
UIApplicationDelegate
のapplication: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)
}
}
1
2
3
4
5
- (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を統合する必要があります。 You’ll also need to set up push notifications.
Setting up silent push notifications
Silent notifications are available through the Braze Messaging API. To take advantage of them, you need to set the send_to_sync
flag to true
within the Android push object and ensure there are no title
or alert
fields set as it will cause errors when used alongside send_to_sync
—however, you can include data extras
within the object.