Предпосылки
В этом руководстве по внедрению предполагается, что вы знакомы со следующим:
- Протокол реализации объявлений пользовательского поиска AdSense для поиска (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
. Чтобы правильно запрашивать объявления SearchAdView
, объект 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; Подробности см. в Справочнике по объявлениям в пользовательском поиске AdSense для поиска.
// 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()
, см. в Справочнике по объявлениям пользовательского поиска AdSense для поиска.
Параметр ключа должен иметь префикс «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 анонсировала новый раздел «Безопасность данных» , который представляет собой предоставленное разработчиком раскрытие информации о методах сбора, обмена и обеспечения безопасности приложения.
Эта страница может помочь вам выполнить требования к раскрытию данных в отношении использования вами собственного SDK AFS (также применимо к использованию AdSense для покупок). На этой странице вы можете найти информацию о том, как наши SDK обрабатывают данные конечных пользователей.
Мы стремимся быть максимально прозрачными в поддержке вас; тем не менее, как разработчик приложения, вы несете единоличную ответственность за принятие решения о том, как реагировать на форму раздела безопасности данных Google Play в отношении сбора данных о конечных пользователях, обмена ими и методов обеспечения безопасности вашего приложения.
Как использовать информацию на этой странице
На этой странице перечислены данные о конечных пользователях, собранные только последней версией SDK.
Чтобы завершить раскрытие данных, вы можете использовать руководство Android по типам данных , которое поможет вам определить, какой тип данных лучше всего описывает собранные данные. При раскрытии данных обязательно учитывайте, как ваше конкретное приложение делится и использует собранные данные.
Тип данных SDK получает доступ и собирает
Пакеты:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
Данные собираются автоматически
AFS SDK автоматически собирает следующие данные. Все данные передаются с устройства в Google для показа рекламы, и все данные при передаче шифруются. Личная информация пользователя никогда не собирается, если только ваше приложение не отправило ее в пользовательском запросе.
Данные | Эти данные собираются для следующих целей... |
---|---|
айпи адрес | Резюме:
IP-адрес используется для мониторинга мошенничества и злоупотреблений, а также используется для определения приблизительного местоположения пользователя. Приблизительное местоположение затем используется для обеспечения того, чтобы показываемая реклама соответствовала местному законодательству, а также для показа рекламы, соответствующей приблизительному географическому местоположению пользователя. |
Действия в приложении
| Резюме:
Ваше приложение предоставляет нам запрос пользователя, чтобы мы могли вернуть поисковые объявления, релевантные ключевому слову. Мы измеряем просмотры и взаимодействие (нажатия) с возвращаемыми объявлениями. |
Диагностика | Резюме:
SDK измеряет задержку рендеринга для рекламы, чтобы можно было реализовать и измерить улучшения продукта. Мы также отправляем отчеты о сбоях и ошибках и время от времени добавляем другие инструменты, необходимые для понимания того, как издатели используют функциональные возможности. |
Устройство или другие идентификаторы | Резюме:
Идентификатор устройства используется для мониторинга мошенничества и злоупотреблений, а также для измерения эффективности рекламы. |