Начало работы

В этом руководстве показано, как интегрировать адаптер-посредник с вашим приложением для Android.

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

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

Впервые в медиации? Прочтите «Введение в медиацию» .

Для назначения ставок: 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.

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

Используйте баннерную рекламу с медиацией

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

Используйте нативную рекламу с медиацией

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

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

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

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

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