Ответ 1
Вы можете сделать что-то вроде этого:
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == "div-gpt-ad-123456789-0") {
var containsAd = !event.isEmpty;
}
});
Я использую теги издателя Google для извлечения объявлений.
Как проверить, получаю ли я объявление или любое пустое объявление для определенного рекламного места. Я использую приведенный ниже код.
googletag.defineSlot("/1234/travel", [[300,250],[300x600]], "div-gpt-ad-123456789-0"))
<div id="div-gpt-ad-123456789-0" style="width: 728px; height: 90px">
<script type="text/javascript">
googletag.cmd.push(function() {
googletag.display("div-gpt-ad-123456789-0");
});
</script>
</div>
Как проверить этот div ( "div-gpt-ad-123456789-0" ) содержит объявление или нет?
Вы можете сделать что-то вроде этого:
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (event.slot.getSlotElementId() == "div-gpt-ad-123456789-0") {
var containsAd = !event.isEmpty;
}
});
API GPT предоставляет "SlotRenderEndedEvent", который запускается при рендеринге объявления (или если ничего не возвращается)
https://developers.google.com/doubleclick-gpt/reference
Вы добавляете обработчик и проверяете isEmpty, чтобы определить, было ли показ объявления.
Также, если вы включили CollapsEmptyDivs для рекламного места, в объявлении будет отображаться: div на GPT, что также является ключом к тому, что ничего не было возвращено.
Вы можете использовать инструмент отладки на экране, называемый Консоль издателя Google, для устранения неполадок с доставкой. Используйте "? googfc" как querystring. Ссылка: https://support.google.com/dfp_premium/answer/2462712?hl=en
Вы пробовали проверять div с помощью firebug или chrome web inspector? Там должен быть iframe внутри div, если он правильно загружается, а внутри iframe будет некоторый html с рекламным объявлением.
Вы можете легко отладить DFP с помощью консоли DFP, чтобы проверить правильность маркировки вашей страницы и доставку объявлений.