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