رویدادهای سفارشی به شما امکان میدهند میانجیگری آبشار را برای یک شبکه تبلیغاتی که یک شبکه تبلیغاتی پشتیبانیشده نیست اضافه کنید. این کار را با پیاده سازی یک آداپتور رویداد سفارشی برای شبکه تبلیغاتی که می خواهید ادغام کنید، انجام می دهید.
می توانید نمونه کامل پروژه رویداد سفارشی را در مخزن GitHub ما بیابید.
پیش نیازها
قبل از اینکه بتوانید رویدادهای سفارشی ایجاد کنید، ابتدا باید یکی از قالب های تبلیغاتی زیر را در برنامه خود ادغام کنید:
یک رویداد سفارشی در UI ایجاد کنید
ابتدا باید یک رویداد سفارشی در رابط کاربری AdMob ایجاد شود. دستورالعملها را در افزودن رویداد سفارشی ببینید.
شما باید موارد زیر را تهیه کنید:
- نام کلاس
نام کاملاً واجد شرایط کلاسی که آداپتور رویداد سفارشی را پیادهسازی میکند - برای مثال،
com.google.ads.mediation.sample.customevent.SampleCustomEvent
. به عنوان بهترین روش، توصیه میکنیم از یک کلاس آداپتور برای همه قالبهای تبلیغات رویداد سفارشی استفاده کنید.- برچسب بزنید
یک نام منحصر به فرد که منبع تبلیغ را تعریف می کند.
- پارامتر
یک آرگومان رشته اختیاری به آداپتور رویداد سفارشی شما ارسال می شود.
آداپتور را راه اندازی کنید
هنگامی که Google Mobile Ads SDK مقداردهی اولیه میشود، initialize()
روی همه آداپتورهای شخص ثالث پشتیبانیشده و رویدادهای سفارشی پیکربندیشده برای برنامه در رابط کاربری AdMob فراخوانی میشود. از این روش برای انجام هرگونه تنظیم یا مقداردهی اولیه لازم در SDK شخص ثالث مورد نیاز برای رویداد سفارشی خود استفاده کنید.
جاوا
package com.google.ads.mediation.sample.customevent;
import com.google.android.gms.ads.mediation.Adapter;
import com.google.android.gms.ads.mediation.InitializationCompleteCallback;
import com.google.android.gms.ads.mediation.MediationConfiguration;
public class SampleAdNetworkCustomEvent extends Adapter {
private static final String SAMPLE_AD_UNIT_KEY = "parameter";
@Override
public void initialize(Context context,
InitializationCompleteCallback initializationCompleteCallback,
List<MediationConfiguration> mediationConfigurations) {
// This is where you will initialize the SDK that this custom
// event is built for. Upon finishing the SDK initialization,
// call the completion handler with success.
initializationCompleteCallback.onInitializationSucceeded();
}
}
کاتلین
package com.google.ads.mediation.sample.customevent
import com.google.android.gms.ads.mediation.Adapter
import com.google.android.gms.ads.mediation.InitializationCompleteCallback
import com.google.android.gms.ads.mediation.MediationConfiguration
class SampleCustomEvent : Adapter() {
private val SAMPLE_AD_UNIT_KEY = "parameter"
override fun initialize(
context: Context,
initializationCompleteCallback: InitializationCompleteCallback,
mediationConfigurations: List<MediationConfiguration>
) {
// This is where you will initialize the SDK that this custom
// event is built for. Upon finishing the SDK initialization,
// call the completion handler with success.
initializationCompleteCallback.onInitializationSucceeded()
}
}
شماره های نسخه را گزارش کنید
همه رویدادهای سفارشی باید به Google Mobile Ads SDK هم نسخه خود آداپتور رویداد سفارشی و هم نسخه SDK شخص ثالث را که رابط رویداد سفارشی با آن ارتباط دارد، گزارش دهند. نسخه ها به عنوان اشیاء VersionInfo
گزارش می شوند:
جاوا
package com.google.ads.mediation.sample.customevent;
public class SampleCustomEvent extends Adapter {
@Override
public VersionInfo getVersionInfo() {
String versionString = new VersionInfo(1, 2, 3);
String[] splits = versionString.split("\\.");
if (splits.length >= 4) {
int major = Integer.parseInt(splits[0]);
int minor = Integer.parseInt(splits[1]);
int micro = Integer.parseInt(splits[2]) * 100 + Integer.parseInt(splits[3]);
return new VersionInfo(major, minor, micro);
}
return new VersionInfo(0, 0, 0);
}
@Override
public VersionInfo getSDKVersionInfo() {
String versionString = SampleAdRequest.getSDKVersion();
String[] splits = versionString.split("\\.");
if (splits.length >= 3) {
int major = Integer.parseInt(splits[0]);
int minor = Integer.parseInt(splits[1]);
int micro = Integer.parseInt(splits[2]);
return new VersionInfo(major, minor, micro);
}
return new VersionInfo(0, 0, 0);
}
}
کاتلین
package com.google.ads.mediation.sample.customevent
class SampleCustomEvent : Adapter() {
override fun getVersionInfo(): VersionInfo {
val versionString = VersionInfo(1,2,3).toString()
val splits: List<String> = versionString.split("\\.")
if (splits.count() >= 4) {
val major = splits[0].toInt()
val minor = splits[1].toInt()
val micro = (splits[2].toInt() * 100) + splits[3].toInt()
return VersionInfo(major, minor, micro)
}
return VersionInfo(0, 0, 0)
}
override fun getSDKVersionInfo(): VersionInfo {
val versionString = VersionInfo(1,2,3).toString()
val splits: List<String> = versionString.split("\\.")
if (splits.count() >= 3) {
val major = splits[0].toInt()
val minor = splits[1].toInt()
val micro = splits[2].toInt()
return VersionInfo(major, minor, micro)
}
return VersionInfo(0, 0, 0)
}
}
درخواست آگهی
برای درخواست آگهی، به دستورالعملهای مربوط به قالب آگهی مراجعه کنید: