Не уверен, правильно ли я понял, но, думаю, вам придется сделать что-то вроде этого: https://www.monetizemore.com/blog/how-to-make-dfp-ad-units-responsive-2/
Я использовал этот пример для добавления адаптивных единиц к моим существующим вызовам DFP.
Обратите внимание, что я не использовал этот верхний скрипт "var useSSL".Я использовал то, что дает мне DFP при создании юнитов.
Я создал 2 рекламных блока и создал 3 размера, которые мне нужны для каждого юнита (728x90, 468x60 и 320x50).Майн требует рекламы Adsense, но уверен, что вы можете позвонить по ней.
В конце концов, чтобы быть более прямым, я просто добавил:
var mapping = googletag.sizeMapping().
addSize([992, 0], [728, 90]).
addSize([768, 0], [468, 60]).
addSize([320, 0], [320, 50]).build();
var mapping2 = googletag.sizeMapping().
addSize([992, 0], [728, 90]).
addSize([768, 0], [468, 60]).
addSize([320, 0], [320, 50]).build();
googletag.defineSlot('/1071122/Your-ads-div-id1', [300, 250], 'div-gpt-ad-123123123-0').defineSizeMapping(mapping).addService(googletag.pubads());
googletag.defineSlot('/1071122/Your-ads-div-id2', [300, 250], 'div-gpt-ad-123123123-0').defineSizeMapping(mapping2).addService(googletag.pubads());
При поиске примеров для этогоЯ нашел много хитрых методов.Но искренне ничего этого не нужно.Я только что сделал это прямо сейчас, и эта тема была одним из «ответов», которые я нашел, ища примеры.Отметьте это, чтобы помочь, если я смог сделать на моем сайте.Если я могу, возможно, я возобновлю весь код, чтобы он работал так:
<!-- Adsense/DFP default header -->
<script type="text/javascript" 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() {
//here you create a var to map your sizes for this unit - mine is equal in addSizes but you can create how many you need and with different sizes you like. First [992, 0] is for resolution and later [728, 90] is the banner size to this resolution (you can put more than one size for each resolution if you like)
var mapping = googletag.sizeMapping().
addSize([992, 0], [728, 90]).
addSize([768, 0], [468, 60]).
addSize([320, 0], [320, 50]).build();
var mapping2 = googletag.sizeMapping().
addSize([992, 0], [728, 90]).
addSize([768, 0], [468, 60]).
addSize([320, 0], [320, 50]).build();
googletag.defineSlot('/1231231/your-ads-div-id-1', [300, 250], 'div-gpt-ad-1231231231231-0').defineSizeMapping(mapping).addService(googletag.pubads());
googletag.defineSlot('/1231231/your-ads-div-id-2', [300, 250], 'div-gpt-ad-1231231231231-0').defineSizeMapping(mapping2).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.pubads().collapseEmptyDivs();
googletag.enableServices();
});
</script>
Вот и все.С помощью этого кода у вас есть два адаптивных рекламных блока, называемых баннерами DFP (Ads) Adsense с 3 размерами и 3 различными разрешениями.
И, конечно, в вашем HTML вы должны будете называть эти DIV как:
<!-- /1231231/your-ads-div-id-1 -->
<div id="div-gpt-ad-123123123-0">
<script>
googletag.cmd.push(function() { googletag.display("div-gpt-ad-1231231231231-0"); });
</script>
</div>