광고 중복 제어
페이지에 여러개의 광고 슬롯이 있을 때 각각의 광고 슬롯은 독립적으로 요청되기 때문에 동일한 광고가 노출될 수 있습니다.
동일한 광고를 제공하고 싶지 않을 때 중복 제어를 적용하여 중복된 광고를 제공하지 않을 수 있습니다.
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 광고 복원을 참고해주세요.
3. 중복 제어 적용 여부 확인
-
광고 요청 QueryString에
ba
,bx
값이 추가되어있어야 합니다.- 중복 제어가 적용된 첫 번째 광고 슬롯의 요청에는 포함되지 않습니다.
- 중복 제어가 적용된 두 번째 광고 슬롯의 요청부터 포함됩니다.
-
ba
,bx
값은 이전 광고 슬롯 요청의ba
,bx
값을 포함합니다.- 두 번째 슬롯의
ba
,bx
값이 세 번째 슬롯의ba
,bx
값에 포함되어 있어야 합니다.
- 두 번째 슬롯의