В этом руководстве рассказывается, как передавать информацию о таргетинге в Google Mobile Ads SDK.
Чтобы посмотреть пример, скачайте демонстрационное приложение Android API Demo.Подготовка
Прежде чем продолжить, настройте Google Mobile Ads SDK (Legacy).
RequestConfiguration
RequestConfiguration
собирает информацию о таргетинге, применяемом ко всем запросам объявлений. Список доступных тегов таргетинга приведен в документации по RequestConfiguration.Builder.
Чтобы обновить конфигурацию запроса, получите конструктор из существующей конфигурации, выполните необходимые изменения и задайте его следующим образом:
Kotlin
val requestConfiguration = MobileAds.getRequestConfiguration()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration = MobileAds.getRequestConfiguration();
MobileAds.setRequestConfiguration(requestConfiguration);Чтобы изменения конфигурации запроса применялись ко всем запросам объявлений, задайте конфигурацию запроса до инициализации Google Mobile Ads SDK (Legacy).
Как задать обработку с учетом возраста
Чтобы помочь вам соблюдать действующие законы в отношении конфиденциальности детей и подростков, в Google Mobile Ads SDK (Legacy) есть настройка обработки с учетом возраста. Настройка обработки данных с учетом возраста позволяет указать, должна ли система Google Mobile Ads SDK (Legacy) применять специальные меры защиты при показе рекламы детям, подросткам или пользователям, чей возраст неизвестен.
Вы можете задать обработку возраста с помощью метода setAgeRestrictedTreatment() с API RequestConfiguration.Builder.
В следующем примере показано, что запросы объявлений должны обрабатываться с учетом возрастных ограничений для детей:
Kotlin
val requestConfiguration =
MobileAds.getRequestConfiguration()
.toBuilder()
// Indicate that ad requests should have child age treatment.
.setAgeRestrictedTreatment(AgeRestrictedTreatment.CHILD)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration =
MobileAds.getRequestConfiguration().toBuilder()
// Indicate that ad requests should have child age treatment.
.setAgeRestrictedTreatment(AgeRestrictedTreatment.CHILD)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);Чтобы указать, что возрастная категория – "Подростки" или не определена, замените настройку CHILD на следующие значения:
TEENUNSPECIFIED
Если задано значение Google Mobile Ads SDK (Legacy), в запросы объявлений добавляется параметр tfat. Чтобы определить, какие настройки учета возраста подходят для ваших пользователей, проконсультируйтесь с юристом. Подробнее о том, как добавить в запрос объявления тег для обработки данных с учетом возрастных ограничений…
Как перейти с тегов TFCD и TFUA на обработку с учетом возраста
Настройка учета возраста заменяет устаревшие настройки .setTagForChildDirectedTreatment() (TFCD) и .setTagForUnderAgeOfConsent() (TFUA).
В таблице ниже приведены настройки TFCD и TFUA и их аналоги для обработки данных с учетом возраста.
TFCD
TFCD |
Обработка с учетом возраста |
|---|---|
TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE |
AgeRestrictedTreatment.CHILD |
TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE |
AgeRestrictedTreatment.UNSPECIFIED |
TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED |
AgeRestrictedTreatment.UNSPECIFIED |
Значение не назначено .setTagForChildDirectedTreatment() |
AgeRestrictedTreatment.UNSPECIFIED |
| Ранее такого отчета не существовало | AgeRestrictedTreatment.TEEN |
TFUA
TFUA |
Обработка с учетом возраста |
|---|---|
TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE |
AgeRestrictedTreatment.CHILD |
TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE |
AgeRestrictedTreatment.UNSPECIFIED |
TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED |
AgeRestrictedTreatment.UNSPECIFIED |
Значение не назначено .setTagForUnderAgeOfConsent() |
AgeRestrictedTreatment.UNSPECIFIED |
| Ранее такого отчета не существовало | AgeRestrictedTreatment.TEEN |
Как теги TFCD и TFUA влияют на обработку возрастных ограничений
Если вы зададите настройки учета возраста вместе с тегами TFCD или TFUA, Google применит наиболее строгие из этих настроек.
Передача настроек обработки с учетом возраста при медиации
Если вы настроили учет возраста с помощью Google Mobile Ads SDK (Legacy), адаптеры медиации пересылают сигнал учета возраста в сторонние SDK, используемые для медиации.
В таблице ниже перечислены версии адаптеров медиации, которые поддерживают передачу сигнала об ограничении по возрасту в сторонний SDK, используемый для медиации.
| Название адаптера медиации | Минимальная поддерживаемая версия |
|---|---|
| AppLovin | 13.6.3.0 |
| BidMachine | 3.7.1.1 |
| Bigo | 5.9.0.1 |
| Chartboost | 9.12.1.1 |
| DTExchange (Fyber) | 8.4.5.1 |
| i-mobile | 2.3.2.4 |
| InMobi | 11.3.0.1 |
| IronSource | 9.4.3.0 |
| Liftoff Monetize (Vungle) | 7.7.4.2 |
| LY (Line) | 3.1.1.1 |
| maio | 2.0.9.0 |
| Meta (Facebook) | 6.21.0.4 |
| Mintegral | 17.1.61.1 |
| Moloco | 4.10.0.0 |
| MyTarget | 5.47.1.1 |
| Pangle | 8.1.0.3.1 |
| PubMatic | 5.1.2.2 |
| Verve | 3.9.0.0 |
Настройка для контента, предназначенного для детей
В соответствии с Законом США "О защите личных сведений детей в интернете" (COPPA) существует настройка "Пометить как предназначенный для детей". Устанавливая этот тег, вы подтверждаете, что уведомление точное и вы уполномочены действовать от имени владельца приложения. Вы понимаете, что злоупотребление этой настройкой может привести к удалению вашего аккаунта Google.
Разработчик приложений может указать в запросе объявления, что контент приложения предназначен для детей. Если вы укажете, что ваш контент предназначен для детей, мы отключим в запросе объявлений рекламу на основе интересов и ремаркетинг.
Вы можете указать, что контент предназначен для детей, следующими способами:
setTagForChildDirectedTreatment():
Вызовите функцию
setTagForChildDirectedTreatmentс параметромTAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE, чтобы указать, что контент должен считаться предназначенным для детей в соответствии с законом COPPA. Это предотвращает передачу рекламного идентификатора Android (AAID).Вызовите функцию
setTagForChildDirectedTreatmentс параметромTAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE, чтобы указать, что ваш контент не предназначен для детей в соответствии с законом COPPA.Если вы не хотите указывать, как следует обрабатывать контент в соответствии с COPPA, используйте функцию
setTagForChildDirectedTreatmentс параметромTAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED.
В следующем примере показано, что вы хотите, чтобы ваш контент считался предназначенным для детей в соответствии с COPPA:
Kotlin
val requestConfiguration =
MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForChildDirectedTreatment(RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration =
MobileAds.getRequestConfiguration().toBuilder()
.setTagForChildDirectedTreatment(
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);Пользователи, не достигшие минимального возраста
В запросе объявления можно указать, что оно предназначено для пользователей из Европейской экономической зоны (ЕЭЗ), не достигших минимального возраста. Эта функция помогает соблюдать требования Генерального регламента ЕС о защите персональных данных (GDPR). Обратите внимание, что GDPR может налагать на вас и другие юридические обязательства. Изучите рекомендации Европейского союза и проконсультируйтесь с юристом. Инструменты Google помогают соблюдать требования законодательства, но не освобождают издателей от обязательств, предусмотренных законом. Подробнее о том, как GDPR влияет на издателей…
При использовании этой функции в запрос объявления добавляется параметр "Тег для пользователей из Европы, не достигших минимального возраста" (TFUA). Этот параметр отключает функции персонализированной рекламы (в том числе ремаркетинг) для всех запросов объявлений. Он также запрещает отправку запросов сторонним поставщикам рекламных технологий, например серверам объявлений и обработчикам пикселей отслеживания.
Как и в случае с настройками для контента, предназначенного для детей, в RequestConfiguration.Builder есть метод для установки параметра TFUA:
setTagForUnderAgeOfConsent(),
с указанными ниже вариантами.
Вызовите функцию
setTagForUnderAgeOfConsent()с параметромTAG_FOR_UNDER_AGE_OF_CONSENT_TRUE, чтобы указать, что запрос объявления должен обрабатываться с учетом возрастных ограничений для пользователей из Европейской экономической зоны (ЕЭЗ), не достигших минимального возраста. Это также предотвращает передачу рекламного идентификатора Android (AAID).Вызовите функцию
setTagForUnderAgeOfConsent()с параметромTAG_FOR_UNDER_AGE_OF_CONSENT_FALSE, чтобы указать, что запрос объявления не должен обрабатываться с учетом возрастных ограничений для пользователей из Европейской экономической зоны (ЕЭЗ), не достигших минимального возраста.Вызов
setTagForUnderAgeOfConsent()с параметромTAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIEDозначает, что вы не указали, должен ли запрос объявления обрабатываться с учетом возрастных ограничений для пользователей из Европейской экономической зоны (ЕЭЗ), не достигших минимального возраста.
В приведенном ниже примере показано, как добавить параметр TFUA в запросы объявлений.
Kotlin
val requestConfiguration =
MobileAds.getRequestConfiguration()
.toBuilder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration =
MobileAds.getRequestConfiguration().toBuilder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);Теги, позволяющие включить настройку для контента, предназначенного для детей и setTagForUnderAgeOfConsent(), не должны одновременно иметь значение true. иначе приоритет будет иметь настройка, указывающая на то, что контент предназначен для детей.
Фильтрация рекламного контента
Чтобы соблюдать правила Google Play в отношении неприемлемой рекламы, которые распространяются и на связанные с объявлениями предложения, все объявления и связанные с ними предложения, показываемые в вашем приложении, должны соответствовать возрастным ограничениям приложения, даже если сам контент не нарушает правила Google Play.
Максимальные возрастные ограничения для рекламного контента – один из инструментов для более точного подбора содержания рекламы, которая показывается пользователям вашего приложения. Вы можете установить максимальные возрастные ограничения для соблюдения правил платформы.
Приложения могут задавать максимальные возрастные ограничения для рекламного контента в запросах объявлений с помощью метода
setMaxAdContentRating. Объявления AdMob, возвращаемые при такой настройке, имеют возрастные ограничения, равные или меньшие заданного. Возможные значения этого дополнительного параметра сети основаны на классификациях ярлыков цифрового контента и должны быть одной из следующих строк:
MAX_AD_CONTENT_RATING_GMAX_AD_CONTENT_RATING_PGMAX_AD_CONTENT_RATING_TMAX_AD_CONTENT_RATING_MA
В следующем коде объект RequestConfiguration настраивается так, чтобы возвращаемое содержание объявления соответствовало ярлыку цифрового контента не выше G:
Kotlin
val requestConfiguration =
MobileAds.getRequestConfiguration()
.toBuilder()
.setMaxAdContentRating(RequestConfiguration.MAX_AD_CONTENT_RATING_G)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration =
MobileAds.getRequestConfiguration().toBuilder()
.setMaxAdContentRating(RequestConfiguration.MAX_AD_CONTENT_RATING_G)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);Подробнее о том, как установить максимальные возрастные ограничения на уровне запроса объявления…
Publisher Privacy Treatment (бета-версия)
Publisher Privacy Treatment API (условия конфиденциальности издателя) – это необязательный инструмент, который позволяет приложениям указывать, следует ли отключать персонализацию рекламы для всех запросов объявлений с помощью метода setPublisherPrivacyPersonalizationState(). При использовании этой функции в запрос объявления добавляется параметр "Вариант защиты конфиденциальности издателем" (PPT).
По умолчанию в ответ на запросы объявлений Google предлагает персонализированную рекламу. Следующий код отключает персонализацию рекламы для всех запросов объявлений:
Kotlin
val requestConfiguration =
MobileAds.getRequestConfiguration()
.toBuilder()
.setPublisherPrivacyPersonalizationState(
RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED
)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)Java
RequestConfiguration requestConfiguration =
MobileAds.getRequestConfiguration().toBuilder()
.setPublisherPrivacyPersonalizationState(
RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);Запрос объявления
Объект
AdManagerAdRequest собирает информацию о таргетинге, которая будет отправлена вместе с запросом объявления.
Как добавить дополнительную информацию от сети
Дополнительные параметры сети – это дополнительные сведения, которые отправляются вместе с запросом объявления и относятся к определенному источнику объявлений.
В следующем фрагменте кода показано, как задать дополнительный параметр collapsible со значением bottom для Google:
Kotlin
val extras = Bundle()
extras.putString("collapsible", "bottom")
val adRequest =
AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
adView.loadAd(adRequest)Java
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
AdRequest adRequest =
new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, extras).build();
adView.loadAd(adRequest);Таргетинг со специальными настройками
Вы можете передавать собственные пары "ключ-значение", чтобы настраивать таргетинг кампаний (позиций) Google Менеджера рекламы. В следующем примере в запросе объявления передается специальная пара "ключ-значение":
Kotlin
// Example: Pass custom targeting "age=25".
val newRequest = AdManagerAdRequest.Builder().addCustomTargeting("age", "25").build()Java
// Example: Pass custom targeting "age=25".
AdManagerAdRequest newRequest =
new AdManagerAdRequest.Builder().addCustomTargeting("age", "25").build();Для одного ключа можно передать несколько значений в виде списка строк. Например, чтобы показывать рекламу не только 25-летним, но и людям в возрасте от 23 до 27 лет.
Kotlin
.addCustomTargeting("age", listOf("24", "25", "26"))Java
.addCustomTargeting("age", Arrays.asList("24", "25", "26"))Исключение категорий
Чтобы добавить в запрос исключение категории на уровне рекламного места, используйте метод addCategoryExclusion():
Kotlin
// Example: Exclude "automobile" and "boat" categories.
val newRequest =
AdManagerAdRequest.Builder()
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build()Java
// Example: Exclude "automobile" and "boat" categories.
AdManagerAdRequest newRequest =
new AdManagerAdRequest.Builder()
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build();Пример реализации исключения категорий в демонстрационном приложении Android API можно найти в разделе Ad Manager Category Exclusions.
Идентификаторы, назначаемые издателем
Вы можете задать идентификатор, назначаемый издателем (PPID), для ограничения частоты показов, сегментирования аудитории, таргетинга, последовательной ротации объявлений и других способов управления рекламой на основе аудитории на разных устройствах.
Вот пример того, как задать идентификатор PPID:
Kotlin
val adRequest = AdManagerAdRequest.Builder().setPublisherProvidedId("AB123456789").build()Java
AdManagerAdRequest adRequest =
new AdManagerAdRequest.Builder().setPublisherProvidedId("AB123456789").build();Посмотрите пример использования идентификаторов PPID в Менеджере рекламы в демонстрационном приложении Android API Demo.
Сигналы, предоставленные издателем
Вы можете отправлять данные об аудитории и контекстные данные в виде сигналов, предоставленных издателем (PPS), в запросах объявлений. Сигналы, предоставленные издателем, позволяют использовать данные пользователей для повышения эффективности алгоритмической монетизации. Вы можете передавать характеристики аудитории участникам торгов в рамках всех типов транзакций, используя стандартные таксономии, без необходимости делиться идентификаторами пользователей. К характеристикам аудитории относятся данные о поведении и интересах (классификация аудиторий IAB 1.1) и контекстные данные (классификация контента IAB 2.2).
Kotlin
val extras = Bundle()
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6, 284))
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4, 5, 6))
val request =
AdManagerAdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()Java
Bundle extras = new Bundle();
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", new ArrayList<>(Arrays.asList(6, 284)));
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", new ArrayList<>(Arrays.asList(4, 5, 6)));
AdManagerAdRequest request =
new AdManagerAdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, extras).build();URL контента
Чтобы указать URL контента для объявлений с таргетингом на контент и обеспечения безопасности бренда, добавьте следующие строки:
Kotlin
val builder = AdManagerAdRequest.Builder()
builder.setContentUrl("https://www.example.com")
val request = builder.build()Java
AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
builder.setContentUrl("https://www.example.com");
AdManagerAdRequest request = builder.build();Безопасность бренда (бета-версия)
Приложения, в которых показывается динамический контент для разных аудиторий, могут предоставить короткий список URL:
Kotlin
val urls =
mutableListOf(
"https://www.mycontenturl1.com",
"https://www.mycontenturl2.com",
"https://www.mycontenturl3.com",
"https://www.mycontenturl4.com",
)
val requestWithContent = AdManagerAdRequest.Builder().setNeighboringContentUrls(urls).build()Java
List<String> urls =
Arrays.asList(
"https://www.mycontenturl1.com",
"https://www.mycontenturl2.com",
"https://www.mycontenturl3.com",
"https://www.mycontenturl4.com");
AdManagerAdRequest requestWithContent =
new AdManagerAdRequest.Builder().setNeighboringContentUrls(urls).build();.setNeighboringContentUrls() отличается от .setContentUrl() тем, что используется только для обеспечения безопасности бренда.