맞춤 이벤트를 사용하면 지원되는 광고 네트워크가 아닌 광고 네트워크에 대한 폭포식 구조 미디에이션을 추가할 수 있습니다. 이렇게 하려면 통합하려는 광고 네트워크에 대한 맞춤 이벤트 어댑터를 구현합니다.
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); } }
광고 요청
광고를 요청하려면 광고 형식에 해당하는 안내를 참고하세요.