Настройте прямой доступ к Ad Exchange

Выберите платформу: Android iOS

Google Mobile Ads SDK поддерживает монетизацию ваших приложений с помощью ресурса Ad Exchange . В этом руководстве показано, как настроить приложения для всех форматов рекламы, поддерживаемых Ad Exchange.

Предпосылки

Настройте свое приложение для доступа к 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/ .

Например, чтобы загрузить рекламный баннер, разместите 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>

В качестве альтернативы вы можете создать иерархию представлений программно:

Ява

AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");

// TODO: Add adView to your view hierarchy.

Котлин

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 долларам США.

Ява

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();

Котлин

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();