Начать

Посредничество AdMob – это функция, которая позволяет показывать рекламу в ваших приложениях из нескольких источников, включая сеть AdMob, сторонние рекламные сети и кампании AdMob . Посредничество AdMob помогает максимизировать заполняемость и монетизацию, отправляя запросы объявлений в несколько сетей, чтобы вы могли найти наилучшую доступную сеть для показа рекламы. Тематическое исследование .

Предпосылки

Прежде чем вы сможете интегрировать посредничество для формата рекламы, вам необходимо интегрировать этот формат рекламы в свое приложение:

Новичок в медиации? Прочтите Обзор агрегатора AdMob .

Для ставок: Google Mobile Ads SDK 18.3.0или выше.

Инициализируйте Mobile Ads SDK

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

В приведенном ниже примере кода показано, как можно проверить статус инициализации каждого адаптера перед отправкой запроса объявления.

Джава

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.AdapterStatus;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
                Map<String, AdapterStatus> statusMap = initializationStatus.getAdapterStatusMap();
                for (String adapterClass : statusMap.keySet()) {
                    AdapterStatus status = statusMap.get(adapterClass);
                    Log.d("MyApp", String.format(
                            "Adapter name: %s, Description: %s, Latency: %d",
                            adapterClass, status.getDescription(), status.getLatency()));
                }

                // Start loading ads here...
            }
        });
    }
}

Котлин

import com.google.android.gms.ads.MobileAds

MobileAds.initialize(this) { initializationStatus ->
  val statusMap =
    initializationStatus.adapterStatusMap
  for (adapterClass in statusMap.keys) {
    val status = statusMap[adapterClass]
    Log.d("MyApp", String.format(
      "Adapter name: %s, Description: %s, Latency: %d",
      adapterClass, status!!.description, status.latency))
  }

  // Start loading ads here...
}

Проверьте, какой класс адаптера рекламной сети загрузил рекламу.

Вот пример кода, который регистрирует имя класса рекламной сети для рекламного баннера:

Джава

public void onAdLoaded() {
  Log.d("Banner adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}

Котлин

override fun onAdLoaded() {
  Log.d("Banner adapter class name:" + ad.responseInfo.mediationAdapterClassName)
}

Обратитесь к документации ResponseInfo по getMediationAdapterClassName() для получения подробной информации об этом методе.

Инициализируйте свой рекламный объект экземпляром Activity

В конструктор нового объекта объявления (например,AdView ),необходимо передать объект типа Context . Этот Context передается другим рекламным сетям при использовании посредничества. Некоторым рекламным сетям требуется более строгий Context , относящийся к типу Activity , и они могут не показывать рекламу без экземпляра Activity . Поэтому мы рекомендуем передавать экземпляр Activity при инициализации рекламных объектов, чтобы обеспечить согласованность работы с вашими рекламными сетями-посредниками.

Обязательно отключите обновление пользовательского интерфейса всех сторонних рекламных сетей для рекламных блоков баннеров, используемых в посредничестве AdMob . Это предотвратит двойное обновление, поскольку AdMob также запускает обновление в зависимости от частоты обновления рекламного блока вашего баннера.

Посредничество в рекламе с вознаграждением

Мы рекомендуем переопределить все значения вознаграждения по умолчанию, установив значения вознаграждения в пользовательском интерфейсе AdMob . Для этого установите флажок Применить ко всем сетям в группах посредничества , чтобы вознаграждение было одинаковым во всех сетях. Некоторые рекламные сети вообще не предоставляют значение или тип вознаграждения. Переопределяя значение вознаграждения, вознаграждение остается неизменным независимо от того, в какой рекламной сети была показана реклама.

Дополнительную информацию о настройке значений вознаграждения в пользовательском интерфейсе AdMob см. в разделе о создании рекламного блока с вознаграждением .

Посредничество в нативной рекламе

Ниже приведены некоторые рекомендации, которые следует учитывать при реализации собственного агрегатора.

Политика представления нативной рекламы
Каждая рекламная сеть имеет свои правила. При использовании посредничества важно помнить, что ваше приложение по-прежнему должно соблюдать правила сети-посредника, предоставившей рекламу.
Используйте loadAd() вместо loadAds()
В настоящее время метод loadAds() обслуживает только объявления Google. Вместо этого для опосредованных объявлений используйте loadAd() .

CCPA и GDPR

Если вам необходимо соблюдать Закон штата Калифорния о конфиденциальности потребителей (CCPA) или Общий регламент по защите данных (GDPR) , следуйте инструкциям в настройках CCPA или GDPR, чтобы добавить своих партнеров-посредников в AdMob Список рекламных партнеров конфиденциальности и обмена сообщениями CCPA или GDPR. . Невыполнение этого требования может привести к тому, что партнеры не смогут показывать рекламу в вашем приложении.

Узнайте больше о том , как включить обработку данных с ограничениями по закону CCPA и получить согласие GDPR с помощью SDK Google User Messaging Platform (UMP) .