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

Выберите платформу: Android (бета-версия) Новоизбранный Android iOS

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

Предварительные требования

Настройте свое приложение для доступа к Ad Exchange.

Добавьте идентификатор вашего приложения Ad Manager ( указанный в пользовательском интерфейсе Ad Manager ) в файл AndroidManifest.xml вашего приложения с помощью тега <meta-data> с android:name="com.google.android.gms.ads.APPLICATION_ID" . Для android:value вставьте собственный идентификатор вашего приложения Ad Manager, заключенный в кавычки.

<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.

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

Загрузите объявление с Ad Exchange.

Вместо идентификатора рекламного блока можно использовать код веб-ресурса Ad Exchange с косой чертой в конце. Например, ca-mb-app-pub-5629679302779023/ .

В следующем примере код веб-ресурса Ad Exchange добавляется к запросу баннерной рекламы:

Котлин

val adRequest = BannerAdRequest.Builder("ca-mb-app-pub-5629679302779023/", AdSize.BANNER).build()

BannerAd.load(
  adRequest,
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      bannerAd = ad
      activity?.runOnUiThread {
        binding.bannerViewContainer.addView(ad.getView(requireActivity()))
      }
    }
  }
)

Java

BannerAdRequest adRequest = new BannerAdRequest.Builder("ca-mb-app-pub-5629679302779023/",
    AdSize.BANNER).build();

BannerAd.load(
    adRequest,
    new AdLoadCallback<BannerAd>() {
      @Override
      public void onAdLoaded(@NonNull BannerAd ad) {
        bannerAd = ad;
        runOnUiThread(
            () -> binding.bannerViewContainer.addView(ad.getView(MainActivity.this)));
      }
    });

Обратите внимание, что отсутствие завершающей косой черты в коде веб-ресурса Ad Exchange приводит к ошибке запроса объявления со следующим сообщением:

Invalid Request. Cannot determine request type. Is your ad unit id correct?

Вы также можете преобразовать код веб-ресурса Ad Exchange в рекламный блок. После этого используйте пользовательский интерфейс Ad Manager для генерации тега Ad Exchange и скопируйте его в свое приложение. Сгенерированный тег должен содержать код веб-ресурса Ad Exchange, за которым следуют идентификаторы дочерних рекламных блоков без завершающей косой черты, например: ca-mb-app-pub-5629679302779023/banner .

Вот и всё! Ваше приложение готово к загрузке и отображению баннерной рекламы из Ad Exchange.

Кроме того, вы можете использовать веб-ресурс Ad Exchange для загрузки и отображения других форматов объявлений с Ad Exchange, следуя соответствующим инструкциям:

(Только для одобренных европейских издателей) Добавить минимальные цены

Вы можете отправить запрос на добавление функции «Минимальные цены» .

После одобрения вы можете указать публичный или частный минимальный уровень цен в запросе на рекламу, используя параметры pubf и pvtf соответственно. В следующем примере кода замените "123" на минимальные цены в микросекундах и валюту вашей сети по умолчанию . Пример применения микросекунд: если ваша валюта по умолчанию — доллары США, ввод "6000000" эквивалентен 6 долларам.

Котлин

val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

val request = AdRequest.Builder("ca-mb-app-pub-5629679302779023/")
    .setGoogleExtrasBundle(extras)
    .build();

Java

Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

AdRequest request = new AdRequest.Builder("ca-mb-app-pub-5629679302779023/")
    .setGoogleExtrasBundle(extras)
    .build();