광고 중복 제어
페이지에 여러개의 광고 슬롯이 있을 때 각각의 광고 슬롯은 독립적으로 요청되기 때문에 동일한 광고가 노출될 수 있습니다.
동일한 광고를 제공하고 싶지 않을 때 중복 제어를 적용하여 중복된 광고를 제공하지 않을 수 있습니다.
SPA(React) 환경에서의 중복 제어와 복원 예시는 Examples - SPA 광고 중복 제어와 복원을 참고해주세요.
1. 중복 제어 설정
1-1. 중복 제어 매니저 생성
-
gladsdk.setAdDeduplication()을 사용하여 중복 제어를 설정하고 중복 제어 매니저를 생성할 수 있습니다.
- dedupReqId: 중복 제어 매니저를 식별하기 위한 ID
- maxDedupReqCount: 중복 제어를 적용할 광고 슬롯의 개수 - 1
var dedupReqId = 'deduplicationReuqestId';
var maxDedupReqCount = 5; // 6개의 슬롯에 중복 제어가 적용됩니다.
var adDedupManager = window.gladsdk.setAdDeduplication(dedupReqId, maxDedupReqCount); -
gladsdk.setGlobalConfig()를 사용하여 maxDedupReqCount의 기본값을 설정할 수 있습니다.
setAdDeduplication 전달값
>전역 설정
순서대로 우선순위를 가집니다.아래에서 생성된 중복 제어 매니저의 중복 제어가 적용되는 슬롯 개수는 6개 입니다.
window.gladsdk.setGlobalConfig({
maxDedupReqCount: 3,
});
var dedupReqId = 'deduplicationReuqestId';
var maxDedupReqCount = 5; // 6개의 슬롯에 중복 제어가 적용됩니다.
var adDedupManager = window.gladsdk.setAdDeduplication(dedupReqId, maxDedupReqCount);
1-2. 광고 중복 제어 해제
-
gladsdk.clearAdDeduplication()을 사용하여 중복 제어를 해제할 수 있습니다.
var dedupReqId = 'deduplicationReuqestId';
window.gladsdk.clearAdDeduplication(dedupReqId);
2. 중복 제어 광고 노출
2-1. 중복 제어 광고 노출하기
- adDeduplicationManager.displayAds()를 사용하여 중복 제어가 적용된 광고를 노출합니다.
var adSlot1 = window.gladsdk.defineAdSlot(adSlotInfo1);
var adSlot2 = window.gladsdk.defineAdSlot(adSlotInfo2);
adDedupManager.displayAds([adSlot1, adSlot2]);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Hello NAM</title>
<script async src="https://ssl.pstatic.net/tveta/libs/glad/prod/gfp-core.js"></script>
<script>
window.gladsdk = window.gladsdk || { cmd: [] };
</script>
</head>
<body>
<div id="division_1"></div>
<div id="division_2"></div>
<div id="division_3"></div>
<script>
var adSlotInfo1 = {
adUnitId: 'WEB_nw_banner-N345765840',
adSlotElementId: 'division_1',
};
var adSlotInfo2 = {
adUnitId: 'WEB_nw_banner-N345765840',
adSlotElementId: 'division_2',
};
var adSlotInfo3 = {
adUnitId: 'WEB_nw_banner-N345765840',
adSlotElementId: 'division_3',
};
window.gladsdk.cmd.push(function () {
var adSlot1 = window.gladsdk.defineAdSlot(adSlotInfo1);
var adSlot2 = window.gladsdk.defineAdSlot(adSlotInfo2);
var adSlot3 = window.gladsdk.defineAdSlot(adSlotInfo3);
var adDedupManager = gladsdk.setAdDeduplication('deduplicationReuqestId', 2);
adDedupManager.displayAds([adSlot1, adSlot2, adSlot3]);
});
</script>
</body>
</html>
2-2. 중복 제어 광고 복원하기
중복 제어 광고 복원은 Persist 모드가 적용된 경우에만 동작합니다.
-
adDeduplicationManager.restoreAds()를 사용하여 중복 제어 매니저에 요청했던 광고 슬롯을 복원할 수 있습니다.
주의restoreAds
는 Persist 모드가 적용된 페이지에서 다른 페이지로 이동한 뒤 뒤로가기로 복귀했을 때 기존 광고를 복원하는 기능입니다.매체에서 뒤로가기로 인해서 페이지가 로딩되었는지 분기 처리가 필요합니다.
첫 렌더링 시에는adDeduplicationManager.displayAds()
로 광고를 렌더링 해야하고
복귀 이후에는adDeduplicationManager.restoreAds()
가 호출 되어야 합니다.var adSlot = window.gladsdk.findAdSlot('division');
adDedupManager.restoreAds([adSlot]); -
adDeduplicationManager.restoreAds()에 인자를 넘기지 않을 경우 해당 중복 제어 매니저를 통해 노출된 모든 광고 슬롯을 복원합니다.
var adSlot1 = window.gladsdk.defineAdSlot(adSlotInfo1);
var adSlot2 = window.gladsdk.defineAdSlot(adSlotInfo2);
adDedupManager.displayAds([adSlot1, adSlot2]); // 중복제어 매니저를 통해 노출
var adSlot3 = window.gladsdk.defineAdSlot(adSlotInfo3);
window.gladsdk.displayAd(adSlot3); // 중복제어 매니저를 통하지 않고 노출
// -------------------------------------------------------
adDedupManager.restoreAds(); // adSlot1, adSlot2만 복원됨주의SPA가 아닌 환경에서 뒤로가기로 복귀했을 때 페이지가 새로고침 되면 중복 제어 매니저는 이전 상태를 유지할 수 없습니다.
때문에 뒤로가기 시 새로고침이 발생한다면 슬롯을 새로 생성하여
restoreAds()
에 명시적으로 전달하여 광고를 복원해야합니다.중복 제어 복원 예시는 Examples - 중복 제어와 Persist 광고 복원을 참고해주세요.
2-3. 중복 제어 제외 기준 정보 초기화하기
-
기존까지 설정된 모든 중복 제외 기준을 초기화합니다. 광고 중복 제어를 해제하지 않고 현재까지 중복 제어 광고 요청으로 중복 제어 매니저 내부에 누적된 중복 제외 기준 정보만 삭제하고 다시 광고 중복 제어 요청을 시도할 경우에 사용합니다.
adDedupManager.clearAllExclusions();
// 중복 제어 제외 기준 초기화 이후 다시 광고 재요청
adDedupManager.displayAds([adSlot1, adSlot2, adSlot3]);
3. 중복 제어 적용 여부 확인
-
광고 요청 QueryString에
ba
,bx
값이 추가되어있어야 합니다.- 중복 제어가 적용된 첫 번째 광고 슬롯의 요청에는 포함되지 않습니다.
- 중복 제어가 적용된 두 번째 광고 슬롯의 요청부터 포함됩니다.
-
ba
,bx
값은 이전 광고 슬롯 요청의ba
,bx
값을 포함합니다.- 두 번째 슬롯의
ba
,bx
값이 세 번째 슬롯의ba
,bx
값에 포함되어 있어야 합니다.
- 두 번째 슬롯의