설정

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

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

    private InitializationCompleteCallback initializationCallback;

    @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();
    }
}

버전 번호 보고

모든 맞춤 이벤트는 맞춤 이벤트 어댑터 자체의 버전과 맞춤 이벤트 인터페이스가 있는 서드 파티 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);
  }
}

광고 요청

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