web-dev-qa-db-ja.com

Googleサイト運営者タグの広告スロットが空かどうかを確認する方法は?

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")に広告が含まれているかどうかを確認するにはどうすればよいですか?

14
user2254912

あなたはこのようなことをすることができます:

googletag.pubads().addEventListener('slotRenderEnded', function(event) {
    if (event.slot.getSlotElementId() == "div-gpt-ad-123456789-0") {
        var containsAd = !event.isEmpty;     
    }
});

GPT APIは、広告がレンダリングされたとき(または何も返されない場合)に起動する「SlotRenderEndedEvent」を提供します。

https://developers.google.com/doubleclick-gpt/reference

ハンドラーを追加し、isEmptyをチェックして、広告が配信されたかどうかを判断します。

また、広告スロットでCollapsEmptyDivsを有効にしている場合、広告divはGPTによってdisplay:noneに設定されるため、何も返されないという手がかりにもなります。

7
dougwig

Googleサイト運営者コンソールと呼ばれる画面上のデバッグツールを使用して、配信の問題のトラブルシューティングを行うことができます。クエリ文字列として「?googfc」を使用します。参照: https://support.google.com/dfp_premium/answer/2462712?hl=en

4
Prasanna Jathan
googletag.cmd.Push(function () {
                googletag.pubads().addEventListener('slotRenderEnded', function (event) {
                        if (event.isEmpty) {
                                var id = event.slot.getSlotElementId();
                                var x = document.getElementById(id);
                                if (x.parentElement.classList.contains("ad-slot")) {
                                        x.parentElement.style.display = "none";
                                }                               
                        }
                });
        });
1
Piyush Sahu

Firebugまたはchrome web inspectorでdivを検査しようとしましたか?正しく読み込まれている場合はdiv内にiframeがあり、iframe内には広告クリエイティブを含むhtmlがあります。 。

DFP console を使用すると、DFPを非常に簡単にデバッグして、ページが正しくタグ付けされているかどうか、および広告が配信されているかどうかをテストできます。

1
Matt Cooper