Предварительные условия
В этом руководстве по внедрению предполагается, что вы знакомы со следующим:
- Протокол реализации объявлений в пользовательском поиске 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-адрес используется для мониторинга мошенничества и злоупотреблений, а также для определения приблизительного местоположения пользователя. Затем используется приблизительное местоположение, чтобы убедиться, что показываемая реклама соответствует местным нормам, а также для показа рекламы, соответствующей приблизительному географическому положению пользователя. |
Активность приложения
| Краткое содержание:
Ваше приложение предоставляет нам запрос пользователя, чтобы мы могли возвращать поисковые объявления, соответствующие ключевому слову. Мы измеряем просмотры и взаимодействие (нажатия) с возвращаемой рекламой. |
Диагностика | Краткое содержание:
SDK измеряет задержку рендеринга рекламы, чтобы обеспечить возможность внедрения и измерения улучшений продукта. Мы также отправляем отчеты о сбоях/ошибках и иногда добавляем другие инструменты, необходимые для понимания того, как издатели используют функциональность. |
Устройство или другие идентификаторы | Краткое содержание:
Идентификатор устройства используется для мониторинга мошенничества и злоупотреблений, а также для измерения эффективности рекламы. |