Предварительные условия
В этом руководстве по внедрению предполагается, что вы знакомы со следующим:
- Протокол реализации объявлений в пользовательском поиске AFS (CSA)
- Разработка приложений для Android
- Связывание Google Mobile Ads SDK для Android (теперь часть сервисов Google Play) с проектом Android Studio. Требуется версия 9.0.0 сервисов Google Play.
Классы
Для показа объявлений AFSMA (также известных как поисковые объявления с динамической высотой) в вашем приложении реализуйте следующие классы:
- Этот класс наследуется от класса Android
ViewGroup
и отображает рекламу AFSMA.SearchAdView
выполняет запрос объявления с помощьюDynamicHeightSearchAdRequest
и отображает возвращенные объявления.SearchAdView
следует добавить в любую из существующих групп представлений приложения. -
SearchAdView
должен быть создан с учетом контекста, в котором выполняетсяSearchAdView
, обычноActivity
. - После создания экземпляра
SearchAdView
необходимо вызвать методsetAdSize()
с помощьюAdSize.SEARCH
, чтобы запросить объявления AFSMA. Другие значения перечисления будут запрашивать рекламу, несовместимую с AFS для мобильных приложений. - Вызовите метод
setAdUnitId()
для этого объекта, используя код вашего свойства.
DynamicHeightSearchAdRequest.Builder
- Этот класс инкапсулирует параметры запроса объявления. Это аналогично настройке параметров в объектах запроса объявлений JavaScript (параметры страницы, параметры блоков) для настольных компьютеров и мобильных сайтов AFS.
- Установите параметры с помощью соответствующих установщиков (другими словами, вызовите
setQuery()
, чтобы установить параметр запроса).
Пример реализации
В приведенном ниже примере показано использование Activity
для создания SearchAdView
как подпредставления ViewGroup
. Чтобы правильно запросить объявления AFSMA, объект SearchAdView
должен вызвать метод setAdSize()
с AdSize.SEARCH
.
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
В рамках того же Activity
создайте DynamicHeightSearchAdRequest.Builder
, который определяет параметры объявления, которое будет отображаться в SearchAdView
. Объявления AFSMA настраиваются так же, как и объявления AFS в пользовательском поиске; Подробности см. в Справочнике по объявлениям в пользовательском поиске AFS.
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
Другие параметры настройки возможны путем установки дополнительных свойств объекта DynamicHeightSearchAdRequest.Builder
.
Чтобы сделать запрос объявления, вызовите метод loadAd()
с объектом DynamicHeightSearchAdRequest.Builder
из объекта SearchAdView
:
searchAdView.loadAd(builder.build());
Расширенные параметры
Большинство параметров запроса объявления можно задать с помощью методов установки объекта DynamicHeightSearchAdRequest.Builder
. Любые параметры, у которых нет метода установки в DynamicHeightSearchAdRequest.Builder
могут быть установлены с использованием пар ключ-значение с помощью метода setAdvancedOptionValue()
. Полный список настроек, которые можно задать с помощью метода setAdvancedOptionValue()
, см. в Справочнике по объявлениям в пользовательском поиске AFS.
Ключевой параметр должен иметь префикс «csa_», чтобы свойство было установлено правильно.
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
Если вы используете метод установки параметра и устанавливаете его с помощью setAdvancedOptionValue
, второй вызов переопределит значение из первого вызова.
Исследование ошибок
SearchAdView
( searchAdView
здесь) содержит метод setAdListener()
, который поможет вам исследовать ошибки. В рамках той же Activity
:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
Константы, используемые в методе обратного вызова onAdFailedToLoad()
описаны в справочнике по API .
Подготовьтесь к требованиям Google Play по раскрытию данных.
В мае 2021 года Google Play анонсировал новый раздел «Безопасность данных» , который представляет собой предоставленную разработчиками информацию о методах сбора, обмена и безопасности данных приложения.
Эта страница поможет вам выполнить требования по раскрытию данных при использовании вами AFS Native SDK (также применимо к использованию AdSense для покупок). На этой странице вы можете найти информацию о том, обрабатывают ли наши SDK данные конечных пользователей и каким образом.
Мы стремимся быть максимально прозрачными в поддержке вас; однако, как разработчик приложения, вы несете единоличную ответственность за принятие решения о том, как реагировать на форму раздела безопасности данных Google Play, касающуюся сбора, обмена и обеспечения безопасности данных вашего приложения.
Как использовать информацию на этой странице
На этой странице перечислены данные конечных пользователей, собранные только с помощью последней версии SDK.
Чтобы завершить раскрытие данных, вы можете использовать руководство Android по типам данных, которое поможет вам определить, какой тип данных лучше всего описывает собранные данные. При раскрытии данных обязательно также учитывайте, как ваше конкретное приложение передает и использует собранные данные.
Тип данных SDK получает доступ и собирает
Пакеты:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
Данные собираются автоматически
AFS SDK автоматически собирает следующие данные. Все данные передаются с устройства в Google для показа рекламы, и все данные при передаче шифруются. Личная информация пользователя никогда не собирается, если только она не отправлена по пользовательскому запросу вашим приложением.
Данные | Эти данные собираются для следующих целей... |
---|---|
IP-адрес | Краткое содержание:
IP-адрес используется для мониторинга мошенничества и злоупотреблений, а также для определения приблизительного местоположения пользователя. Затем используется приблизительное местоположение, чтобы гарантировать, что показываемая реклама соответствует местным нормам, а также чтобы показывать рекламу, соответствующую примерному географическому положению пользователя. |
Активность приложения
| Краткое содержание:
Ваше приложение предоставляет нам запрос пользователя, чтобы мы могли возвращать поисковые объявления, соответствующие ключевому слову. Мы измеряем просмотры и взаимодействие (нажатия) с возвращаемой рекламой. |
Диагностика | Краткое содержание:
SDK измеряет задержку рендеринга рекламы, чтобы обеспечить возможность внедрения и измерения улучшений продукта. Мы также отправляем отчеты о сбоях/ошибках и иногда добавляем другие инструменты, необходимые для понимания того, как издатели используют функциональность. |
Устройство или другие идентификаторы | Краткое содержание:
Идентификатор устройства используется для мониторинга мошенничества и злоупотреблений, а также для измерения эффективности рекламы. |