맞춤 이벤트를 사용하면 지원되는 광고 네트워크가 아닌 광고 네트워크에 대한 폭포식 구조 미디에이션을 추가할 수 있습니다. 이렇게 하려면 통합하려는 광고 네트워크에 대한 맞춤 이벤트 어댑터를 구현합니다.
전체 샘플 맞춤 이벤트 프로젝트는 GitHub 저장소에서 확인할 수 있습니다.
기본 요건
맞춤 이벤트를 만들기 전에 먼저 다음 광고 형식 중 하나를 앱에 통합해야 합니다.
UI에서 맞춤 이벤트 만들기
먼저 AdMob UI에서 맞춤 이벤트를 만들어야 합니다. 맞춤 이벤트 추가의 안내를 확인하세요.
다음을 제공해야 합니다.
- 클래스 이름
맞춤 이벤트 어댑터를 구현하는 클래스의 정규화된 이름입니다(예:
SampleCustomEvent
). 클래스가 Swift로 구현된 경우MediationExample.SampleCustomEventSwift
입니다.프로젝트에 대상이 여러 개 있거나 프로젝트 이름이 대상 이름과 다른 경우 대상 이름이 필요합니다. 대상 이름은
appName_targetName.className
과 같이 표시됩니다. 또한 영숫자 문자가 아닌 대시 등의 문자는 밑줄로 바꿔야 합니다. 예- 라벨
광고 소스를 정의하는 고유한 이름입니다.
- 매개변수
맞춤 이벤트 어댑터에 전달되는 문자열 인수(선택사항)입니다.
GADMediationAdapter 구현
맞춤 이벤트를 만드는 첫 번째 단계는 이 예의 SampleCustomEvent
클래스와 같이 GADMediationAdapter
프로토콜을 구현하는 것입니다.
AdMob으로부터 메시지를 수신하고 올바른 광고 형식을 만드는 책임을 위임하는 것은 이 클래스의 책임입니다.
어댑터 초기화
Google 모바일 광고 SDK를 초기화하면 AdMob UI 내에서 앱용으로 구성되어 지원되는 모든 서드 파티 어댑터 및 맞춤 이벤트에서 setUpWithConfiguration:completionHandler:
를 호출합니다. 이 메서드를 사용하여 맞춤 이벤트에 사용할 서드 파티 SDK에 필요한 설정 또는 초기화를 수행할 수 있습니다.
Swift
import GoogleMobileAds
class SampleCustomEvent: NSObject, GADMediationAdapter {
static func setUpWith(
_ configuration: GADMediationServerConfiguration,
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);
}
버전 번호 보고
맞춤 이벤트의 경우 맞춤 이벤트 어댑터의 자체 버전과 맞춤 이벤트 인터페이스가 있는 서드 파티 SDK의 버전을 모두 Google 모바일 광고 SDK에 보고해야 합니다. 버전은
GADVersionNumber
객체로 보고됩니다.
Swift
static func adSDKVersion() -> GADVersionNumber {
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 GADVersionNumber(
majorVersion: majorVersion, minorVersion: minorVersion, patchVersion: patchVersion)
}
return GADVersionNumber()
}
static func adapterVersion() -> GADVersionNumber {
let versionComponents = String(SampleAdSDK.SampleAdSDKVersionNumber).components(
separatedBy: ".")
var version = GADVersionNumber()
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;
}
광고 요청
광고를 요청하려면 다음 광고 형식별 안내를 참고하세요.