Эта страница предназначена для разработчиков, которые используют SDK Google Аналитики для Firebase в своих приложениях и хотят интегрировать режим согласия. Рекомендуем ознакомиться с общими сведениями о режиме согласия.
В Google Аналитике доступен режим согласия, который позволяет менять алгоритм работы SDK с учетом статуса согласия пользователей. Ознакомьтесь с типами согласия для всех доступных параметров.
Подготовка
Перед тем как приступить к управлению настройками режима согласия, установите:
- SDK Google Аналитики для Firebase.
Баннер с настройками для получения согласия пользователей
Как настроить режим согласия
Чтобы настроить режим согласия, выполните следующие действия:
- Задайте значение согласия по умолчанию.
- Измените статус согласия в зависимости от того, какие настройки выбрал пользователь.
Шаг 1. Задайте значение согласия по умолчанию
По умолчанию значения режима согласия не заданы. Чтобы установить стандартный статус согласия для приложения, выполните следующие действия:
- Откройте файл AndroidManifest.xml приложения.
Добавьте пары "ключ-значение" для режима согласия. Ключ описывает тип согласия, а значение – статус. Доступны следующие варианты значений:
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
Сохраните изменения. Реализуйте алгоритм обновления значений согласия.
Например, вы можете присвоить всем параметрам значение "согласие получено" и использовать его по умолчанию. Для этого выполните следующие действия:
<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" />
Шаг 2. Обновите значения согласия
Чтобы изменить значения согласия после запуска приложения, воспользуйтесь методом 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)
}
Переход на режим согласия версии 2
Компания Google продолжает улучшать конфиденциальность экосистемы цифровой рекламы, поэтому мы решили сделать более строгими правила в отношении согласия пользователей из ЕС.
В режиме согласия пользователи должны будут отправлять в дополнение к ad_storage и analytics_storage два новых параметра:
Добавьте в файл 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" />
Измените вызовы согласия таким образом, чтобы в них были параметры персонализации рекламы и получения согласия на сбор пользовательских данных:
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) }
Проверка настроек согласия
Чтобы проверить, корректно ли работают настройки согласия, посмотрите сообщения в журнале, относящиеся к вашему приложению.
Для этого выполните следующие действия:
- Включите ведение подробных журналов на устройстве.
Откройте инструмент Logcat в Android Studio и найдите сообщение в журнале, которое начинается с элемента
Setting consent
. Предположим, что сбор данных для Google Рекламы включен. Тогда вы увидите следующее сообщение в журнале:Setting consent, ... AD_STORAGE=granted