同意設定を管理する(アプリ)

このページは、Firebase SDK 向け Google アナリティクスをアプリで使用し、同意モードを統合したいデベロッパーを対象としています。同意モードについては、同意モードの概要をご覧ください。

Google アナリティクスには、ユーザーの同意ステータスに基づいて SDK の動作を調整する「同意モード」が用意されています。利用可能なパラメータについては、同意タイプをご覧ください。

始める前に

ユーザーの同意を管理するには、次を実装する必要があります。

  • Firebase SDK 向け Google アナリティクス
  • ユーザーの同意を得るための同意設定バナー

同意モードを設定するには、次を行う必要があります。

  1. デフォルトの同意を確立する
  2. 同意設定に対するユーザー インタラクションに基づき、同意ステータスを更新する

同意モードの値はデフォルトでは設定されていません。デフォルトの同意ステータスをアプリに設定する方法は次のとおりです。

  1. アプリの AndroidManifest.xml ファイルを開きます。
  2. 同意モードの Key-Value ペアを追加します。キーは同意タイプ、値は同意ステータスを示します。値は、同意が得られたことを意味する true か、同意が拒否されたことを意味する false のどちらでも指定できます。次のように設定してください。

    • google_analytics_default_allow_analytics_storage
    • google_analytics_default_allow_ad_storage
    • google_analytics_default_allow_ad_user_data
    • google_analytics_default_allow_ad_personalization_signals
  3. 変更内容を保存後、同意の値を更新するメカニズムを実装します。

たとえば、デフォルトですべてのパラメータに同意ステータスを付与する方法は次のとおりです。

<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />

アプリの起動後に同意ステータスの値を更新するには、setConsent メソッドを呼び出します。

setConsent メソッドで設定された値は、デフォルト設定をオーバーライドし、アプリの実行後も維持されます。この値は、ユーザーがアプリを閉じて再度開いても、setConsent が再び呼び出されるまでそのままとなります。setConsent では、指定したパラメータのみが更新されます。

ユーザーが以前アナリティクスまたは広告のストレージで同意した内容を取り消した場合は、Google アナリティクスで、ad personalization に関する同意ステータスを含むすべてのユーザー プロパティが削除されます。 ユーザーが広告のパーソナライズについて選択した同意内容を維持するには、setConsent の(Kotlin+KTX | Java)、を使用して広告のパーソナライズの以前の値を復元します。

setConsent メソッドを使って異なる同意ステータスの値を granted に更新する例を次に示します。

Java

// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);

mFirebaseAnalytics.setConsent(consentMap);

Kotlin

Firebase.analytics.setConsent {
  analyticsStorage(ConsentStatus.GRANTED)
  adStorage(ConsentStatus.GRANTED)
  adUserData(ConsentStatus.GRANTED)
  adPersonalization(ConsentStatus.GRANTED)
}

Google は、プライバシーに配慮したデジタル広告エコシステムへの継続的な取り組みの一環として、EU ユーザーの同意ポリシーの適用を強化しています。

同意モードをお使いの場合は、広告およびアナリティクスへのデータ保存に加え、2 つの新しいパラメータを送信する必要があります。

  1. アプリの AndroidManifest.xml に次が含まれるように更新します。

    <meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
    <meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
    
  2. 広告ユーザーのデータおよび広告のパーソナライズのパラメータが含まれるように、同意の呼び出しを更新します。

    Java

    // Set consent types.
    Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
    consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
    
    mFirebaseAnalytics.setConsent(consentMap);
    

    Kotlin

    Firebase.analytics.setConsent {
      analyticsStorage(ConsentStatus.GRANTED)
      adStorage(ConsentStatus.GRANTED)
      adUserData(ConsentStatus.GRANTED)
      adPersonalization(ConsentStatus.GRANTED)
    }
    

同意設定が意図どおり機能しているかどうかは、アプリのログメッセージを参照すれば検証できます。

手順は次のとおりです。

  1. 使用デバイスで詳細ログを有効化します。
  2. Android Studio の Logcat で、Setting consent で始まるログメッセージを探します。たとえば、広告のストレージが有効になっている場合、次のようなログ メッセージが表示されます。

    Setting consent, ... AD_STORAGE=granted