同意の実装
モバイルアプリに同意を実装する方法について説明します。
Adobe Experience Platform Consent モバイル拡張機能を使用すると、Adobe Experience Platform Mobile SDKとEdge Network拡張機能を使用する際に、モバイルアプリから同意設定を収集できるようになります。 同意拡張機能について詳しくは、ドキュメントを参照してください。
前提条件
- SDKがインストールされ、設定されたアプリが正常に構築され、実行されました。
学習目標
このレッスンでは、次の操作を行います。
- ユーザーに同意を求めます。
- ユーザーの応答に基づいて拡張機能を更新します。
- 現在の同意状態を取得する方法を説明します。
同意を求める
最初からチュートリアルに従っていた場合は、ユーザーが同意設定を提供する前に発生した同意拡張機能のデフォルトの同意を保留中 – キューイベントに設定したことを忘れないでください。
データの収集を開始するには、ユーザーから同意を得る必要があります。 実際のアプリでは、地域の同意のベストプラクティスについて調べてみることをお勧めします。 このチュートリアルでは、アラートを表示してユーザーに同意を求めるだけで、ユーザーから同意を得ることができます。
-
ユーザーに同意を求めるのは1回だけです。 AppleのApp Tracking Transparency Frameworkを使用して、Mobile SDKの同意とトラッキングに必要な認証を組み合わせます。 このアプリでは、ユーザーがトラッキングを許可すると、イベントの収集に同意したものとみなされます。
-
Xcode プロジェクトナビゲーターでLuma > Luma > Utils > MobileSDKに移動します。
このコードを
updateConsent関数に追加します。code language-swift // Update consent let collectConsent = ["collect": ["val": value]] let currentConsents = ["consents": collectConsent] Consent.update(with: currentConsents) MobileCore.updateConfigurationWith(configDict: currentConsents) -
XcodeのプロジェクトナビゲーターでLuma > Luma > Views > General > DisclaimerViewに移動します。 Xodeのプロジェクトナビゲーターは、アプリケーションをインストールまたは再インストールし、アプリを初めて起動した後に表示されるビューです。 AppleのApp Tracking Transparency Frameworkに従ってトラッキングを許可するように求められます。 ユーザーが認証した場合は、同意も更新します。
次のコードを
ATTrackingManager.requestTrackingAuthorization { status inクロージャに追加します。code language-swift // Add consent based on authorization if status == .authorized { // Set consent to yes MobileSDK.shared.updateConsent(value: "y") } else { // Set consent to yes MobileSDK.shared.updateConsent(value: "n") }
-
ユーザーに同意を求めるのは1回だけです。 このアプリでは、ユーザーがトラッキングを許可すると、イベントの収集に同意したものとみなされます。
-
Android Studio ナビゲーターで、app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDKに移動します。
このコードを
updateConsent(value: String)関数に追加します。code language-kotlin // Update consent val collectConsent = mapOf("collect" to mapOf("val" to value)) val currentConsents = mapOf("consents" to collectConsent) Consent.update(currentConsents) MobileCore.updateConfiguration(currentConsents) -
Android Studio ナビゲーターで、app > kotlin+java > com.adobe.luma.tutorial.android > views > DisclaimerView.ktに移動します。
次のコードを
// Set content to yesおよび// Set content to noの下のDisclaimerView(navController: NavController)関数に追加します。code language-kotlin // Add consent based on authorization if (status) { showPersonalizationWarning = false // Set consent to yes MobileSDK.shared.updateTrackingStatus(TrackingStatus.AUTHORIZED) MobileSDK.shared.updateConsent("y") } else { Toast.makeText( context, "You will not receive offers and location tracking will be disabled.", Toast.LENGTH_LONG ).show() showPersonalizationWarning = true // Set consent to no MobileSDK.shared.updateTrackingStatus(TrackingStatus.DENIED) MobileSDK.shared.updateConsent("n") }
現在の同意状態を取得
同意モバイル拡張機能は、現在の同意値に基づいてトラッキングを自動的に抑制/保留/許可します。 現在の同意状態に自分でアクセスすることもできます。
-
XcodeのプロジェクトナビゲーターでLuma > Luma > Utils > MobileSDKに移動します。
次のコードを
getConsents関数に追加します。code language-swift // Get consents Consent.getConsents { consents, error in guard error == nil, let consents = consents else { return } guard let jsonData = try? JSONSerialization.data(withJSONObject: consents, options: .prettyPrinted) else { return } guard let jsonStr = String(data: jsonData, encoding: .utf8) else { return } Logger.aepMobileSDK.info("Consent getConsents: \(jsonStr)") } -
XcodeのプロジェクトナビゲーターでLuma > Luma > Views > General > HomeViewに移動します。
次のコードを
.task修飾子に追加します。code language-swift // Ask status of consents MobileSDK.shared.getConsents()
上記の例では、Xcodeのコンソールに同意ステータスをログに記録しているだけです。 実際のシナリオでは、ユーザーに表示するメニューやオプションを変更するために使用できます。
-
Android Studio ナビゲーターで、app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDKに移動します。
次のコードを
getConsents()関数に追加します。code language-kotlin // Get consents Consent.getConsents { callback -> if (callback != null) { val jsonStr = JSONObject(callback).toString(4) Log.i("MobileSDK", "Consent getConsents: $jsonStr") } } -
Android Studio ナビゲーターで、app > kotlin+java > com.adobe.luma.tutorial.android > views > HomeView.ktに移動します。
次のコードを
LaunchedEffect(unit)に追加します。code language-kotlin // Ask status of consents MobileSDK.shared.getConsents()
上記の例では、同意ステータスをAndroid Studioのコンソールにログ記録するだけです。 実際のシナリオでは、ユーザーに表示するメニューやオプションを変更するために使用できます。
Assurance での検証
- デバイスまたはシミュレーターからアプリケーションを削除して、トラッキングと同意を正しくリセットおよび初期化します。
- シミュレーターまたはデバイスをAssuranceに接続するには、設定の手順 セクションを参照してください。
- アプリを Home 画面から Products 画面に移動し、Home画面に戻すと、Assurance UIに「同意を得る応答」イベントが表示されます。
{modal="regular"}