AdMob Mediation — это функция, которая позволяет вам показывать рекламу в ваших приложениях из нескольких источников, включая сеть AdMob и сторонние источники рекламы, в одном месте. AdMob Mediation помогает максимизировать заполняемость и увеличить монетизацию, отправляя запросы на рекламу в несколько сетей, чтобы гарантировать, что вы найдете лучшую доступную сеть для показа рекламы. Пример из практики .
Предпосылки
Прежде чем интегрировать посредничество для формата рекламы, вам необходимо интегрировать этот формат рекламы в свое приложение:
- Рекламные баннеры
- Промежуточная реклама
- Нативная реклама
- Вознагражденные объявления
- Вознагражденные промежуточные объявления
Впервые пользуетесь медиацией? Прочитайте обзор медиации 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 Mediation
Обязательно отключите обновление во всех сторонних источниках рекламы для рекламных блоков баннеров, используемых в AdMob Mediation. Это предотвращает двойное обновление, поскольку AdMob также запускает обновление на основе частоты обновления вашего рекламного блока баннера.
Используйте нативную рекламу с AdMob Mediation
Ниже приведены некоторые рекомендации, которые следует учитывать при внедрении нативной рекламы в AdMob Mediation.
- Политика представления нативной рекламы
- Каждая рекламная сеть имеет свои собственные политики. При использовании медиации важно помнить, что ваше приложение все равно должно соблюд��ть политики о��осредованно�� сети, которая предоставила рекламу.
- Используйте
loadAd()
вместоloadAds()
- Метод
loadAds()
обслуживает только рекламу Google. Для опосредованной рекламы используйтеloadAd()
.
Законы США о конфиденциальности и GDPR
Если вам необходимо соблюдать законы о конфиденциальности в США или Общий регламент по защите данных (GDPR) , следуйте инструкциям в настройках правил штата США или настройках GDPR , чтобы добавить своих партнеров-посредников в список рекламных партнеров AdMob Privacy & messaging в штатах США или GDPR. Невыполнение этого требования может привести к тому, что партнеры не смогут показывать рекламу в вашем приложении.
Узнайте больше о включении ограниченной обработки данных (RDP) и получении согласия GDPR с помощью SDK Google User Messaging Platform (UMP) .