使用Ajax调用加载动态旋转器将动态HTML样式附加到正文中。 ADs DIV ID将以折叠模式动态附加到Rotator的主体中。
使用尺寸为180x150的DFP Iframe广告
在初始页面加载中没有网页源中的DIV ID。
我有一个方案,通过Ajax Call将DIV Id动态地附加到网页正文中。
代码流程
在网页的HEAD标记内添加了GPT库包含。
<head>
<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>
</head>
AS井在HEAD标签中的cmd.push()方法中定义SLOT,该标签将调用DFP Server。禁用初始加载,因为定义槽将在初始页面加载期间检查DIV ID,这会引发错误。
<head>
<script type='text/javascript'>
var slot1 = '';
googletag.cmd.push(function() {
slot1 = googletag.defineSlot('/12638013/Connect_180x150', [180, 150], 'div-gpt-ad- 1389885200465-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.pubads().disableInitialLoad();
googletag.enableServices();
});
</script>
</head>
一旦页面在HEAD Tag中使用上述脚本加载。通过Ajax Call将DIV ID附加到网页正文中。
jQuery('body').append('<div id="div-gpt-ad-1389885200465-0" style="width:180px; height:150px;"><script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1389885200465-0"); });</script></div>');
将DIV ID动态呈现到网页中。刷新HEAD标记中定义的广告位。
googletag.pubads().refresh([slot1]);
最终结果:
使用Google调试控制台验证了上一页。
页面请求没有任何错误,表明页面标记正确。
852 ms来渲染页面 491毫秒来获取广告 0毫秒呈现广告
Status Time Description
Information Start Created slot: /12638013/Connect_180x150_0
Information 1 ms Google service JS loaded
Information 1 ms Created service: publisher_ads
Information 1 ms Associated service "publisher_ads" with slot "/12638013/Connect_180x150".
Information 2 ms Using single request mode to fetch ads.
Information 2 ms Fetching GPT PubAds implementation
Information 2 ms Invoked queued function. Total: 1. Errors: 0.
Information 57 ms GPT implementation fetched.
Information 759 ms Calling fillslot.
Information 773 ms Invoked queued function. Total: 2. Errors: 0.
Information 852 ms Page load complete
Information 7090 ms Refreshing ads.
Information 7135 ms Fetching ad for slot: /12638013/Connect_180x150
Information 7626 ms Receiving ad for slot: /12638013/Connect_180x150
Information 7626 ms Rendering ad for slot: /12638013/Connect_180x150
Information 7626 ms Completed rendering ad for slot: /12638013/Connect_180x150
但广告未在动态注入DIV的旋转器内呈现。
我错过了什么?建议对我有用。
答案 0 :(得分:3)
我自己多年来一直有同样的问题......然后我发现了这个问题:https://plugins.jquery.com/dfp/
您基本上可以放弃所有Google JS并使用提供的2-3行解决方案。 我遇到的唯一障碍是缺少“enableSingleRequest”选项....如果您在网页上多次加载广告,则需要将其设置为false。