簡體   English   中英

prebid js刪除“內部廣告”橫幅

[英]prebid js remove 'House Ad' banner

我已經使用多個適配器將 prebid 集成到我們的網站中,並且工作正常,但是當沒有適配器響應或獲勝時,我看到的是“House Ad”橫幅,我可以將 prebid 配置為在占位符 div 中不顯示任何內容(顯示: 沒有任何) ?

在此處輸入圖像描述

更清晰:

我們在我們的網站中集成了預投標,內容之間存在多個添加槽。 當非適配器響應廣告或廣告不存在的任何其他原因時,會顯示一個帶邊框的“內部廣告”(參見上圖),這對查看者沒有任何用途(它對於調試但不適用於用戶)現在無論如何我們可以在生產中隱藏這個“內部廣告”橫幅。

代碼/示例

這種情況可以在重載幾次后在jsfiddle上重現

腳本

var div_1_sizes = [
    [300, 250],
    [300, 600]
];
var div_2_sizes = [
    [728, 90],
    [970, 250]
];
var PREBID_TIMEOUT = 1000;
var FAILSAFE_TIMEOUT = 3000;

var adUnits = [
    {
        code: '/19968336/header-bid-tag-0',
        mediaTypes: {
            banner: {
                sizes: div_1_sizes
            }
        },
        bids: [{
            bidder: 'appnexus',
            params: {
                placementId: 13144370
            }
        }]
    },
    {
        code: '/19968336/header-bid-tag-1',
        mediaTypes: {
            banner: {
                sizes: div_2_sizes
            }
        },
        bids: [{
            bidder: 'appnexus',
            params: {
                placementId: 13144370
            }
        }]
    }
];

// ======== DO NOT EDIT BELOW THIS LINE =========== //
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(function() {
    googletag.pubads().disableInitialLoad();
});

var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function() {
    pbjs.addAdUnits(adUnits);
    pbjs.requestBids({
        bidsBackHandler: initAdserver,
        timeout: PREBID_TIMEOUT
    });
});

function initAdserver() {
    if (pbjs.initAdserverSet) return;
    pbjs.initAdserverSet = true;
    googletag.cmd.push(function() {
        pbjs.que.push(function() {
            pbjs.setTargetingForGPTAsync();
            googletag.pubads().refresh();
        });
    });
}
// in case PBJS doesn't load
setTimeout(function() {
    initAdserver();
}, FAILSAFE_TIMEOUT);

googletag.cmd.push(function() {
    googletag.defineSlot('/19968336/header-bid-tag-0', div_1_sizes, 'div-1').addService(googletag.pubads());
    googletag.pubads().enableSingleRequest();
    googletag.enableServices();
});
googletag.cmd.push(function() {
    googletag.defineSlot('/19968336/header-bid-tag-1', div_2_sizes, 'div-2').addService(googletag.pubads());
    googletag.pubads().enableSingleRequest();
    googletag.enableServices();
});

HTML

<h2>Basic Prebid.js Example</h2>
<h5>Div-1</h5>
<div id='div-1'>
    <script type='text/javascript'>
        googletag.cmd.push(function() {
            googletag.display('div-1');
        });

    </script>
</div>

<br>
<p> some content</p>
<p> some content</p>

<h5>Div-2</h5>
<div id='div-2'>
    <script type='text/javascript'>
        googletag.cmd.push(function() {
            googletag.display('div-2');
        });

    </script>
</div>

<p> some content</p>
<p> some content</p>

    

在您的情況下,會發生以下情況:

  1. 頁面加載
  2. adserver 和 prebid 啟動
  3. 如果未選擇預出價訂單項,則 adserver 將選擇任何“自家廣告”優先訂單項來填充廣告位。

與其隱藏自家廣告(您仍會計算這些訂單項的展示次數,但用戶將看不到它 => 不好的做法),我建議您:

  1. 停止在您的 Google Ad Manager UI 中投放所有自家廣告訂單項(詳情請點擊此處
  2. 啟用 GPT“collapseEmptydiv”選項(詳情請點擊此處),如果未選擇任何訂單項,廣告位將折疊

最后:您可以通過對您的 adrequest 進行分組來優化您的 GPT 腳本(您當前正在運行 2 個請求,而您正在使用 SRA - 單一請求架構 - 請參閱此處了解詳細信息):

googletag.cmd.push(function() {

    googletag.defineSlot('/19968336/header-bid-tag-0', div_1_sizes, 'div-1').addService(googletag.pubads());
    googletag.defineSlot('/19968336/header-bid-tag-1', div_2_sizes, 'div-2').addService(googletag.pubads());


    //collapse slots that are unable to be filled with an ad (no house ads)
    googletag.pubads().collapseEmptyDivs();

    googletag.pubads().enableSingleRequest();
    googletag.enableServices();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM