Специальные события позволяют настроить каскадную медиацию для неподдерживаемой рекламной сети. Для этого необходимо реализовать адаптер специальных событий для рекламной сети, которую вы хотите интегрировать.
Полный пример проекта со специальными событиями можно найти в нашем репозитории GitHub.
Требования
Прежде чем создавать специальные события, необходимо интегрировать в приложение один из следующих форматов объявлений:
Как создать специальное событие в интерфейсе
Сначала нужно создать специальное событие в интерфейсе AdMob. Следуйте инструкциям в статье Как добавить специальное событие.
Вам потребуется указать:
- Название класса
Полное название класса, реализующего адаптер специального события, например
SampleCustomEvent. Если класс реализован на Swift, укажитеMediationExample.SampleCustomEventSwift.Название цели необходимо, если в проекте несколько целей или если название проекта отличается от названия цели. С названием цели это будет выглядеть так:
appName_targetName.className. Кроме того, не забудьте заменить все символы, кроме букв и цифр, например дефисы, на символы подчеркивания. Пример- Ярлык
Уникальное название, определяющее источник объявления.
- Параметр
Необязательный строковый аргумент, передаваемый адаптеру специального события.
Реализуйте GADMediationAdapter
Первый шаг при создании специального события – реализация протокола GADMediationAdapter, как показано в классе SampleCustomEvent в нашем примере.
Этот класс отвечает за получение сообщений от AdMob и делегирование ответственности за создание правильного формата объявления.
Инициализируйте адаптер
При инициализации Google Mobile Ads SDK метод setUpWithConfiguration:completionHandler: вызывается для всех поддерживаемых сторонних адаптеров и специальных событий, настроенных для приложения в интерфейсе AdMob. Используйте этот метод, чтобы выполнить необходимую настройку или инициализацию стороннего SDK для собственного события.
Swift
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)
}
}
Objective-C
#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);
}
Номера версий отчетов
Все специальные события должны передавать в Google Mobile Ads SDK как версию адаптера специального события, так и версию стороннего SDK, с которым взаимодействует специальное событие. Версии представлены в виде объектов
GADVersionNumber:
Swift
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
}
Objective-C
+ (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;
}
Запросить объявление
Чтобы запросить объявление, следуйте инструкциям для нужного формата объявления: