首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用adSlots处理GPT中的多个prebid.js

如何用adSlots处理GPT中的多个prebid.js
EN

Stack Overflow用户
提问于 2020-01-28 15:20:01
回答 1查看 356关注 0票数 2

我从Adnuntius迁移到GPT,并且正在使用prebid.js,我在每个页面上都需要不同的插槽,当我试图定义它们时,只有当我在每个slot.Lets上都有不同的大小时,我才能让它们工作,比如我在第一个页面上使用970x250,然后将第二个转换为300x250,它就能工作了。

我认为我的问题是在某个地方,我定义了插槽,或者用我们的广告单元?

我希望能对所有的插槽使用相同的尺寸。site_level是gpt中的adunit名称。

代码语言:javascript
复制
var div_sizes_l = [[970, 250], [980, 200], [980, 240]];
var PREBID_TIMEOUT = 1000;
var FAILSAFE_TIMEOUT = 3000;

var adUnits = [
    {
        code: 'div-gpt-ad-Landing_Top',  
        mediaTypes: {
            banner: {
                sizes:  div_sizes_l,
            }
        },
        bids: [
            {
                bidder: 'rubicon',
                params: {
                    accountId: '20562',
                    siteId: '2153438',
                    zoneId: '11258332'
                }
            }
        ]
    },
    //
    {
        code: 'div-gpt-ad-Landing_Middle',
        mediaTypes: {
            banner: {
                sizes:  div_sizes_l,
            }
        },
        bids: [
            {
                bidder: 'rubicon',
                params: {
                    accountId: '20562',
                    siteId: '2153438',
                    zoneId: '11258344'
                }
            },
        ]
    },
];

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 = googletag.cmd || [];

 googletag.cmd.push(function() {
    googletag.defineSlot('/21855748559/site_level', 
   div_sizes_l, 
  'div-gpt-ad-Landing_Top').addService(googletag.pubads());
    googletag.pubads().setTargeting('position', 'Landing_Top');

    googletag.pubads().enableSingleRequest();
    googletag.enableServices();
});
googletag.cmd.push(function() {
    googletag.defineSlot('/21855748559/site_level', 
    div_sizes_l, 
   'div-gpt-ad-Landing_Middle').addService(googletag.pubads());
    googletag.pubads().setTargeting('position', 'Landing_Middle');

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

回答 1

Stack Overflow用户

发布于 2020-02-03 17:03:05

您的预出价代码是正确的,它将能够使用该变量在拍卖的所有大小横跨两个广告单位。但是,由于您正在使用Rub图标,这就是存在问题的原因。它们的适配器特别需要一个adunit大小的数组ID#s,然后它们才能读取并传递一个合适大小的出价响应。See here for their docs。示例:

代码语言:javascript
复制
{
    bidder: 'rubicon',
    params: {
        accountId: '20562',
        siteId: '2153438',
        zoneId: '11258332',
        sizes: [15, 3, 2]
    }
}

这里还有他们的sizeMap供您参考,以便将正确的大小is传递给它们,这是从它们的adapter source中直接提取出来的。

代码语言:javascript
复制
var sizeMap = {
  1: '468x60',
  2: '728x90',
  5: '120x90',
  8: '120x600',
  9: '160x600',
  10: '300x600',
  13: '200x200',
  14: '250x250',
  15: '300x250',
  16: '336x280',
  17: '240x400',
  19: '300x100',
  31: '980x120',
  32: '250x360',
  33: '180x500',
  35: '980x150',
  37: '468x400',
  38: '930x180',
  39: '750x100',
  40: '750x200',
  41: '750x300',
  42: '2x4',
  43: '320x50',
  44: '300x50',
  48: '300x300',
  53: '1024x768',
  54: '300x1050',
  55: '970x90',
  57: '970x250',
  58: '1000x90',
  59: '320x80',
  60: '320x150',
  61: '1000x1000',
  64: '580x500',
  65: '640x480',
  66: '930x600',
  67: '320x480',
  68: '1800x1000',
  72: '320x320',
  73: '320x160',
  78: '980x240',
  79: '980x300',
  80: '980x400',
  83: '480x300',
  94: '970x310',
  96: '970x210',
  101: '480x320',
  102: '768x1024',
  103: '480x280',
  105: '250x800',
  108: '320x240',
  113: '1000x300',
  117: '320x100',
  125: '800x250',
  126: '200x600',
  144: '980x600',
  145: '980x150',
  152: '1000x250',
  156: '640x320',
  159: '320x250',
  179: '250x600',
  195: '600x300',
  198: '640x360',
  199: '640x200',
  213: '1030x590',
  214: '980x360',
  221: '1x1',
  229: '320x180',
  232: '580x400',
  234: '6x6',
  251: '2x2',
  257: '400x600',
  264: '970x1000',
  265: '1920x1080',
  278: '320x500',
  288: '640x380'
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59951879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档