중복제어 가이드
통합 광고 로더(GfpAdLoader)를 통해서 제공되는 Banner, Native Simple, Native 유형의 광고들에 대해서 중복 제어 기능을 지원합니다.
(NDA 모듈에 대해서만 지원합니다)
중복 제어를 위한 GfpDedupeManager 생성
SDK 가 지원 하는 중복 제어 기능을 사용 하기 위해서는 우선적으로 아래와 같이 GfpDedupeManager 의 생성이 필요합니다.
- Kotlin
- Java
val dedupeManager = GfpDedupeManager(3)
GfpDedupeManager dedupeManager = new GfpDedupeManager(3);
GfpDedupeManager 의 생성자는 아래에서 볼 수 있듯이 numAdsDeduped 라는 이름의 parameter 를 받는 형태인데요.
- Kotlin
- Java
class GfpDedupeManager(@IntRange(from = 2, to = 5) val numAdsDeduped: Int) {
// . . .
}
public GfpDedupeManager(@IntRange(from = 2, to = 5) int numAdsDeduped) {
// . . .
}
여기서 numAdsDeduped 값은 연속된 광고의 중복이 제어되는 chunk 사이즈로 GfpDedupeManager 생성 예시처럼
new GfpDedupeManager(3); 와 같이 선언했을 경우에는 연속된 3개의 광고에 대해서 중복 없는 광고 노출이 가능하게 됩니다.
또한 numAdsDeduped 값은 위 예시에 나와있듯이 2 에서 5 사이의 숫자로 할당하기를 권합니다.
광고 로드
중복 제어 기능을 사용 하면서 광고를 로드하고자 할 때는 앞서 생성한 GfpDedupeManager 를 통해서 광고를 로드 하면 됩니다.
아래와 같이 이미 생성한 GfpDedupeManager 에 광고 로드를 수행할 GfpAdLoader 의 instance 를 parameter 로 전달 하면 됩니다.
GfpDedupeManager#loadAd(GfpAdLoader) method 에 GfpAdLoader 의 instance 를 넘겨줄 경우, SDK 내부에서 중복제어 로직을 수행하며 광고를 로드하게 되며 loadAd(GfpAdLoader) method 를 통해서 전달되는 GfpAdLoader 들은 전달된 순서대로 중복제어 로직을 타게 됩니다.
- Kotlin
- Java
val dedupeManager = GfpDedupeManager(3)
// . . .
val adLoader1 = GfpAdLoader.Builder(context, adParam)
.withAdListener(/* ... */)
.withNativeSimpleAd(/* ... */)
.build()
val adLoader2 = GfpAdLoader.Builder(context, adParam)
.withAdListener(/* ... */)
.withNativeSimpleAd(/* ... */)
.build()
// . . .
dedupeManager.loadAd(adLoader1)
dedupeManager.loadAd(adLoader2)
GfpDedupeManager dedupeManager = new GfpDedupeManager(3);
// . . .
GfpAdLoader adLoader1 = new GfpAdLoader.Builder(context, adParam)
.withAdListener(/* ... */)
.withNativeSimpleAd(/* ... */)
.build();
GfpAdLoader adLoader2 = new GfpAdLoader.Builder(context, adParam)
.withAdListener(/* ... */)
.withNativeSimpleAd(/* ... */)
.build();
// . . .
dedupeManager.loadAd(adLoader1)
dedupeManager.loadAd(adLoader2)
광고 이벤트 수신 및 삭제
GfpDedupeManager 는 넘겨받은 GfpAdLoader 들의 중복제어를 수행하는 역할을 할 뿐 광고 이벤트 수신 및 삭제 등 광고 로드와 관련된 기타 사항들은 기존과 같이 GfpAdLoader 를 통하면 됩니다.
또한, GfpDedupeManager 에 loadAd(GfpAdLoader) method 를 통해서 넘겨받은 GfpAdLoader instance 들은 SDK 내부적으로 관리되어 특정 loader 의 cancel() method 가 호출 되더라도 문제 없이 중복 제어 기능을 수행하게 됩니다.
중복제어 동작 설명
GfpDedupeManager 생성시 numAdsDeduped 값을 5로 설정했을 경우, 아래 이미지를 참고해서 중복제어의 동작을 확인해주시면 되겠습니다.
- 5번째 광고 view -> (보장)1,2,3,4번째 중복제어
- 9번째 광고 view -> (보장) 6,7,8번째 중복제어 + (비보장) 1,2,3,4,5 번째 광고
- 베스트 케이스 시, 1~9까지 중복제어
- 13번째 광고 view -> (보장) 11,12 간 중복제어 + (비보장) 3~10 번째 광고
- 베스트 케이스 시, 3~13까지 중복제어