Начать

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

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

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

Впервые в медиации? Прочтите обзор медиации AdMob .

Для назначения ставок: Google Mobile Ads SDK 18.3.0 или более поздней версии.

Инициализируйте 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);

        new Thread(
                () ->
                    // Initialize the Google Mobile Ads SDK on a background thread.
                    MobileAds.initialize(
                        this,
                        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...
                        }))
            .start();
    }
}

Котлин

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) { 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() .

Законы о конфиденциальности штатов США и GDPR

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

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