В этом руководстве объясняется, как предоставить таргетинговую информацию в Google Mobile Ads SDK.
Предпосылки
- Заполните руководство по началу работы .
ЗапросКонфигурации
RequestConfiguration
собирает информацию о таргетинге, применяемую глобально к каждому запросу объявления. Доступные теги таргетинга см. в документации RequestConfiguration.Builder
.
Создайте объект RequestConfiguration
с необходимыми тегами таргетинга с помощью его конструктора, затем задайте конфигурацию, вызвав MobileAds.setRequestConfiguration()
.
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Чтобы применить теги таргетинга из первого запроса рекламы, укажите конфигурацию запроса во время инициализации SDK:
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
CoroutineScope(Dispatchers.IO).launch {
// Initialize Google Mobile Ads SDK (beta) on a background thread.
MobileAds.initialize(
this@MainActivity,
InitializationConfig
// Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
.Builder("SAMPLE_APP_ID")
.setRequestConfiguration(requestConfiguration)
.build()
) {
// Adapter initialization is complete.
}
// Other methods on MobileAds can now be called.
}
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
// Set your targeting tags.
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build();
new Thread(
() -> {
// Initialize Google Mobile Ads SDK (beta) on a background thread.
MobileAds.initialize(
this,
// Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
new InitializationConfig
.Builder("SAMPLE_APP_ID")
.setRequestConfiguration(requestConfiguration)
.build(),
initializationStatus -> {
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
Детская среда
В соответствии с Законом о защите конфиденциальности детей в Интернете (COPPA) существует настройка «Тег для детского контента». Устанавливая эту настройку, вы подтверждаете точность данного уведомления и полномочия действовать от имени владельца приложения. Вы понимаете, что злоупотребление этой настройкой может привести к удалению вашего аккаунта Google.
Как разработчик приложения, вы можете указать, хотите ли вы, чтобы Google считал ваш контент предназначенным для детей, при запросе рекламы. Если вы укажете, что хотите, чтобы Google считал ваш контент предназначенным для детей, мы предпримем шаги для отключения рекламы по принципу «предназначен для детей» и ремаркетинга в этом запросе рекламы.
Вы можете применить настройку, ориентированную на ребенка, с помощью setTagForChildDirectedTreatment()
:
Вызовите
setTagForChildDirectedTreatment
сTAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE
чтобы указать, что ваш контент должен рассматриваться как предназначенный для детей в соответствии с COPPA. Это предотвращает передачу рекламного идентификатора Android (AAID) .Вызовите
setTagForChildDirectedTreatment
сTAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE
чтобы указать, что вы не хотите, чтобы ваш контент рассматривался как предназначенный для детей в соответствии с требованиями COPPA.Вызовите
setTagForChildDirectedTreatment
сTAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED
если вы не хотите указывать, как следует обрабатывать ваш контент с учетом COPPA в запросах объявлений.
В следующем примере указано, что вы хотите, чтобы ваш контент рассматривался как предназначенный для детей в соответствии с требованиями COPPA:
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
.setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setTagForChildDirectedTreatment(TagForChildDirectedTreatment.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 в свои рекламные запросы:
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
.setTagForUnderAgeOfConsent(RequestConfiguration.TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setTagForUnderAgeOfConsent(TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Теги, включающие настройку Child-directed и setTagForUnderAgeOfConsent()
не должны одновременно иметь значение true
. В противном случае приоритет имеет настройка Child-directed.
Фильтрация рекламного контента
Чтобы соответствовать Политике Google Play в отношении ненадлежащей рекламы , которая включает в себя связанные с ней предложения в рекламе, все объявления и связанные с ними предложения, показываемые в вашем приложении, должны соответствовать рейтингу контента вашего приложения, даже если сам контент в остальном соответствует политикам Google Play.
Такие инструменты, как максимальный рейтинг рекламного контента, помогут вам лучше контролировать содержание рекламы, показываемой вашим пользователям. Вы можете установить максимальный рейтинг контента, чтобы обеспечить соответствие правилам платформы.
Приложения могут устанавливать максимальный рейтинг рекламного контента для своих запросов с помощью метода setMaxAdContentRating
. Объявления AdMob, возвращаемые при настройке этого метода, имеют рейтинг контента на уровне или ниже этого уровня. Возможные значения для этого сетевого дополнения основаны на классификации меток цифрового контента и должны быть одной из следующих строк:
-
MAX_AD_CONTENT_RATING_G
-
MAX_AD_CONTENT_RATING_PG
-
MAX_AD_CONTENT_RATING_T
-
MAX_AD_CONTENT_RATING_MA
Следующий код настраивает объект RequestConfiguration
, чтобы указать, что возвращаемое рекламное содержимое должно соответствовать обозначению метки цифрового содержимого не выше G
:
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
.setMaxAdContentRating(RequestConfiguration.MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Узнайте больше об установке максимального рейтинга контента для каждого запроса рекламы .
Обработка конфиденциальности издателя (бета)
API обработки конфиденциальности издателя (PPT) — это дополнительный инструмент, позволяющий приложениям указывать, следует ли отключать персонализацию рекламы для всех запросов на рекламу, с помощью метода setPublisherPrivacyPersonalizationState()
. При использовании этой функции параметр обработки конфиденциальности издателя (PPT) включается во все будущие запросы рекламы до конца сеанса.
По умолчанию запросы к Google показывают персонализированную рекламу. Следующий код отключает персонализацию рекламы для всех запросов:
Котлин
val requestConfiguration = RequestConfiguration
.Builder()
.setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
Ява
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
.build();
MobileAds.setRequestConfiguration(requestConfiguration);
Запрос объявления
Объект AdRequest
собирает таргетинговую информацию для отправки вместе с запросом рекламы.
Добавить сетевые дополнения
Сетевые дополнения — это дополнительные сведения, отправляемые вместе с запросом на рекламу и относящиеся к одному источнику рекламы.
Следующий фрагмент кода задает дополнительный параметр key collapsible
со значением bottom
для Google:
Котлин
val extras = Bundle()
extras.putString("collapsible", "bottom")
val adRequest =
NativeAdRequest.Builder("AD_UNIT_ID", listOf(NativeAd.NativeAdType.NATIVE))
.setGoogleExtrasBundle(extras)
.build()
NativeAdLoader.load(adRequest, adCallback)
Ява
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
NativeAdRequest adRequest =
new NativeAdRequest.Builder("AD_UNIT_ID", Arrays.asList(NativeAd.NativeAdType.NATIVE))
.setGoogleExtrasBundle(extras)
.build();
NativeAdLoader.load(adRequest, adCallback);
Индивидуальный таргетинг
Вы можете передавать пользовательские пары «ключ-значение» для таргетинга кампаний (позиций) Google Ad Manager. В следующем примере пользовательская пара «ключ-значение» передаётся в запросе объявления:
Котлин
// Example: Pass custom targeting "age=25".
val newRequest = AdRequest.Builder("AD_UNIT_ID")
.putCustomTargeting("age", "25")
.build()
Ява
// Example: Pass custom targeting "age=25".
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
.putCustomTargeting("age", "25")
.build();
Вы можете передать несколько значений ключа в виде списка строк. Например, чтобы выбрать пользователей в возрасте около двадцати пяти лет, а не только 25 лет.
Котлин
.putCustomTargeting("age", listOf("24", "25", "26"))
Ява
.putCustomTargeting("age", Arrays.asList("24", "25", "26"));
Исключения категории
Вы можете добавить уровень исключения категории на уровне слота к запросу, используя метод addCategoryExclusion()
:
Котлин
// Example: Exclude "automobile" and "boat" categories.
val newRequest = AdRequest.Builder("AD_UNIT_ID")
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build()
Ява
// Example: Exclude "automobile" and "boat" categories.
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
.addCategoryExclusion("automobile")
.addCategoryExclusion("boat")
.build();
Ознакомьтесь с примером исключений категорий в Ad Manager, чтобы узнать, как реализовать исключения категорий в демонстрационном приложении API для Android.
Идентификаторы, предоставленные издателем
Вы можете установить предоставленный издателем идентификатор (PPID) для использования при ограничении частоты показов, сегментации и таргетинге аудитории, последовательной ротации объявлений и других элементах управления показом рекламы на основе аудитории на разных устройствах.
Вот пример настройки PPID:
Котлин
val adRequest = AdRequest.Builder("AD_UNIT_ID")
.setPublisherProvidedId("AB123456789")
.build()
Ява
AdRequest adRequest = new AdRequest.Builder("AD_UNIT_ID")
.setPublisherProvidedId("AB123456789")
.build();
Ознакомьтесь с примером PPID Менеджера объявлений для реализации идентификаторов, предоставляемых издателем (PPID), в демонстрационном приложении API для Android.
Сигналы, предоставленные издателем
Вы можете отправлять данные об аудитории и контекстные данные в виде сигналов, предоставляемых издателем (PPS), в запросах на рекламу. С помощью PPS вы можете использовать пользовательские данные для улучшения программной монетизации, передавая характеристики своей аудитории участникам торгов во всех типах транзакций , используя стандартные таксономии, без необходимости предоставлять идентификаторы пользователей. Характеристики вашей аудитории могут включать поведенческие данные и данные, основанные на интересах ( таксономия аудитории IAB 1.1 ), а также контекстные данные ( таксономия контента IAB 2.2 ).
Котлин
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 = AdRequest.Builder("AD_UNIT_ID")
.setGoogleExtrasBundle(extras)
.build()
Ява
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", arrayListOf(6,284));
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6));
AdRequest request = new AdRequest.Builder("AD_UNIT_ID")
.setGoogleExtrasBundle(extras)
.build();
URL-адрес контента
Чтобы предоставить URL-адрес контента для рекламы, ориентированной на контент, и безопасности бренда, добавьте следующее:
Котлин
val builder = AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com")
val request = builder.build()
Ява
AdRequest.Builder builder = new AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com");
AdRequest request = builder.build();
Безопасность бренда (бета)
Приложения, отображающие динамический контент, предназначенный для различной аудитории, могут предоставить краткий список URL-адресов:
Котлин
val urls = mutableListOf("https://www.mycontenturl1.com", "https://www.mycontenturl2.com",
"https://www.mycontenturl3.com", "https://www.mycontenturl4.com")
val requestWithContent = AdRequest.Builder("AD_UNIT_ID")
.setNeighboringContentUrls(urls)
.build()
Ява
ArrayList<String> urls = new ArrayList<String>();
urls.add("https://www.mycontenturl1.com");
urls.add("https://www.mycontenturl2.com");
urls.add("https://www.mycontenturl3.com");
urls.add("https://www.mycontenturl4.com");
AdRequest requestWithContent = new AdRequest.Builder("AD_UNIT_ID")
.setNeighboringContentUrls(urls)
.build();
.setNeighboringContentUrls()
отличается от .setContentUrl()
тем, что он используется только для безопасности бренда.