중복 제어
GfpAdLoader 를 통해 로드되는 모든 형식의 광고는 GfpDedupeManager 클래스를 활용하여 중복 노출을 방지하고, 광고 요청 시 연속적으로 호출되는 광고들에 대해 고유한 광고가 노출되도록 관리할 수 있습니다. 즉, GfpDedupeManager 는 광고 중복 제거 기능을 제공하여 사용자에게 다양한 광고를 제공합니다.
중복 제어는 GFP 에 의해 제어될 수 있는 광고. 즉, NDA 모듈로 처리되는 S2S 광고에 한해서만 처리될 수 있습니다.
1. GfpDedupeManager 설정
GFP SDK 가 지원하는 중복이 제거된 광고 요청을 처리하기 위해서는 우선 GfpDedupeManager 생성이 필요합니다. 다음 예시는 다섯 개의 광고 단위가 Chunk 라는 하나의 그룹으로 묶여, 해당 그룹 내에서는 중복되지 않는 고유한 광고가 노출되도록 설정하는 방법을 보여줍니다. 여기서 Chunk 는 SDK 내부적으로 광고 단위들을 묶어 중복을 제어하는 그룹을 지칭합니다.
- Kotlin
- Java
val dedupeManager = GfpDedupeManager(5)
GfpDedupeManager dedupeManager = new GfpDedupeManager(5);
GfpDedupeManager 생성자의 첫번째 인자가 되는 numAdsDeduped 값은 2 에서 5 사이의 숫자로 할당되기를 권장합니다.
2. 광고 로드
중복 제어 기능을 활성화화여 광고를 로드하려면, 사전에 생성한 GfpDedupeManager 를 통해 광고 로드를 처리해야 합니다. 중복 제어 기능을 사용하여 광고를 로드하려면 GfpDedupeManager 의 loadAd() 메서드를 호출해야 합니다. 이 메서드는 인자로 광고를 로드하는 데 사용할 GfpAdLoader 객체를 받습니다. 즉, GfpAdLoader 객체를 생성하여 loadAd() 메서드의 인자로 전달하면, 중복 제어 로직을 거쳐 광고가 로드 됩니다.
이 때 loadAd() 메서드를 통해 전달되는 GfpAdLoader 객체들은 전달된 순서대로 중복 제어 로직을 거치게 됩니다. 즉, 먼저 전달된 GfpAdLoader 의 광고 로드 결과가 후순위 GfpAdLoader 의 중복 제어에 영향을 미칠 수 있습니다.
GfpDedupeManager 의 loadAd() 를 통해서 로드되는 GfpAdLoader 에 한해서만 중복 제어 기능이 사용될 수 있습니다.
- Kotlin
- Java
val dedupeManager = GfpDedupeManager(5)
// . . .
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(5);
// . . .
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)
3. 광고 이벤트
GfpDedupeManager 는 loadAd() 메서드를 통해 전달받은 GfpAdLoader 들을 중복 제거하여 광고 요청을 처리하는 역할을 담당합니다. 광고가 로드된 후 발생하는 광고 이벤트(예: 광고 클릭, 노출 등)는 로드된 광고 형식에 따라 적절한 이벤트 수신 설정 방법을 통해 처리해야 합니다. 즉, GfpDedupeManager 는 광고 중복 제거에 관여하지만, 광고 이벤트 처리와는 독립적으로 동작합니다.
4. 광고 리소스 해제
GfpDedupeManager 의 loadAd() 메서드를 통해 요청된 GfpAdLoader 객체들은 GfpDedupeManager 의 destroy() 메서드를 호출하여 리소스 해제 처리를 할 수 있습니다. 또한, destroy() 메서드를 호출하면 중복 제어를 위해 사용된 값들이 초기화되므로, 중복 제어 관련 설정을 모두 초기화할 수 있습니다.
- Kotlin
- Java
val dedupeManager = GfpDedupeManager(5)
...
dedupeManager.loadAd(adLoader1)
dedupeManager.loadAd(adLoader2)
...
dedupeManager.destroy()