Skip to content

データ収集を管理する

Braze SDKのデータ収集を管理する方法について説明します。必要に応じてデータプライバシー規制に準拠できます。

データトラッキングを無効にする

Web SDKのデータトラッキングアクティビティを無効にするには、メソッドdisableSDK()を使用します。これにより、disableSDK()が呼び出される前にログされたデータが同期され、このページおよび今後のページ読み込みにおけるBraze Web SDKへの後続のすべての呼び出しが無視されます。

Webトラッキングを無効にしたり再度有効にしたりするには、それぞれDisable TrackingまたはResume Trackingタグタイプを使用します。これらの2つのオプションは、disableSDKenableSDKを呼び出します。

ベストプラクティス

ユーザーにトラッキングを停止するオプションを提供するには、2つのリンクまたはボタンを含むシンプルなページを構築することをお勧めします。1つはクリック時にdisableSDK()を呼び出し、もう1つはenableSDK()を呼び出してユーザーが再度オプトインできるようにします。これらのコントロールを使用して、他のデータサブプロセッサーを介したトラッキングの開始や停止も行えます。

データトラッキングを再開する

データ収集を再開するには、enableSDK() メソッドを使用します。

ログアウトとプッシュ登録解除

Braze SDKは、ユーザーがプッシュ通知の登録を解除したりログアウトしたりする際に、デバイスへのターゲティングを停止するためのメソッドを提供しています。これらのメソッドは、BrazeサーバーおよびSDKから現在のユーザーのプッシュ登録データを削除するため、Brazeはそのユーザーに今後のプッシュ通知キャンペーンを送信しなくなります。

ログアウト

ユーザーがアプリケーションからログアウトする際に、SDKのlogoutメソッドを呼び出して、現在のユーザーからデバイスのプッシュ登録を削除し、SDK上のクリーンアップアクションを自動的に実行します。logoutメソッドは以下を実行します。

  • Brazeサーバー上の現在のユーザーからデバイスのプッシュトークンの登録を解除します。
  • 登録解除の呼び出しが成功した場合、SDKはローカルに保存されたSDKデータを消去し、SDKを無効化します。
  • 失敗した場合、errorCallbackを呼び出して、インテグレーターがアクションを実行できるようにします。

以下の例は、コールバックベースのlogout処理を示しています。即時の成功およびエラー処理が必要な場合に使用し、ログ出力をアプリのフローに置き換えてください。

1
2
3
4
5
6
7
8
9
10
11
import { logout } from "@braze/web-sdk";

const successCallback = () => {
  console.log('Successfully logged out');
};

const errorCallback = () => {
  console.log('Failed to log out');
};

logout(successCallback, errorCallback);

logout後にトラッキングとプッシュを再有効化する

logoutが成功した後、enableSDK()を呼び出し、次にWebプッシュの設定に従って、オペレーティングシステム(OS)またはプッシュプロバイダーで通知を再登録します。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

プッシュ登録解除

追加の自動クリーンアップなしにデバイスへのプッシュ送信を停止するには、unregisterPushメソッドを使用します。これにより、Brazeサーバー上の現在のユーザーからデバイスのプッシュトークンが削除され、ローカルに保存されたトークンがクリアされます。

以下の例は、コールバックベースのunregisterPush処理を示しています。即時の成功およびエラー処理が必要な場合に使用し、ログ出力をアプリのフローに置き換えてください。

1
2
3
4
5
6
7
8
9
10
11
import { unregisterPush } from "@braze/web-sdk";

const successCallback = () => {
  console.log('Successfully unregistered from push');
};

const errorCallback = () => {
  console.log('Failed to unregister from push');
};

unregisterPush(successCallback, errorCallback);

unregisterPush後にプッシュを再登録する

unregisterPushを呼び出した後、Brazeプッシュ通知を再度送信する前に、Webプッシュの設定に従って、OSまたはプッシュプロバイダーで通知を再登録してください。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

Google Playプライバシーアンケート

2022年4月から、Android開発者はGoogle Playのデータ安全フォームに記入し、プライバシーとセキュリティの慣行を開示する必要があります。このガイドでは、Brazeによるアプリデータの処理方法に関する情報をこの新しいフォームに記入する方法について説明します。

アプリ開発者は、どのデータをBrazeに送信するかを制御しています。Brazeが受け取ったデータは、指示に従って処理されます。これは、Googleがサービスプロバイダーとして分類したものです。

質問

質問 Braze SDKの回答
お使いのアプリは、必要なユーザーデータの種類を収集または共有しますか? はい、Braze Android SDKはアプリ開発者によって設定されたデータを収集します。
あなたのアプリが収集するすべてのユーザーデータは転送中に暗号化されていますか? はい。
ユーザーがデータの削除を要求する方法を提供していますか? はい。

データおよび削除に対するユーザーリクエストの処理の詳細については、Brazeデータリテンション情報を参照してください。

データ収集

Brazeによって収集されるデータは、特定の統合と収集するユーザーデータによって決まります。デフォルトで収集されるデータの詳細、および特定の属性を無効にする方法については、SDKデータ収集オプションを参照してください。

カテゴリー データタイプ Brazeの使用状況
ロケーション おおよその位置情報 デフォルトでは収集されません。
正確な位置情報
個人情報 名前
メールアドレス
ユーザー ID
住所
電話番号
人種と民族
政治的または宗教的信条
性的指向
その他の情報
財務情報 ユーザー決済情報
購入履歴
クレジットスコア
その他の財務情報
ヘルスとフィットネス ヘルス情報 デフォルトでは収集されません。
フィットネス情報
メッセージ メール デフォルトでは収集されません。
SMSまたはMMS
その他のアプリ内メッセージ Brazeを通じてアプリ内メッセージやプッシュ通知を送信する場合、ユーザーがこれらのメッセージをいつ開封したか、またはいつ読んだかに関する情報を収集します。
写真と動画 写真 収集されません。
動画
オーディオファイル 音声やサウンドの録音
音楽ファイル
その他のオーディオファイル
ファイルとドキュメント ファイルとドキュメント
カレンダー カレンダーイベント
連絡先 連絡先
アプリアクティビティ アプリのインタラクション Brazeは、デフォルトでセッションアクティビティデータを収集します。その他すべてのインタラクションとアクティビティは、アプリのカスタム統合によって決定されます。
アプリ内検索履歴 収集されません。
インストール済みアプリ 収集されません。
その他のユーザー生成コンテンツ デフォルトでは収集されません。
その他のアクション
Webブラウジング Web閲覧履歴 収集されません。
アプリの情報とパフォーマンス クラッシュログ Brazeは、SDK内で発生したエラーのクラッシュログを収集します。これには、ユーザーの電話機モデルとOSレベル、およびBraze固有のユーザーIDが含まれます。
診断 収集されません。
その他のアプリパフォーマンスデータ 収集されません。
デバイスまたはその他のID デバイスまたはその他のID Brazeは、ユーザーのデバイスを区別するためにデバイスIDを生成し、メッセージが意図した正しいデバイスに送信されるかどうかをチェックします。

Google Playのデータセーフティガイドラインの対象外となる可能性がある、Brazeが収集するその他のデバイスデータの詳細については、Androidストレージの概要およびSDKデータ収集オプションを参照してください。

データトラッキングを無効にする

Android SDKのデータトラッキングアクティビティを無効にするには、メソッドdisableSDK()を使用します。これにより、すべてのネットワーク接続がキャンセルされ、Braze SDKはBrazeサーバーへのデータ送信を停止します。

以前に保存されたデータを消去する

デバイスに保存されているすべてのクライアント側データを完全に消去するには、メソッドwipeData()を使用します。

データトラッキングを再開する

データ収集を再開するには、enableSDK()メソッドを使用します。なお、以前に消去されたデータは復元されません。

ログアウトとプッシュ登録解除

Braze SDKは、ユーザーがプッシュ通知の登録を解除したりログアウトしたりする際に、デバイスへのターゲティングを停止するためのメソッドを提供しています。これらのメソッドは、BrazeサーバーおよびSDKから現在のユーザーのプッシュ登録データを削除するため、Brazeはそのユーザーに今後のプッシュ通知キャンペーンを送信しなくなります。

ログアウト

ユーザーがアプリケーションからログアウトする際に、SDKのlogoutメソッドを呼び出して、現在のユーザーからデバイスのプッシュ登録を削除し、SDK上のクリーンアップアクションを自動的に実行します。logoutメソッドは以下を実行します。

  • Brazeサーバー上の現在のユーザーからデバイスのプッシュトークンの登録を解除します。
  • 登録解除の呼び出しが成功した場合、SDKはローカルに保存されたSDKデータを消去し、SDKを無効化します。
  • 失敗した場合、エラーとisRetriableフラグを発生させ、インテグレーターがアクションを実行できるようにします。

以下のコールバックの例は、logoutの成功とエラーのハンドリングを示しています。コールバックベースのログアウトフローに使用し、ログ出力をリトライまたは再認証ロジックに置き換えてください。

1
2
3
4
5
6
7
8
9
10
11
// Completion callback
Braze.getInstance(context).logout { result ->
  result
    .onSuccess {
      Log.d(TAG, "Logout successful")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(TAG, "Logout failed: ${error.message}, isRetriable: ${pushError?.isRetriable}")
    }
}

以下のコルーチンの例は、サスペンド関数のlogout APIを示しています。コルーチンベースのフローで使用し、アプリに合わせて成功と失敗のブランチをカスタマイズしてください。

1
2
3
4
5
6
7
8
9
10
lifecycleScope.launch {
  runCatching { Braze.getInstance(context).logout() }
    .onSuccess {
      Log.d(TAG, "Logout successful")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(TAG, "Logout failed: ${error.message}, isRetriable: ${pushError?.isRetriable}")
    }
}

logout後にトラッキングとプッシュを再有効化する

logoutが成功した後、enableSDK()でSDKを再有効化し、Androidプッシュ設定に従ってオペレーティングシステム(OS)またはプッシュプロバイダーで通知を再登録してください。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

プッシュ登録解除

追加の自動クリーンアップなしにデバイスへのプッシュ送信を停止するには、unregisterPushメソッドを使用します。これにより、Brazeサーバー上の現在のユーザーからデバイスのプッシュトークンが削除され、ローカルに保存されたトークンがクリアされます。

以下のコールバックの例は、unregisterPushの結果をハンドリングする方法を示しています。コールバックベースのフローで使用し、ログ出力を独自のリトライハンドリングに置き換えてください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Completion callback
Braze.getInstance(context).unregisterPush { result ->
  result
    .onSuccess {
      Log.d(TAG, "Push unregistered successfully")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(
        TAG,
        "Push unregistration failed: ${error.message}, isRetriable: ${pushError?.isRetriable}"
      )
    }
}

以下のコルーチンの例は、サスペンド関数のunregisterPush APIを示しています。コルーチンベースのフローで使用し、アプリに合わせて成功と失敗のブランチをカスタマイズしてください。

1
2
3
4
5
6
7
8
9
10
11
12
13
lifecycleScope.launch {
  runCatching { Braze.getInstance(context).unregisterPush() }
    .onSuccess {
      Log.d(TAG, "Push unregistered successfully")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(
        TAG,
        "Push unregistration failed: ${error.message}, isRetriable: ${pushError?.isRetriable}"
      )
    }
}

unregisterPush後にプッシュを再登録する

unregisterPushを呼び出した後、Brazeプッシュ通知を再度送信する前に、Androidプッシュ設定に従ってOSまたはプッシュプロバイダーで通知を再登録してください。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

Appleのプライバシーマニフェスト

トラッキングデータとは?

Appleは「トラッキングデータ」を、アプリ内でエンドユーザーやデバイスについて収集され、サードパーティのデータ(ターゲット広告など)やデータブローカーにリンクされたデータと定義しています。完全な定義と例については、Apple: Trackingを参照してください。

デフォルトでは、Braze SDKはトラッキングデータを収集しません。ただし、Braze SDKの設定によっては、アプリのプライバシーマニフェストにBraze固有のデータを記載する必要がある場合があります。

プライバシーマニフェストとは?

プライバシーマニフェストは、アプリとサードパーティSDKがデータを収集する理由と、そのデータ収集方法を説明するXcodeプロジェクト内のファイルです。データをトラッキングするサードパーティSDKには、それぞれ独自のプライバシーマニフェストが必要です。アプリのプライバシーレポートを作成すると、これらのプライバシーマニフェストファイルは自動的に1つのレポートに集約されます。

APIトラッキングデータドメイン

iOS 17.2以降、AppleはエンドユーザーがAd Tracking Transparency (ATT) プロンプトを受け入れるまで、アプリ内で宣言されたすべてのトラッキングエンドポイントをブロックします。Brazeはトラッキングデータをルーティングするためのトラッキングエンドポイントを提供しており、トラッキング以外のファーストパーティデータは元のエンドポイントにルーティングすることもできます。

Brazeトラッキングデータの宣言

前提条件

この機能を実装するには、以下のBraze SDKバージョンが必要です。

ステップ1:現在のポリシーを確認する

Braze SDKの現在のデータ収集ポリシーを法務チームと一緒に確認し、アプリがAppleの定義するトラッキングデータを収集しているかどうかを判断します。トラッキングデータを収集していない場合、現時点ではBraze SDKのプライバシーマニフェストをカスタマイズする必要はありません。Braze SDKのデータ収集ポリシーの詳細については、SDKデータ収集を参照してください。

ステップ2:プライバシーマニフェストを作成する

まず、XcodeプロジェクトでPrivacyInfo.xcprivacyファイルを検索して、プライバシーマニフェストが既に存在するかどうかを確認します。このファイルが既にある場合は、次のステップに進むことができます。ない場合は、Apple: プライバシーマニフェストの作成を参照してください。

ステップ3:プライバシーマニフェストにエンドポイントを追加する

Xcodeプロジェクトで、アプリのPrivacyInfo.xcprivacyファイルを開き、テーブルを右クリックしてRaw Keys and Valuesにチェックを入れます。

コンテキストメニューが開かれ「Raw Keys and Values」がハイライトされたXcodeプロジェクト。

App Privacy Configurationで、NSPrivacyTrackingを選択し、その値をYESに設定します。

「NSPrivacyTracking」が「YES」に設定された「PrivacyInfo.xcprivacy」ファイル。

App Privacy Configurationで、NSPrivacyTrackingDomainsを選択します。ドメイン配列に新しい要素を追加し、以前にAppDelegateに追加したエンドポイントの先頭にsdk-trackingを付けた値を設定します。

「NSPrivacyTrackingDomains」の下にBrazeトラッキングエンドポイントが表示された「PrivacyInfo.xcprivacy」ファイル。

ステップ4:トラッキングデータを宣言する

次に、AppDelegate.swiftを開き、静的または動的なトラッキングリストを作成して、宣言する各トラッキングプロパティをリストします。AppleはエンドユーザーがそのユーザーのATTプロンプトを承認するまでこれらのプロパティをブロックするため、あなたと法務チームがトラッキングと見なすプロパティのみをリストしてください。例:

以下の例では、dateOfBirthcustomEventcustomAttributeが静的リスト内でトラッキングデータとして宣言されています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import UIKit
import BrazeKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

  static var braze: Braze? = nil

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    let configuration = Braze.Configuration(apiKey: brazeApiKey, endpoint: brazeEndpoint)
    // Declare which types of data you wish to collect for user tracking.
    configuration.api.trackingPropertyAllowList = [
      .dateOfBirth,
      .customEvent(["event-1"]),
      .customAttribute(["attribute-1", "attribute-2"])
    ]
    let braze = Braze(configuration: configuration)
    AppDelegate.braze = braze
    return true
  }
}

以下の例では、エンドユーザーがApp Tracking Transparency(ATT)プロンプトを承認した後、トラッキングリストが自動的に更新されます。アプリのアクティベーション時に認可をリクエストすることはシーンごとのイベントであるため、このコードはAppDelegate.swiftapplicationDidBecomeActive(_:)ではなく、SceneDelegate.swiftファイルのsceneDidBecomeActive(_:)メソッドに配置する必要があります(UISceneライフサイクルを採用したアプリの場合に必要です)。Brazeインスタンスは、ステップ1で設定したAppDelegate.braze静的プロパティを通じてSceneDelegateからアクセスできます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func sceneDidBecomeActive(_ scene: UIScene) {
  // Request and check your user's tracking authorization status.
  ATTrackingManager.requestTrackingAuthorization { status in
    // Let Braze know whether user data is allowed to be collected for tracking.
    let enableAdTracking = status == .authorized
    AppDelegate.braze?.set(adTrackingEnabled: enableAdTracking)

    // Add the `.firstName` and `.lastName` properties, while removing the `.everything` configuration.
    AppDelegate.braze?.updateTrackingAllowList(
      adding: [.firstName, .lastName],
      removing: [.everything]
    )
  }
}

ステップ5:無限リトライループを防止する

SDKが無限リトライループに入るのを防ぐには、set(adTrackingEnabled: enableAdTracking)メソッドを使用してATT権限を処理します。SceneDelegate.swiftメソッドのadTrackingEnabledプロパティは、以下のように処理する必要があります。

1
2
3
4
5
6
7
8
func sceneDidBecomeActive(_ scene: UIScene) {
    // Request and check your user's tracking authorization status.
    ATTrackingManager.requestTrackingAuthorization { status in
      // Let Braze know whether user data is allowed to be collected for tracking.
      let enableAdTracking = status == .authorized
      AppDelegate.braze?.set(adTrackingEnabled: enableAdTracking)
    }
}

データトラッキングを無効にする

Swift SDKのデータトラッキングアクティビティを無効にするには、Brazeインスタンスのenabledプロパティをfalseに設定します。enabledfalseに設定されている場合、Braze SDKはパブリックAPIへのすべての呼び出しを無視します。また、SDKはネットワークリクエストやイベント処理など、進行中のすべてのアクションもキャンセルします。

以前に保存されたデータを消去する

wipeData()メソッドを使用して、ユーザーのデバイスにローカル保存されたSDKデータを完全に消去できます。

Braze Swiftバージョン7.0.0以降では、SDKとwipeData()メソッドはデバイスIDとしてランダムなUUIDを生成します。ただし、useUUIDAsDeviceIdfalseに設定されている場合、または Swift SDKバージョン5.7.0以前を使用している場合は、Identifier for Vendors(IDFV)がそのユーザーのデバイスIDとして自動的に使用されるため、/users/deleteへのポストリクエストも行う必要があります。

手動プッシュ連携を使用していて、アプリがwipeData()を呼び出した後、同じアプリ実行中にSDKを再度有効にする場合は、Brazeが更新されたデバイストークンを受信できるようにregisterForRemoteNotifications()を再度呼び出してください。詳細については、プッシュ通知の設定を参照してください。

データトラッキングを再開する

データ収集を再開するには、enabledtrueに設定します。以前に消去されたデータは復元されないことに注意してください。

ログアウトとプッシュ登録解除

Braze SDKは、ユーザーがプッシュ通知の登録を解除したりログアウトしたりする際に、デバイスへのターゲティングを停止するためのメソッドを提供しています。これらのメソッドは、BrazeサーバーおよびSDKから現在のユーザーのプッシュ登録データを削除するため、Brazeはそのユーザーに今後のプッシュ通知キャンペーンを送信しなくなります。

ログアウト

ユーザーがアプリケーションからログアウトする際に、SDKのlogoutメソッドを呼び出して、現在のユーザーからデバイスのプッシュ登録を削除し、SDK上のクリーンアップアクションを自動的に実行します。logoutメソッドは以下を実行します。

  • Brazeサーバー上の現在のユーザーから、デバイスのプッシュトークンおよびすべてのLive Activitiesのpush-to-startトークンの登録を解除します。
  • 登録解除の呼び出しが成功した場合、SDKはローカルに保存されたSDKデータを消去し、SDKを無効にします。
  • 失敗した場合、エラーとisRetriableフラグを発生させ、インテグレーターがアクションを取れるようにします。

以下のcompletion handlerの例は、logoutの成功と失敗の処理を示しています。コールバックベースのフローに使用し、ログ出力をアプリのリトライまたは再認証ロジックに置き換えてください。

1
2
3
4
5
6
7
8
9
// Completion handler
AppDelegate.braze?.logout { result in
  switch result {
  case .success:
    print("Logout successful")
  case .failure(let error):
    print("Logout failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

以下のasyncの例は、サスペンド可能なlogout APIを示しています。非同期ワークフローに使用し、成功と失敗のブランチをアプリに合わせてカスタマイズしてください。

1
2
3
4
5
6
7
// Async/await
do {
  try await AppDelegate.braze?.logout()
  print("Logout successful")
} catch let error as Braze.LogoutErrorResult {
  print("Logout failed: \(error.message), isRetriable: \(error.isRetriable)")
}

このOBJECTIVE-Cの例は、completionベースのlogout処理を示しています。OBJECTIVE-Cインテグレーションで使用し、ログ出力をアプリのフローに置き換えてください。

1
2
3
4
5
6
[AppDelegate.braze logoutWithCompletion:^(NSError * _Nullable error) {
  if (error) {
    NSNumber *isRetriable = error.userInfo[BRZLogoutErrorUserInfoKey.isRetriable];
    NSLog(@"Logout failed: %@, isRetriable=%@", error.localizedDescription, isRetriable);
  }
}];

logout後にトラッキングとプッシュを再有効化する

logoutが成功した後、enabledtrueに戻し、Swiftプッシュ設定に従ってオペレーティングシステム(OS)またはプッシュプロバイダーで通知を再登録してください。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

プッシュ登録解除

追加の自動クリーンアップなしにデバイスへのプッシュ送信を停止するには、unregisterPushメソッドを使用します。これにより、Brazeサーバー上の現在のユーザーからデバイスのプッシュトークンが削除され、ローカルに保存されたトークンがクリアされます。

以下のcompletion handlerの例は、unregisterPushの成功と失敗の処理を示しています。コールバックベースのフローに使用し、ログ出力を独自のリトライロジックに置き換えてください。

1
2
3
4
5
6
7
8
9
// Completion handler
AppDelegate.braze?.notifications.unregisterPush { result in
  switch result {
  case .success:
    print("Push unregistered successfully")
  case .failure(let error):
    print("Push unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

以下のasyncの例は、サスペンド可能なunregisterPush APIを示しています。非同期ワークフローに使用し、成功と失敗のブランチをアプリに合わせてカスタマイズしてください。

1
2
3
4
5
6
7
// Async/await
do {
  try await AppDelegate.braze?.notifications.unregisterPush()
  print("Push unregistered successfully")
} catch let error as Braze.PushUnregistrationError {
  print("Push unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
}

このOBJECTIVE-Cの例は、completionベースのunregisterPush処理を示しています。OBJECTIVE-Cインテグレーションで使用し、ログ出力をアプリのフローに置き換えてください。

1
2
3
4
5
6
7
8
[AppDelegate.braze.notifications unregisterPushWithCompletion:^(NSError * _Nullable error) {
  if (error) {
    NSNumber *isRetriable = error.userInfo[BRZPushUnregistrationErrorUserInfoKey.isRetriable];
    NSNumber *statusCode = error.userInfo[BRZPushUnregistrationErrorUserInfoKey.httpStatusCode];
    NSLog(@"Push unregistration failed: %@, isRetriable=%@ status=%@",
          error.localizedDescription, isRetriable, statusCode);
  }
}];

unregisterPush後にプッシュを再登録する

unregisterPushを呼び出した後、Brazeプッシュ通知を再度送信する前に、Swiftプッシュ設定に従ってOSまたはプッシュプロバイダーで通知を再登録してください。

即時の登録解除呼び出しを避ける

OSまたはプッシュプロバイダーでプッシュ通知を登録した直後にlogoutまたはunregisterPushを呼び出すことは避けてください。非同期のサーバー処理により、まれにプッシュトークンがBrazeユーザーに再追加される可能性があります。

Live Activitiesのpush-to-startトークンの登録解除

Live Activitiesは、push-to-startトークンを使用してリモートで開始できます。Brazeがデバイス上でLive Activitiesをリモートで開始することを停止するには、unregisterPushToStartメソッドを呼び出して、現在登録されているすべてのタイプ(デフォルト)または指定されたActivityタイプのリストの登録を解除します。

現在実行中のLive Activitiesは引き続き更新を受信し、このメソッドは新しいアクティビティをリモートで開始する機能のみを削除します。Live Activitiesの詳細については、Live Activitiesを参照してください。

以下の例は、すべてのpush-to-startアクティビティタイプの登録を解除する方法を示しています。サインアウトしたユーザーがリモートで開始される新しいLive Activitiesを受信しないようにする場合に使用してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Unregister all currently-registered activity types
// Completion handler
AppDelegate.braze?.liveActivities.unregisterPushToStart { result in
  switch result {
  case .success:
    print("Push-to-start unregistered successfully")
  case .failure(let error):
    print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

// Async/await
do {
  try await AppDelegate.braze?.liveActivities.unregisterPushToStart()
  print("Push-to-start unregistered successfully")
} catch let error as Braze.PushUnregistrationError {
  print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
}

以下の例は、特定のアクティビティタイプの登録を解除する方法を示しています。選択したLive Activitiesのみリモートでの開始を停止する場合に使用してください。

1
2
3
4
5
6
7
8
9
// Unregister specific activity types
AppDelegate.braze?.liveActivities.unregisterPushToStart(types: ["ActivityType1", "ActivityType2"]) { result in
  switch result {
  case .success:
    print("Push-to-start unregistered successfully")
  case .failure(let error):
    print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

IDFVの収集

以前のバージョンのBraze iOS SDKでは、IDFV(Identifier for Vendor)フィールドはユーザーのデバイスIDとして自動的に収集されていました。Swift SDK v5.7.0以降、IDFVフィールドはオプションで無効化でき、代わりにBrazeがランダムなUUIDをデバイスIDとして設定するようになりました。Swift SDK v7.0.0以降、IDFVフィールドはデフォルトでは収集されず、代わりにUUIDがデバイスIDとして設定されます。

useUUIDAsDeviceId機能は、Swift SDKがデバイスIDをUUIDとして設定するように構成します。従来、iOS SDKはAppleが生成したIDFV値と同じデバイスIDを割り当てていました。この機能がiOSアプリでデフォルトで有効になっている場合、SDKを通じて作成されたすべての新規ユーザーには、UUIDと同じデバイスIDが割り当てられます。

IDFVを個別に収集したい場合は、set(identifierforvendor:)を使用できます。

考慮事項

SDKバージョン

Swift SDK v7.0.0+では、useUUIDAsDeviceIdが有効(デフォルト)の場合、新規に作成されたすべてのユーザーにランダムなデバイスIDが割り当てられます。既存のすべてのユーザーは、IDFVであった可能性のある同じデバイスID値を維持します。

この機能が有効でない場合、デバイスには引き続き作成時にIDFVが割り当てられます。

ダウンストリーム

テクノロジーパートナー:この機能が有効な場合、BrazeデバイスIDからIDFV値を取得しているテクノロジーパートナーは、このデータにアクセスできなくなります。パートナー連携にデバイスから取得したIDFV値が必要な場合は、この機能をfalseに設定することをお勧めします。

CurrentsuseUUIDAsDeviceIdをtrueに設定すると、Currentsで送信されるデバイスIDはIDFV値と一致しなくなります。

よくある質問

この変更はBrazeの既存ユーザーに影響しますか?

いいえ。この機能を有効にしても、Brazeのユーザーデータは上書きされません。新しいUUIDデバイスIDは、新しいデバイスまたはwipedata()が呼び出された場合にのみ作成されます。

この機能を有効にした後に無効にできますか?

はい、この機能はいつでもオンとオフを切り替えることができます。以前に保存されたデバイスIDが上書きされることはありません。

Brazeの他の場所でIDFV値を取得することはできますか?

はい、Swift SDKを通じてIDFVをオプションで収集することは引き続き可能です(デフォルトでは収集は無効になっています)。

前提条件

この機能を使う前に、React Native Braze SDKを統合する必要がある。

データトラッキングを無効にする

データ収集を無効にするには、disableSDKメソッドを使用します。このメソッドを呼び出すと、Braze SDKはBrazeサーバーへのデータ送信を停止します。

1
Braze.disableSDK();

データトラッキングを再開する

データ収集を無効にした後に再開するには、enableSDKメソッドを使用します。

1
Braze.enableSDK();

ローカルに保存されたデータを消去する

デバイスに保存されたすべてのBraze SDKデータを削除するには、wipeDataメソッドを使用します。このメソッドを呼び出すと、SDKは無効になり、enableSDKで再度有効にする必要があります。

1
Braze.wipeData();

データのフラッシュ

保留中のデータをBrazeサーバーに即座にフラッシュするには、requestImmediateDataFlushを使用します。

1
Braze.requestImmediateDataFlush();

広告トラッキングの有効化を設定する

このデバイスで広告トラッキングが有効かどうかをBrazeに通知するには、setAdTrackingEnabledメソッドを使用します。SDKはこのデータを自動的に収集しません。

1
Braze.setAdTrackingEnabled(true, "GOOGLE_ADVERTISING_ID");

2番目のパラメーターはGoogle Advertising IDで、Androidでのみ使用されます。

トラッキングプロパティ許可リストの更新(iOSのみ)

トラッキングとして宣言されたデータタイプのリストを更新するには、updateTrackingPropertyAllowListを使用します。これはAndroidでは何も実行されません。

1
2
3
4
5
6
7
8
Braze.updateTrackingPropertyAllowList({
  adding: [Braze.TrackingProperty.EMAIL, Braze.TrackingProperty.FIRST_NAME],
  removing: [],
  addingCustomEvents: ["my_custom_event"],
  removingCustomEvents: [],
  addingCustomAttributes: ["my_custom_attribute"],
  removingCustomAttributes: []
});

詳細については、プライバシーマニフェストを参照してください。

ログアウトとプッシュ登録解除

この機能はReact Native SDKではまだサポートされていません。

前提条件

この機能を使用するには、 Roku Braze SDK を統合する必要があります。

以前に保存されたデータを消去する

Roku SDKにはwipeDataメソッドが含まれていません。他のBraze SDKのwipeData()と機能的に同等のクリーンな状態を作成するには、4つのBrazeレジストリセクションをクリアしてから、SDKを再初期化します。

Braze Roku SDKは、以下のレジストリセクションにデータを保持します。

セクション 内容
braze.section.device_id Brazeでこのデバイスを識別するために使用されるデバイスUUID。
braze.section.user_id 設定されている場合の外部ユーザー ID。
braze.section.session アクティブなセッションUUID、開始時刻、終了時刻。
braze.section.config キャッシュされたSDK設定とフィーチャーフラグデータ。

ステップ1:レジストリセクションをクリアする

roRegistry.Delete()を使用して各Brazeセクションを削除し、Flush()を呼び出して変更を保持します。

1
2
3
4
5
6
7
8
sub WipeBrazeData()
    registry = CreateObject("roRegistry")
    registry.Delete("braze.section.device_id")
    registry.Delete("braze.section.user_id")
    registry.Delete("braze.section.session")
    registry.Delete("braze.section.config")
    registry.Flush()
end sub

ステップ2:Braze SDKを再初期化する

Braze SDKを初期化し直すと、SDKは欠落しているレジストリデータを適切に処理します。

  • デバイスIDセクションが空のため、SDKは新しいUUIDを生成し、デバイスを匿名として扱います。
  • ユーザー IDセクションが空のため、SDKはデフォルトで匿名ユーザー(空の文字列"")になります。
  • セッションセクションが空のため、SDKは新しいセッションを開始します。
  • 設定セクションが空のため、SDKはサーバーから設定を再取得します。

ログアウトとプッシュ登録解除

この機能はRoku SDKではまだサポートされていません。

New Stuff!