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