2016-10-25 113 views
0

我在我的网站上运行响应式DFP广告时遇到问题。 我阅读了所有的谷歌规格,但仍无法弄清楚。DFP广告管理系统自适应广告

<script type='text/javascript'> 
 
var googletag = googletag || {}; 
 
googletag.cmd = googletag.cmd || []; 
 
(function() { 
 
var gads = document.createElement('script'); 
 
gads.async = true; 
 
gads.type = 'text/javascript'; 
 
var useSSL = 'https:' == document.location.protocol; 
 
gads.src = (useSSL ? 'https:' : 'http:') + 
 
'//www.googletagservices.com/tag/js/gpt.js'; 
 
var node = document.getElementsByTagName('script')[0]; 
 
node.parentNode.insertBefore(gads, node); 
 
})(); 
 
</script> 
 

 
<script type='text/javascript'> 
 
googletag.cmd.push(function() { 
 
    googletag.defineSlot('/4421777/Textlink', [468, 60], 'div-gpt-ad-1431019765846-0').addService(googletag.pubads()); 
 
googletag.pubads().enableSingleRequest(); 
 
googletag.companionAds().setRefreshUnfilledSlots(true); 
 
googletag.pubads().enableVideoAds(); 
 
googletag.enableServices(); 
 
});

,这里是我的映射代码:

var mapping = googletag.sizeMapping(). 
 
    addSize([1024, 768], [970, 250]). 
 
    addSize([980, 690], [[1000, 300],[320, 50]]). 
 
    addSize([640, 480], [[120, 60],[1000, 300],[320, 50], [468, 60]]). 
 
    addSize([0, 0], [88, 31],). 
 
    // Fits browsers of any size smaller than 640 x 480 
 
    build(); 
 
adSlot.defineSizeMapping(mapping);

可以请您给一些明确的方式,使其完美运行在移动等? 谢谢

回答

1

你的代码不正确,因为它不与广告单元链接大小映射。 注意,在我的代码加粗部分: 'DIV-GPT-AD-1431019765846-0').defineSizeMapping(映射) .addService(googletag的 另外,我认为你需要不同尺寸的映射为每个广告位 我我举一个例子: 1.您的网站顶部有一个大横幅,假设广告单元(Ad Slot)被称为广告牌。因此,如果是桌面,您想要投放一个大横幅 - 1000x300,如果大的平板电脑或桌面小广告 - 728x90,如果它是一个移动设备的移动排行榜 - 的320x100 2.比你有另一个广告单元,比方说,它被称为矩形希望此服务的300x250或300x600的。在平板电脑和手机上的300x250。 3.然后你有第三个广告单元,比如说它叫做Smallbanner。您希望在桌面设备和平板电脑上为468x60提供服务,而在手机上则不提供横幅广告。

您需要为每个广告单元创建尺寸映射,然后在调用时附加它。所以在我的例子中,输出代码就像这样。我添加了内联注释,以便您可以更好地理解它。

<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script> 
<script> 
    var googletag = googletag || {}; 
    googletag.cmd = googletag.cmd || []; 
</script> 

<script type='text/javascript'> 
var gptAdSlots = []; 
    googletag.cmd.push(function() { 
    // Create size mapping for Billboard position. If viewport is above 1000x768 show banner 1000x300. If viewport is above 728x300 (but bellow 1000x768) show banner 728x90, if viewport is lower than 728x300 show banner 320x100 
    var billboardsizes = googletag.sizeMapping().addSize([1000, 768], [1000, 300]).addSize([728, 300], [728, 90]).addSize([0, 0], [320, 100]).build(); 

    // Create size mapping for Rectangle position. If viewport is above 1000x768 (considered as desktop, you may lower the height) show 300x250 OR 300x600. If the viewport is smaller than 1000x768 show 300x250 only. 
    var rectanglesizes = googletag.sizeMapping().addSize([1000, 768], [[300, 60], [300, 250]]).addSize([0, 0], [300, 250]).build(); 

    // Create size mapping for Smallbanner position. If viewport is above 468x300 (considered as desktop + bigger tablets) show 468x60. If smaller, don't show banner. 
    var smallbannersizes = googletag.sizeMapping().addSize([468, 300], [468, 60]).addSize([0, 0], []).build(); 

    // Now create the first slot. Please note that we add all the sizes described in the size mapping. This should be set in the DFP Ad Unit configuration as well. Please also note the part of the code: .defineSizeMapping(billboardsizes) - it tells DFP what banner to serve on what device size. 
    gptAdSlots[0] = googletag.defineSlot('/4421777/billboard', [[1000, 300], [320, 100], [728, 90]], 'div-gpt-ad-1431019765846-0').defineSizeMapping(billboardsizes).addService(googletag.pubads()); 

    // Now create the second slot. Please note that we add all the sizes described in the size mapping. This should be set in the DFP Ad Unit configuration as well. Please also note the part of the code: .defineSizeMapping(rectanglesizes) - it tells DFP what banner to serve on what device size. We also incremented gptAdSlots[1] by one and the last number of the div id by 1. 
    gptAdSlots[1] = googletag.defineSlot('/4421777/rectangle', [[300, 600], [300, 250]], 'div-gpt-ad-1431019765846-1').defineSizeMapping(rectanglesizes).addService(googletag.pubads()); 

    // Now create the third slot. Please note that we add all the sizes described in the size mapping. This should be set in the DFP Ad Unit configuration as well. Please also note the part of the code: .defineSizeMapping(smallbannersizes) - it tells DFP what banner to serve on what device size. We also incremented gptAdSlots[1] by one and the last number of the div id by 1. 
    gptAdSlots[2] = googletag.defineSlot('/4421777/smallbanner', [468, 60], 'div-gpt-ad-1431019765846-2').defineSizeMapping(smallbannersizes).addService(googletag.pubads()); 

    googletag.pubads().enableSingleRequest(); 
    googletag.companionAds().setRefreshUnfilledSlots(true); 
    googletag.pubads().enableVideoAds();  
    googletag.enableServices(); 
    }); 
</script> 
1

这是您试图实现的简化版本(考虑到您的尺寸映射很奇怪,因为您将在具有640x480视口的设备上显示1000x300横幅?)。

<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script> 
<script> 
    var googletag = googletag || {}; 
    googletag.cmd = googletag.cmd || []; 
</script> 

<script type='text/javascript'> 
var gptAdSlots = []; 
    googletag.cmd.push(function() { 
    var mapping = googletag.sizeMapping().addSize([1024, 768], [970, 250]).addSize([980, 690], [[1000, 300],[320, 50]]).addSize([640, 480], [[120, 60],[1000, 300],[320, 50], [468, 60]]).addSize([0, 0], [88, 31],).build(); 
    gptAdSlots[0] = googletag.defineSlot('/4421777/Textlink', [[970, 250], [1000, 300], [320, 50], [120, 60], [468, 60], [88, 31]], 'div-gpt-ad-1431019765846-0').defineSizeMapping(mapping).addService(googletag.pubads()); 
    googletag.pubads().enableSingleRequest(); 
    googletag.companionAds().setRefreshUnfilledSlots(true); 
    googletag.pubads().enableVideoAds();  
    googletag.enableServices(); 
    }); 
</script> 

拿一张纸条,上面有一些小的改动:1。 创建广告位的数组,从第一个是0。但是,如果你要拨打的第二槽,你应该增加类似此后的第一个(注意[1],下一个将是[2]等):

gptAdSlots[1] = googletag.defineSlot('/4421777/Textlink2', [300, 250], 'div-gpt-ad-1431019765846-1').defineSizeMapping(mapping2).addService(googletag.pubads()); 
  • 您应该列出在你的尺寸映射定义的所有尺寸在广告单元尺寸中也是如此。在DFP广告管理系统广告单元设置和DefineSlot调用中(我已经完成了上述操作)。
  • 0

    这是我的代码现在它的正确吗?

    <script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script> 
     
    <script> 
     
        var googletag = googletag || {}; 
     
        googletag.cmd = googletag.cmd || []; 
     
    </script> 
     
    
     
    <script> 
     
        googletag.cmd.push(function() { 
     
         var mapping = googletag.sizeMapping().addSize([1600, 1024], [1000, 300]).addSize([980, 690], [[1000, 300],[320, 50]]).addSize([640, 480], [[120, 60],[1000, 300],[320, 50], [468, 60]]).addSize([0, 0], [88, 31],).build(); 
     
    
     
        gptAdSlots[0] = googletag.defineSlot('/15076752/300x250_Fifth', [300, 250], 'div-gpt-ad-1476951614543-0').addService(googletag.pubads()); 
     
         gptAdSlots[1] = googletag.defineSlot('/15076752/300x250_First', [300, 250], 'div-gpt-ad-1476951614543-1').addService(googletag.pubads()); 
     
        gptAdSlots[2] = googletag.defineSlot('/15076752/300x250_Fourth', [300, 250], 'div-gpt-ad-1476951614543-2').addService(googletag.pubads()); 
     
        gptAdSlots[3] = googletag.defineSlot('/15076752/300x250_Second', [300, 250], 'div-gpt-ad-1476951614543-3').addService(googletag.pubads()); 
     
        gptAdSlots[4] = googletag.defineSlot('/15076752/300x250_Third', [300, 250], 'div-gpt-ad-1476951614543-4').addService(googletag.pubads()); 
     
        gptAdSlots[5] = googletag.defineSlot('/15076752/300x600', [300, 600], 'div-gpt-ad-1476951614543-5').addService(googletag.pubads()); 
     
        gptAdSlots[6] = googletag.defineSlot('/15076752/728x90_Second', [728, 90], 'div-gpt-ad-1476951614543-6').addService(googletag.pubads()); 
     
        gptAdSlots[7] = googletag.defineSlot('/15076752/BillBoard-2-1000x300', [1000, 300], 'div-gpt-ad-1476951614543-7').addService(googletag.pubads()); 
     
        gptAdSlots[8] = googletag.defineSlot('/15076752/Billboard1000x300', [1000, 300], 'div-gpt-ad-1476951614543-8').addService(googletag.pubads()); 
     
        gptAdSlots[9] = googletag.defineSlot('/15076752/Skin_bg', [1600, 1024], 'div-gpt-ad-1476951614543-9').addService(googletag.pubads()); 
     
        gptAdSlots[10] = googletag.defineSlot('/15076752/Text_link', [468, 60], 'div-gpt-ad-1476951614543-10').addService(googletag.pubads()); 
     
        gptAdSlots[11] = googletag.defineSlot('/15076752/Text_link2', [468, 60], 'div-gpt-ad-1476951614543-11').addService(googletag.pubads()); 
     
        gptAdSlots[12] = googletag.defineSlot('/15076752/Text_link3', [468, 60], 'div-gpt-ad-1476951614543-12').addService(googletag.pubads()); 
     
        gptAdSlots[13] = googletag.defineSlot('/15076752/Top_728x90', [728, 90], 'div-gpt-ad-1476951614543-13').addService(googletag.pubads()); 
     
        googletag.pubads().enableSingleRequest(); 
     
        googletag.companionAds().setRefreshUnfilledSlots(true); 
     
        googletag.pubads().enableVideoAds();  
     
        googletag.enableServices(); 
     
        }); 
     
    </script>

    0

    它看起来像你还在每个gptAdSlots失踪[X]

    .defineSizeMapping(mapping2) 
    
    相关问题