同意の実装

モバイルアプリに同意を実装する方法について説明します。

Adobe Experience Platform Consent モバイル拡張機能を使用すると、Adobe Experience Platform Mobile SDKとEdge Network拡張機能を使用する際に、モバイルアプリから同意設定を収集できるようになります。 同意拡張機能について詳しくは、ドキュメントを参照してください。

前提条件

  • SDKがインストールされ、設定されたアプリが正常に構築され、実行されました。

学習目標

このレッスンでは、次の操作を行います。

  • ユーザーに同意を求めます。
  • ユーザーの応答に基づいて拡張機能を更新します。
  • 現在の同意状態を取得する方法を説明します。

同意を求める

最初からチュートリアルに従っていた場合は、ユーザーが同意設定を提供する前に発生した同意拡張機能のデフォルトの同意を​保留中 – キューイベントに設定したことを忘れないでください。

データの収集を開始するには、ユーザーから同意を得る必要があります。 実際のアプリでは、地域の同意のベストプラクティスについて調べてみることをお勧めします。 このチュートリアルでは、アラートを表示してユーザーに同意を求めるだけで、ユーザーから同意を得ることができます。

iOS
  1. ユーザーに同意を求めるのは1回だけです。 AppleのApp Tracking Transparency Frameworkを使用して、Mobile SDKの同意とトラッキングに必要な認証を組み合わせます。 このアプリでは、ユーザーがトラッキングを許可すると、イベントの収集に同意したものとみなされます。

  2. 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)
    
  3. 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")
    }
    
Android
  1. ユーザーに同意を求めるのは1回だけです。 このアプリでは、ユーザーがトラッキングを許可すると、イベントの収集に同意したものとみなされます。

  2. 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)
    
  3. 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")
    }
    

現在の同意状態を取得

同意モバイル拡張機能は、現在の同意値に基づいてトラッキングを自動的に抑制/保留/許可します。 現在の同意状態に自分でアクセスすることもできます。

iOS
  1. 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)")
    }
    
  2. Xcodeのプロジェクトナビゲーターで​Luma > Luma > Views > General > HomeView​に移動します。

    次のコードを.task修飾子に追加します。

    code language-swift
    // Ask status of consents
    MobileSDK.shared.getConsents()
    

上記の例では、Xcodeのコンソールに同意ステータスをログに記録しているだけです。 実際のシナリオでは、ユーザーに表示するメニューやオプションを変更するために使用できます。

Android
  1. 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")
       }
    }
    
  2. 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 での検証

  1. デバイスまたはシミュレーターからアプリケーションを削除して、トラッキングと同意を正しくリセットおよび初期化します。
  2. シミュレーターまたはデバイスをAssuranceに接続するには、設定の手順 セクションを参照してください。
  3. アプリを​ Home ​画面から​ Products ​画面に移動し、Home​画面に戻すと、Assurance UIに「同意を得る応答」イベントが表示されます。
    同意を検証 {modal="regular"}
SUCCESS
Adobe Experience Platform Mobile SDKを使用して、インストール(または再インストール)後の最初の開始時に同意を求めるアプリを有効にしました。
Adobe Experience Platform Mobile SDKについて学ぶために時間を割いていただきありがとうございます。 ご質問がある場合、一般的なフィードバックを共有したい場合、または今後のコンテンツに関する提案がある場合は、このExperience League コミュニティ ディスカッション投稿で共有してください

次:ライフサイクルデータの収集

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk