Управление настройками согласия для приложений

Эта страница предназначена для разработчиков, которые используют SDK Google Аналитики для Firebase в своих приложениях и хотят интегрировать режим согласия. Рекомендуем ознакомиться с общими сведениями о режиме согласия.

В Google Аналитике доступен режим согласия, который позволяет менять алгоритм работы SDK с учетом статуса согласия пользователей. Ознакомьтесь с типами согласия для всех доступных параметров.

Подготовка

Перед тем как приступить к управлению настройками режима согласия, установите:

  • SDK Google Аналитики для Firebase.
  • Баннер с настройками для получения согласия пользователей

Чтобы настроить режим согласия, выполните следующие действия:

  1. Задайте значение согласия по умолчанию.
  2. Измените статус согласия в зависимости от того, какие настройки выбрал пользователь.

По умолчанию значения режима согласия не заданы. Чтобы установить стандартный статус согласия для приложения, выполните следующие действия:

  1. Откройте файл AndroidManifest.xml приложения.
  2. Добавьте пары "ключ-значение" для режима согласия. Ключ описывает тип согласия, а значение – статус. Доступны следующие варианты значений: 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 продолжает улучшать конфиденциальность экосистемы цифровой рекламы, поэтому мы решили сделать более строгими правила в отношении согласия пользователей из ЕС.

В режиме согласия пользователи должны будут отправлять в дополнение к ad_storage и analytics_storage два новых параметра:

  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. Откройте инструмент Logcat в Android Studio и найдите сообщение в журнале, которое начинается с элемента Setting consent. Предположим, что сбор данных для Google Рекламы включен. Тогда вы увидите следующее сообщение в журнале:

    Setting consent, ... AD_STORAGE=granted