内部プッシュ通知の無視
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)
}
}