В соответствии с Политикой согласия пользователей Google из ЕС вы должны раскрыть определенную информацию своим пользователям в Европейской экономической зоне (ЕЭЗ), а также в Великобритании, и получить их согласие на использование файлов cookie или другого локального хранилища, если это требуется по закону, а также на использование личных данных ( например AdID) для показа рекламы. Эта политика отражает требования Директивы ЕС об электронной конфиденциальности и Общего регламента защиты данных (GDPR).
В этом руководстве описаны шаги, необходимые для поддержки сообщения GDPR IAB TCF v2 как части UMP SDK. Он предназначен для использования в сочетании с разделом «Начало работы» , который дает обзор того, как запустить ваше приложение с помощью UMP SDK, а также основы настройки вашего сообщения. Следующие рекомендации относятся только к сообщению GDPR IAB TCF v2. Дополнительную информацию см. в разделе «Как требования IAB влияют на сообщения о согласии из ЕС» .
Предварительные условия
- Заполните руководство по началу работы .
- Создайте сообщение о европейском регулировании приложений .
Отзыв согласия
GDPR требует отзыва согласия , чтобы пользователи могли отозвать свое согласие в любое время. См. раздел «Параметры конфиденциальности» , чтобы предоставить пользователям возможность отозвать свое согласие.
Метка для лиц, не достигших возраста согласия
Чтобы указать, не достиг ли пользователь возраста согласия, установите tagForUnderAgeOfConsent
(TFUA). Если для TFUA установлено значение true
, UMP SDK не запрашивает согласие пользователя. Если у вашего приложения смешанная аудитория, установите этот параметр для детей-пользователей, чтобы гарантировать, что согласие не запрашивается.
В следующем примере для TFUA устанавливается значение true в запросе согласия UMP:
Быстрый
// Create a UMPRequestParameters object.
let parameters = UMPRequestParameters()
// Indicate the user is under age of consent.
parameters.tagForUnderAgeOfConsent = true
// Request an update for the consent information.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
[weak self] requestConsentError in
guard let self else { return }
// ...
}
Цель-C
// Create a UMPRequestParameters object.
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Indicate the user is under age of consent.
parameters.tagForUnderAgeOfConsent = YES;
// Request an update for the consent information.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
Посредничество
Следуйте инструкциям в разделе Добавление рекламных партнеров в опубликованные сообщения GDPR , чтобы добавить партнеров по посредничеству в список рекламных партнеров. Несоблюдение этого требования может привести к тому, что партнеры не смогут показывать рекламу в вашем приложении.
Партнеры по посредничеству также могут иметь дополнительные инструменты, помогающие соблюдать GDPR. Дополнительные сведения см. в руководстве по интеграции конкретного партнера.
Как читать варианты согласия
После получения согласия GDPR вы можете прочитать варианты согласия из локального хранилища в соответствии со спецификацией TCF v2 . Ключ IABTCF_PurposeConsents
указывает на согласие для каждой из целей TCF .
В следующем фрагменте кода показано, как проверить согласие для цели 1:
Быстрый
// Example value: "1111111111"
let purposeConsents = UserDefaults.standard.string(forKey: "IABTCF_PurposeConsents")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
let hasConsentForPurposeOne = purposeConsents?.first == "1"
Цель-C
// Example value: "1111111111"
NSString *purposeConsents = [NSUserDefaults.standardUserDefaults
stringForKey:@"IABTCF_PurposeConsents"];
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
BOOL hasConsentForPurposeOne = [purposeConsents hasPrefix:@"1"];
Часто задаваемые вопросы
- Что произойдет, если я не предприму никаких действий для выполнения требований платформы управления согласием для показа рекламы в ЕЭЗ и Великобритании ?
С 16 января 2024 г., если партнер не примет сертифицированную Google CMP , только ограниченная реклама будет иметь право показываться на трафике из ЕЭЗ и Великобритании.
Контроль начнется 16 января 2024 года в отношении небольшого процента трафика из ЕЭЗ и Великобритании и будет усиливаться до тех пор, пока Google не введет его в действие для всего трафика из ЕЭЗ и Великобритании к концу февраля 2024 года. К 16 января 2024 года необходимо иметь сертифицированный CMP, чтобы гарантировать монетизация не пострадает.
- Как я могу проверить, дал ли пользователь согласие?
Согласие представлено не одним битом, а скорее набором целей и поставщиков, как это определено в спецификации IAB TCF . Критерии персонализации Google Рекламы см. в разделе «Политика согласия: персонализированная и неперсонализированная реклама» .
Кроме того, рекламные технологии из списка поставщиков рекламных технологий (ATP) Google, которые не зарегистрированы в списке поставщиков TCF, используют техническую спецификацию дополнительного согласия Google для сбора согласия. Google публикует список поставщиков рекламных технологий, не зарегистрированных в IAB, и их идентификаторы по следующему адресу: https://storage.googleapis.com/tcfac/additional-consent-providers.csv .
Чтобы отладить отдельный запрос объявления, используйте функцию расширенной отладки рекламных блоков в Инспекторе объявлений, чтобы экспортировать строку запроса объявления. Затем найдите следующие параметры запроса:
Параметр запроса Значение gdpr
Применяется ли GDPR к этому запросу объявления. gdpr_consent
Строка TC. IAB предоставляет веб-инструмент, с помощью которого вы можете вручную декодировать значение. addtl_consent
Строка AC из технической спецификации дополнительного согласия Google . Чтобы прочитать варианты согласия программным способом, дополнительные сведения см. в разделе Как читать варианты согласия .
- Нужно ли мне использовать UMP SDK Google, чтобы соответствовать требованиям CMP?
No, you can use any CMP from the List Google-certified CMP to serve ads.
- Как я могу снова показать форму согласия с помощью UMP SDK, даже если пользователь уже дал согласие?
Если пользователь уже принял решение о согласии, решение Google по управлению согласием не будет запрашивать новое согласие до тех пор, пока строка TC не истечет или иным образом не станет недействительной.
GDPR требует изменения согласия, чтобы пользователи могли в любое время отозвать свой выбор согласия. Ознакомьтесь с вариантами конфиденциальности , чтобы пользователи могли отозвать свое согласие. Чтобы снова отобразить форму согласия, вызовите
presentPrivacyOptionsFormFromViewController:completionHandler:
.- Я интегрировал CMP, сертифицированный Google, но не вижу никаких запросов на рекламу к партнерам по посредничеству, даже от пользователей, которые дали свое согласие. Почему это происходит?
В соответствии с TCF Google проверяет, что поставщики рекламных технологий и другие источники программного спроса не нарушают политику Google и имеют хотя бы одно юридическое основание для обработки данных, прежде чем включать их в каскад посредничества. Перейдите в раздел посредничества для получения дополнительной информации.
Некоторые партнеры-посредники из списка поставщиков рекламных технологий (ATP) Google не зарегистрированы в списке поставщиков TCF . Вместо этого эти партнеры используют техническую спецификацию Google «Дополнительное согласие» для сбора согласия. Google публикует список поставщиков рекламных технологий, не зарегистрированных в IAB, и их идентификаторы по следующему адресу: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.
UMP SDK поддерживает сохранение ACString, что позволяет добавлять рекламных партнеров в опубликованные сообщения GDPR без необходимости выяснять, зарегистрированы ли партнеры в TCF. При использовании стороннего CMP необходимо сделать следующее:
- Убедитесь, что сторонний CMP поддерживает сохранение ACString.
- Включите каждого партнера-посредника в список поставщиков рекламных технологий, который сторонний CMP использует для получения согласия.
- Могу ли я изменить работу моего приложения, если пользователи не согласны? Разрешено ли это политикой?
Издатели могут читать строку TCF IAB в своих приложениях. См . раздел «Как прочитать варианты согласия» для получения информации о программном чтении вариантов согласия. Издателям следует проконсультироваться с юристом о своих обязательствах в соответствии с соответствующими правилами.
- Когда я выбираю «Параметры управления» и соглашаюсь на все цели, я не вижу рекламы? Почему это происходит?
Помимо согласия на получение согласия, вам также необходимо получить согласие поставщика. Для показа соответствующих объявлений любому поставщику, например Google, требуется как согласие на цели, так и согласие поставщика.
- Как лучше всего показывать предупреждение ATT iOS и согласие GDPR одному и тому же пользователю?
Мы рекомендуем сначала показывать сообщение о согласии GDPR, а затем предупреждение iOS ATT, если пользователь дал согласие на GDPR. Это уже обрабатывается UMP SDK, если вы настроите оба сообщения в пользовательском интерфейсе Менеджера рекламы. Посмотрите , какое сообщение увидят ваши пользователи, чтобы получить дополнительную информацию.
Если вы не показываете оповещение ATT с помощью UMP SDK, мы рекомендуем вам прочитать варианты согласия после получения согласия GDPR, чтобы определить, следует ли отображать оповещение ATT для iOS.
- Как реализовать AC String версии 2 для пользователей, которые уже согласились на версию 1?
Проверьте ключ
IABTCF_AddtlConsent
в локальном хранилище в соответствии с технической спецификацией дополнительного согласия Google , чтобы определить, дал ли пользователь согласие на строку AC версии 2, и нужно ли вам снова показать форму согласия.Быстрый
// Example value: "2~1.35.41.101~dv.9.21.81" let additionalConsent = UserDefaults.standard.string(forKey: "IABTCF_AddtlConsent") // Index 0 contains information about the specification version number. let isACVersion2 = additionalConsent?.first == "2"
Цель-C
// Example value: "2~1.35.41.101~dv.9.21.81" NSString *additionalConsent = [NSUserDefaults.standardUserDefaults stringForKey:@"IABTCF_AddtlConsent"]; // Index 0 contains information about the specification version number. BOOL isACVersion2 = [additionalConsent hasPrefix:@"2"];