설정

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

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

기본 요건

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

UI에서 맞춤 이벤트 만들기

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

다음을 제공해야 합니다.

클래스 이름

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

라벨

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

매개변수

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

어댑터 초기화

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

자바

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 객체:

자바

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

광고 요청

광고를 요청하려면 광고 형식에 해당하는 안내를 참고하세요.