内部 プッシュ通知を無視する
Braze は、特定の高度な機能の内部インプリメンテーションにサイレントプッシュ通知を使用します。ほとんどの統合では、アプリに代わって変更を行う必要はありません。ただし、内部プッシュ通知に依存する Braze 機能 (アンインストール追跡やジオフェンスなど) を統合する場合は、Braze から内部プッシュ通知を無視するようにアプリを更新することが必要になる場合があります。
アプリで、アプリケーションの起動またはバックグラウンドプッシュで自動アクションが実行される場合は、内部プッシュ通知によってトリガーされないように、そのアクティビティをゲートすることを検討する必要があります。たとえば、すべてのバックグラウンドプッシュまたはアプリケーションの起動時に新しいコンテンツのためにサーバーを呼び出すロジックがある場合、不要なネットワークトラフィックが発生するため、Braze の内部プッシュトリガーを使用しないことがあります。さらに、Braze は特定の種類の内部プッシュをすべてのユーザーにほぼ同時に送信するため、起動時に内部プッシュからのネットワーク呼び出しをゲートしないと、サーバーに重大な負荷がかかる可能性があります。
アプリの自動アクションを確認する
次の場所でアプリケーションの自動アクションを確認し、Braze の内部プッシュを無視するようにコードを更新します。
- プッシュレシーバー。バックグラウンドプッシュ通知により、
UIApplicationDelegate
のapplication:didReceiveRemoteNotification:fetchCompletionHandler:
が呼び出されます。 - アプリケーションデリゲート。バックグラウンドプッシュにより、中断されたアプリがバックグラウンドで起動し、
UIApplicationDelegate
のapplication:willFinishLaunchingWithOptions:
およびapplication:didFinishLaunchingWithOptions:
メソッドがトリガーされます。これらのメソッドのlaunchOptions
をチェックして、アプリケーションがバックグラウンドプッシュから起動されたかどうかを判断できます。
内部プッシュユーティリティメソッドの使用
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)
}
}