2016-10-20 2 views
1

Google 게시자 태그 참조를 검토 한 결과 광고 슬롯에 이벤트를 추가 할 수 있다고 결정했습니다. 하나의 슬롯 만 정의하면 큰 효과가 있습니다. 슬롯을 더 추가하면 슬롯이있는 콘솔의 횟수만큼 이벤트가 반복됩니다. 나는 이런 식으로 뭔가를 할 경우Google 게시자 태그 이벤트에 등록

그래서 :

<script type='text/javascript'> 
googletag.cmd.push(function() { 
     var slot1 = googletag.defineSlot('/123456/leadeboard', [[728, 90]], 'div-gpt-ad-123456789-0').addService(googletag.pubads()); 
     var slot2 = googletag.defineSlot('/123456/leadeboard', [[728, 90]], 'div-gpt-ad-123456789-0').addService(googletag.pubads()); 
     var slot3 = googletag.defineSlot('/123456/leadeboard', [[728, 90]], 'div-gpt-ad-123456789-0').addService(googletag.pubads()); 
     googletag.pubads().enableSingleRequest(); 
     googletag.pubads().addEventListener('slotRenderEnded', function(event) { 
      console.log('Slot has been rendered:'); 
     }); 
     googletag.enableServices(); 
}); 
</script> 

내 CONSOLE.LOG는 "슬롯 렌더링되었습니다"배 될 것입니다. .addService 중 두 개를 defineSlot 부분에서 제거하면 console.logs가 한 번만 실행되지만 광고는 렌더링되지 않습니다.

다른 모든 사항을 위반하지 않고 추가 로깅을 제거하는 방법이 있습니까? 잠시 후 매우 지저분해질 수 있습니다.

감사합니다.

답변

3

Nastasja,

출력은 세 번 반복하는 이유는 슬롯이 렌더링 될 때마다 일어나는 'slotRenderEnded'이벤트 등록을 수신하는 이벤트 핸들러이다. 예제에는 세 개의 슬롯이 있으므로 이벤트는 세 번 실행됩니다. 당신은 전달되는 이벤트 객체를 검사하여 콜백을 유발하는 슬롯을 볼 수 있습니다

googletag.pubads().addEventListener('slotRenderEnded', function(event) { 
     console.log('Slot has been rendered:'); 
     console.log(event); //inspect event 
     console.log(event.slot); //inspect slot 
}); 

심지어 경우 처음 세 번하지만,이 같은 경우에 슬롯을 비교하여 슬롯 기반의 로직을 추가 할 수 있습니다. :

var slot1 = googletag.defineSlot('/123456/leadeboard', [[728, 90]], 'div-gpt-ad-123456789-0').addService(googletag.pubads()); 
googletag.pubads().addEventListener('slotRenderEnded', function(event) { 
    if(slot1 === event.slot){ 
     console.log('slot1 has been rendered'); 
    } 
}); 

당신은 GPT documentation

에서 자세한 내용을보실 수 있습니다