プライバシー・マニフェスト
あなたのBraze SDKがトラッキングデータを収集する場合、Appleは、トラッキングデータを収集する理由と方法を説明するプライバシーマニフェストを追加することを要求する。
トラッキングデータとは何か?
アップルは「トラッキングデータ」を、エンドユーザーやデバイスについてあなたのアプリで収集され、第三者のデータ(ターゲット広告など)やデータブローカーにリンクされたデータと定義している。完全な定義と例については、アップルを参照のこと:トラッキングを参照してください。
デフォルトでは、Braze SDKはトラッキングデータを収集しない。ただし、Braze SDKの設定によっては、アプリのプライバシーマニフェストにBraze固有のデータを記載する必要がある場合がある。
プライバシー・マニフェストとは何か?
プライバシーマニフェストは、アプリとサードパーティの SDK がデータを収集する理由と、そのデータ収集方法を説明する Xcode プロジェクト内のファイルです。データを追跡するサードパーティの SDK には、それぞれ独自のプライバシーマニフェストが必要です。アプリのプライバシーレポートを作成すると、これらのプライバシーマニフェストファイルは自動的に1つのレポートに集約される。
APIトラッキング・データ・ドメイン
iOS 17.2 以降、Apple はエンドユーザーが Ad Tracking Transparency (ATT) のプロンプトを受け入れるまで、宣言されたすべてのトラッキングエンドポイントをブロックします。Brazeは、トラッキングデータをルーティングするためのトラッキングエンドポイントを提供し、同時にトラッキング以外のファーストパーティデータを元のエンドポイントにルーティングすることもできる。
Brazeのトラッキングデータを宣言する
詳細な説明については、プライバシートラッキングデータのチュートリアルを参照してください。
ステップ1:現在の方針を見直す
貴社のBraze SDKの現在のデータ収集ポリシーを法務チームと検討し、貴社のアプリがAppleの定義に従ってトラッキングデータを収集しているかどうかを判断する。トラッキングデータを収集していない場合は、現時点でBraze SDKのプライバシーマニフェストをカスタマイズする必要はない。Braze SDK のデータ収集ポリシーの詳細については、SDK データ収集を参照してください。
Braze以外のSDKがトラッキングデータを収集する場合は、それらのポリシーを別途確認する必要がある。
ステップ2:プライバシー・マニフェストを作成する
まず、XcodeプロジェクトでPrivacyInfo.xcprivacy
ファイルを検索して、プライバシー・マニフェストがすでにあるかどうかを確認する。すでにこのファイルを持っている場合は、次のステップに進むことができる。それ以外の場合は、Apple:プライバシー・マニフェストを作成する.
ステップ3:エンドポイントをプライバシー・マニフェストに追加する
Xcode プロジェクトでアプリの PrivacyInfo.xcprivacy
ファイルを開き、表を右クリックして、Raw Keys and Values を確認します。
[App Privacy Configuration] で [NSPrivacyTracking] を選択し、値を [YES] に設定します。
App Privacy Configuration」で「NSPrivacyTrackingDomains」を選択する。ドメイン配列で新しい要素を追加し、その値を、sdk-tracking
接頭辞を付けて AppDelegate
に以前に追加したエンドポイントに設定します。
ステップ4: トラッキングデータを宣言する
次に AppDelegate.swift
を開き、静的または動的トラッキングリストを作成して、宣言する各トラッキングプロパティをリストします。Apple は、エンドユーザーが ATT プロンプトを受け入れるまでこれらのプロパティをブロックするため、あなたとあなたの法務チームがトラッキングを検討するプロパティのみをリストします。以下はその例です。
以下の例では、dateOfBirth
、customEvent
、および customAttribute
が静的リスト内でトラッキングデータとして宣言されています。
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
}
}
以下の例では、エンドユーザーがATTプロンプトを受け入れた後、トラッキングリストは自動的に更新される。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
func applicationDidBecomeActive(_ application: UIApplication) {
// 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パーミッションを処理する。メソッド内の adTrackingEnabled
プロパティは、以下のように処理する必要があります。
1
2
3
4
5
6
7
8
func applicationDidBecomeActive(_ application: UIApplication) {
// 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)
}
}