설정

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

전체 샘플 맞춤 이벤트 프로젝트는 GitHub 저장소에서 확인할 수 있습니다.

기본 요건

맞춤 이벤트를 만들려면 먼저 다음 광고 형식 중 하나를 앱에 통합해야 합니다.

UI에서 맞춤 이벤트 만들기

먼저 맞춤 이벤트를 AdMob UI에서 만들어야 합니다. 맞춤 이벤트 추가의 안내를 참고하세요.

다음을 제공해야 합니다.

클래스 이름

맞춤 이벤트 어댑터를 구현하는 클래스의 정규화된 이름입니다(예: com.google.ads.mediation.sample.customevent.SampleCustomEvent). 모든 맞춤 이벤트 광고 형식에 단일 어댑터 클래스를 사용하는 것이 좋습니다.

라벨

광고 소스를 정의하는 고유한 이름입니다.

매개변수

맞춤 이벤트 어댑터에 전달되는 선택적 문자열 인수입니다.

어댑터 초기화

Google 모바일 광고 SDK가 초기화되면 initialize() 가 AdMob UI 내의 앱에 대해 구성된 지원되는 모든 서드 파티 어댑터 및 맞춤 이벤트에서 호출됩니다. 이 메서드를 사용하여 맞춤 이벤트에 필요한 서드 파티 SDK에서 필요한 설정 또는 초기화를 수행할 수 있습니다.

Java

package com.google.ads.mediation.sample.customevent;

import com.google.android.gms.ads.AdFormat;
import com.google.android.gms.ads.mediation.Adapter;
import com.google.android.gms.ads.mediation.InitializationCompleteCallback;
import com.google.android.gms.ads.mediation.MediationConfiguration;

public class SampleAdNetworkCustomEvent extends Adapter {
  private static final String SAMPLE_AD_UNIT_KEY = "parameter";

  @Override
  public void initialize(Context context,
      InitializationCompleteCallback initializationCompleteCallback,
      List<MediationConfiguration> mediationConfigurations) {
    // 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.
    initializationCompleteCallback.onInitializationSucceeded();
  }
}

Kotlin

package com.google.ads.mediation.sample.customevent

import com.google.android.gms.ads.AdFormat
import com.google.android.gms.ads.mediation.Adapter
import com.google.android.gms.ads.mediation.InitializationCompleteCallback
import com.google.android.gms.ads.mediation.MediationConfiguration

class SampleCustomEvent : Adapter() {
  private val SAMPLE_AD_UNIT_KEY = "parameter"

  override fun initialize(
    context: Context,
    initializationCompleteCallback: InitializationCompleteCallback,
    mediationConfigurations: List<MediationConfiguration>
  ) {
    // 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.
    initializationCompleteCallback.onInitializationSucceeded()
  }
}

버전 번호 보고

모든 맞춤 이벤트는 맞춤 이벤트 어댑터 자체의 버전과 맞춤 이벤트 인터페이스가 있는 서드 파티 SDK의 버전을 모두 Google 모바일 광고 SDK에 보고해야 합니다. 버전은 VersionInfo 객체로 보고됩니다.

Java

package com.google.ads.mediation.sample.customevent;

public class SampleCustomEvent extends Adapter {

  @Override
  public VersionInfo getVersionInfo() {
    String versionString = new VersionInfo(1, 2, 3);
    String[] splits = versionString.split("\\.");

    if (splits.length >= 4) {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]) * 100 + Integer.parseInt(splits[3]);
      return new VersionInfo(major, minor, micro);
    }

    return new VersionInfo(0, 0, 0);
  }

  @Override
  public VersionInfo getSDKVersionInfo() {
    String versionString = SampleAdRequest.getSDKVersion();
    String[] splits = versionString.split("\\.");

    if (splits.length >= 3) {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]);
      return new VersionInfo(major, minor, micro);
    }

    return new VersionInfo(0, 0, 0);
  }
}

Kotlin

package com.google.ads.mediation.sample.customevent

class SampleCustomEvent : Adapter() {
  override fun getVersionInfo(): VersionInfo {
    val versionString = VersionInfo(1,2,3).toString()
    val splits: List<String> = versionString.split("\\.")

    if (splits.count() >= 4) {
      val major = splits[0].toInt()
      val minor = splits[1].toInt()
      val micro = (splits[2].toInt() * 100) + splits[3].toInt()
      return VersionInfo(major, minor, micro)
    }

    return VersionInfo(0, 0, 0)
  }

  override fun getSDKVersionInfo(): VersionInfo {
    val versionString = VersionInfo(1,2,3).toString()
    val splits: List<String> = versionString.split("\\.")

    if (splits.count() >= 3) {
      val major = splits[0].toInt()
      val minor = splits[1].toInt()
      val micro = splits[2].toInt()
      return VersionInfo(major, minor, micro)
    }

    return VersionInfo(0, 0, 0)
  }
}

광고 요청

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