رویدادهای سفارشی به شما امکان میدهند میانجیگری آبشاری را برای یک شبکه تبلیغاتی که یک شبکه تبلیغاتی پشتیبانیشده نیست، اضافه کنید. شما این کار را با پیادهسازی یک آداپتور رویداد سفارشی برای شبکه تبلیغاتی که میخواهید ادغام کنید، انجام میدهید.
میتوانید یک نمونه کامل از پروژه رویداد سفارشی را در مخزن گیتهاب ما پیدا کنید.
قبل از اینکه بتوانید رویدادهای سفارشی ایجاد کنید، ابتدا باید یکی از قالبهای تبلیغاتی زیر را در برنامه خود ادغام کنید:
ابتدا باید یک رویداد سفارشی در رابط کاربری AdMob ایجاد شود. دستورالعملهای موجود در بخش «افزودن یک رویداد سفارشی» را ببینید.
شما باید موارد زیر را ارائه دهید:
- نام کلاس
نام کامل کلاسی که آداپتور رویداد سفارشی را پیادهسازی میکند - برای مثال،
SampleCustomEvent؛ یا اگر کلاس شما در Swift پیادهسازی شده است،MediationExample.SampleCustomEventSwift.اگر چندین هدف در پروژه خود دارید یا اگر نام پروژه با نام هدف متفاوت است، نام هدف الزامی است. با نام هدف، به این شکل خواهد بود:
appName_targetName.className. علاوه بر این، به یاد داشته باشید که هر کاراکتر غیرحرفی-عددی مانند خط تیره را با زیرخط جایگزین کنید. مثال .- برچسب
یک نام منحصر به فرد که منبع تبلیغ را تعریف میکند.
- پارامتر
یک آرگومان رشتهای اختیاری که به آداپتور رویداد سفارشی شما ارسال میشود.
اولین قدم برای ایجاد یک رویداد سفارشی، پیادهسازی پروتکل GADMediationAdapter است، همانطور که در مثال ما توسط کلاس SampleCustomEvent نشان داده شده است.
مسئولیت دریافت پیامها از AdMob و تفویض مسئولیت ایجاد قالب صحیح تبلیغات بر عهده این کلاس است.
وقتی Google Mobile Ads 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 شخص ثالثی که رویداد سفارشی با آن ارتباط برقرار میکند را به Google Mobile Ads 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;
}
برای درخواست آگهی، به دستورالعملهای مربوط به قالب آگهی مراجعه کنید: