설정

맞춤 이벤트를 사용하면 지원되는 광고 네트워크가 아닌 광고 네트워크에 대한 폭포식 구조 미디에이션을 추가할 수 있습니다. 이렇게 하려면 통합하려는 광고 네트워크에 대한 맞춤 이벤트 어댑터를 구현합니다.

전체 샘플 맞춤 이벤트 프로젝트는 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;
}

광고 요청

광고를 요청하려면 다음 광고 형식별 안내를 참고하세요.