Google Mobile Ads SDK позволяет монетизировать приложения с помощью ресурса Ad Exchange. В этом руководстве рассказывается, как настроить приложения для работы со всеми форматами объявлений, поддерживаемыми Ad Exchange.
Требования
- Выполните предварительные требования.
- Настройте приложение для Google Mobile Ads SDK.
Как настроить приложение для доступа к Ad Exchange
Добавьте идентификатор приложения Менеджера рекламы (его можно найти в интерфейсе Менеджера рекламы) в файл AndroidManifest.xml приложения с помощью тега <meta-data> с параметром android:name="com.google.android.gms.ads.APPLICATION_ID". В поле android:value укажите собственный идентификатор приложения Менеджера рекламы, заключив его в кавычки.
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
Обратите внимание, что если не добавить тег <meta-data>, как показано выше, произойдет сбой с сообщением:
Missing application ID.
Затем вы можете инициализировать Google Mobile Ads SDK и выбрать формат объявлений для показа. В остальной части этого руководства для иллюстрации того, как загрузить объявление из Ad Exchange, используется формат баннера. Те же действия можно выполнить для любого формата объявлений, поддерживаемого Google Mobile Ads SDK.
Как загрузить объявление из Ad Exchange
Вместо идентификатора рекламного блока можно использовать код веб-ресурса Ad Exchange с косой чертой в конце. например ca-mb-app-pub-5629679302779023/ (2-е издание).
Например, чтобы загрузить баннер, разместите AdManagerAdView в макете для Activity следующим образом:
# main_activity.xml
...
<com.google.android.gms.ads.admanager.AdManagerAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adManagerAdView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-mb-app-pub-5629679302779023/">
</com.google.android.gms.ads.admanager.AdManagerAdView>
Вы также можете создать иерархию представлений программным способом:
Java
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");
// TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdManagerAdView(this)
adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"
// TODO: Add adView to your view hierarchy.
После того как вы добавите AdManagerAdView, вы сможете вызвать метод loadAd() в классе AdManagerAdView и настроить поведение объявления с помощью событий объявлений.
Обратите внимание, что, если не добавить в код ресурса Ad Exchange косую черту в конце, при запросе объявления возникнет ошибка со следующим сообщением:
Invalid Request. Cannot determine request type. Is your ad unit id correct?
Вы также можете преобразовать код веб-ресурса Ad Exchange в рекламный блок.
Затем в интерфейсе Менеджера рекламы создайте тег Ad Exchange и скопируйте его в приложение. В созданном теге должен быть код веб-ресурса Ad Exchange, за которым следуют идентификаторы дочерних рекламных блоков без косой черты в конце, например: ca-mb-app-pub-5629679302779023/banner.
Готово! Теперь ваше приложение готово к загрузке и показу медийных объявлений из Ad Exchange.
Кроме того, вы можете использовать веб-ресурс Ad Exchange, чтобы загружать и показывать другие форматы объявлений из Ad Exchange, следуя соответствующим инструкциям:
Как указывать минимальные цены (только для одобренных европейских издателей)
Вы можете запросить доступ к функции "Минимальные цены".
После одобрения вы сможете добавлять в запрос объявления общедоступную или частную минимальную цену, используя параметры pubf и pvtf соответственно. В следующем примере кода замените "123" на минимальные цены в микроединицах и валюту по умолчанию для вашей сети. Пример использования микро: если валюта по умолчанию – доллары США, то значение "6000000" эквивалентно 6 долларам США.
Java
Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
AdManagerAdRequest request = new AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
Kotlin
val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
val request = AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
.build();