رویدادهای سفارشی به شما امکان میدهند میانجیگری آبشاری را برای یک شبکه تبلیغاتی که یک شبکه تبلیغاتی پشتیبانیشده نیست، اضافه کنید. شما این کار را با پیادهسازی یک آداپتور رویداد سفارشی برای شبکه تبلیغاتی که میخواهید ادغام کنید، انجام میدهید.
میتوانید یک نمونه کامل از پروژه رویداد سفارشی را در مخزن گیتهاب ما پیدا کنید.
پیشنیازها
قبل از اینکه بتوانید رویدادهای سفارشی ایجاد کنید، ابتدا باید یکی از قالبهای تبلیغاتی زیر را در برنامه خود ادغام کنید:
ایجاد یک رویداد سفارشی در رابط کاربری
ابتدا باید یک رویداد سفارشی در رابط کاربری AdMob ایجاد شود. دستورالعملهای موجود در بخش «افزودن یک رویداد سفارشی» را ببینید.
شما باید موارد زیر را ارائه دهید:
- نام کلاس
نام کامل کلاسی که آداپتور رویداد سفارشی را پیادهسازی میکند - برای مثال،
SampleCustomEvent؛ یا اگر کلاس شما در Swift پیادهسازی شده است،MediationExample.SampleCustomEventSwift.اگر چندین هدف در پروژه خود دارید یا اگر نام پروژه با نام هدف متفاوت است، نام هدف الزامی است. با نام هدف، به این شکل خواهد بود:
appName_targetName.className. علاوه بر این، به یاد داشته باشید که هر کاراکتر غیرحرفی-عددی مانند خط تیره را با زیرخط جایگزین کنید. مثال .- برچسب
یک نام منحصر به فرد که منبع تبلیغ را تعریف میکند.
- پارامتر
یک آرگومان رشتهای اختیاری که به آداپتور رویداد سفارشی شما ارسال میشود.
پیادهسازی GADMediaAdapter
اولین قدم برای ایجاد یک رویداد سفارشی، پیادهسازی پروتکل GADMediationAdapter است، همانطور که در مثال ما توسط کلاس SampleCustomEvent نشان داده شده است.
مسئولیت دریافت پیامها از AdMob و تفویض مسئولیت ایجاد قالب صحیح تبلیغات بر عهده این کلاس است.
مقداردهی اولیه آداپتور
وقتی SDK تبلیغات موبایلی گوگل راهاندازی میشود، setUpWithConfiguration:completionHandler: روی تمام آداپتورهای شخص ثالث پشتیبانیشده و رویدادهای سفارشی پیکربندیشده برای برنامه در رابط کاربری AdMob فراخوانی میشود. از این روش برای انجام هرگونه تنظیم یا مقداردهی اولیه لازم روی SDK شخص ثالث مورد نیاز برای رویداد سفارشی خود استفاده کنید.
سویفت
import GoogleMobileAds
class SampleCustomEvent: NSObject, MediationAdapter {
static func setUpWith(
_ configuration: MediationServerConfiguration,
completionHandler: @escaping GADMediationAdapterSetUpCompletionBlock
) {
// 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.
completionHandler(nil)
}
}
هدف-سی
#import "SampleCustomEvent.h"
@implementation SampleCustomEvent
+ (void)setUpWithConfiguration:(nonnull GADMediationServerConfiguration *)configuration
completionHandler:(nonnull GADMediationAdapterSetUpCompletionBlock)completionHandler {
// This is where you initialize the SDK that this custom event is built
// for. Upon finishing the SDK initialization, call the completion handler
// with success.
completionHandler(nil);
}
گزارش شماره نسخهها
همه رویدادهای سفارشی باید هم نسخه آداپتور رویداد سفارشی و هم نسخه SDK شخص ثالثی که رویداد سفارشی با آن ارتباط برقرار میکند را به SDK تبلیغات موبایل گوگل گزارش دهند. نسخهها به صورت اشیاء GADVersionNumber گزارش میشوند:
سویفت
static func adSDKVersion() -> VersionNumber {
let versionComponents = String(SampleSDKVersion).components(
separatedBy: ".")
if versionComponents.count >= 3 {
let majorVersion = Int(versionComponents[0]) ?? 0
let minorVersion = Int(versionComponents[1]) ?? 0
let patchVersion = Int(versionComponents[2]) ?? 0
return VersionNumber(
majorVersion: majorVersion, minorVersion: minorVersion, patchVersion: patchVersion)
}
return VersionNumber()
}
static func adapterVersion() -> VersionNumber {
let versionComponents = String(SampleAdSDK.SampleAdSDKVersionNumber).components(
separatedBy: ".")
var version = VersionNumber()
if versionComponents.count == 4 {
version.majorVersion = Int(versionComponents[0]) ?? 0
version.minorVersion = Int(versionComponents[1]) ?? 0
version.patchVersion = Int(versionComponents[2]) * 100 + Int(versionComponents[3])
}
return version
}
هدف-سی
+ (GADVersionNumber)adSDKVersion {
NSArray *versionComponents =
[SampleSDKVersion componentsSeparatedByString:@"."];
GADVersionNumber version = {0};
if (versionComponents.count >= 3) {
version.majorVersion = [versionComponents[0] integerValue];
version.minorVersion = [versionComponents[1] integerValue];
version.patchVersion = [versionComponents[2] integerValue];
}
return version;
}
+ (GADVersionNumber)adapterVersion {
NSArray *versionComponents =
[SampleCustomEventAdapterVersion componentsSeparatedByString:@"."];
GADVersionNumber version = {0};
if (versionComponents.count == 4) {
version.majorVersion = [versionComponents[0] integerValue];
version.minorVersion = [versionComponents[1] integerValue];
version.patchVersion = [versionComponents[2] integerValue] * 100 +
[versionComponents[3] integerValue];
}
return version;
}
درخواست تبلیغ
برای درخواست آگهی، به دستورالعملهای مربوط به قالب آگهی مراجعه کنید: