Skip to content

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

Braze は、特定の高度な機能の内部インプリメンテーションにサイレントプッシュ通知を使用します。ほとんどの統合では、アプリに代わって変更を行う必要はありません。ただし、内部プッシュ通知に依存する Braze 機能 (アンインストール追跡やジオフェンスなど) を統合する場合は、Braze から内部プッシュ通知を無視するようにアプリを更新することが必要になる場合があります。

アプリで、アプリケーションの起動またはバックグラウンドプッシュで自動アクションが実行される場合は、内部プッシュ通知によってトリガーされないように、そのアクティビティをゲートすることを検討する必要があります。たとえば、すべてのバックグラウンドプッシュまたはアプリケーションの起動時に新しいコンテンツのためにサーバーを呼び出すロジックがある場合、不要なネットワークトラフィックが発生するため、Braze の内部プッシュトリガーを使用しないことがあります。さらに、Braze は特定の種類の内部プッシュをすべてのユーザーにほぼ同時に送信するため、起動時に内部プッシュからのネットワーク呼び出しをゲートしないと、サーバーに重大な負荷がかかる可能性があります。

アプリの自動アクションを確認する

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

  1. プッシュレシーバー。バックグラウンドプッシュ通知により、UIApplicationDelegateapplication:didReceiveRemoteNotification:fetchCompletionHandler: が呼び出されます。
  2. アプリケーションデリゲート。バックグラウンドプッシュにより、中断されたアプリがバックグラウンドで起動し、UIApplicationDelegateapplication: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)
  }
}
「このページはどの程度役に立ちましたか?」
New Stuff!