javascript - 无法在 jQuery-UI 选项卡中显示 Google DFP 广告

标签 javascript ajax jquery-ui-tabs google-dfp

我在 jQuery-UI 标签(通过 ajax 加载)内显示 Google DFP 广告时遇到问题。我这里有一个例子:

http://www.anecka.com/google_dfp/

如您所见,初始页面加载和刷新工作正常,当用户在标签之间切换时,Google DFP 广告就会消失。 Google 控制台显示我的标记是正确的,并且控制台中没有 JavaScript 错误。

我有一个推送广告的方法:

function pushVerticalGoogleAd(slot, div_id) {
        googletag.cmd.push(function() { 
            googletag.defineSlot('/7085388/' + slot, [950, 80], div_id).addService(googletag.pubads());
            googletag.enableServices();
            googletag.display(div_id); 
        });
    }

每个选项卡都包含对此方法的调用,如下所示:

pushVerticalGoogleAd('homepage_top_950x80', 'ad1');

现在,在您说这是因为我重复使用相同的 div-id 并且声明了重复的插槽之前,我同意,但每当我在服务器上随机化广告 div_ids 时,它仍然会出现此问题。

我知道我可能正在用鞋子敲钉子,所以有 Google DFP 广告管理经验的人知道我在哪里可以找到锤子吗? :)

谢谢

最佳答案

我认为您应该尝试使用刷新方法...在不确切知道您要做什么的情况下,很难知道这是否适合您,但下面的代码至少允许通过多次点击来显示广告。 ..

试试这个:

<html>
<head>
    <title>Test</title>
    <link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.8.24.custom.css" />
    <script type="text/javascript" src="js/jquery-1.7.1.js"></script>
    <script type="text/javascript" src="js/jquery.ui.core.js"></script>
    <script type="text/javascript" src="js/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="js/tabs.js"></script>
    <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">
        var divs = {};
        function pushVerticalGoogleAd(slot, div_id) {
            if(div_id in divs) {
                googletag.cmd.push(function() {
                    googletag.pubads().refresh([divs[div_id]]);
                });
            } else {
                googletag.cmd.push(function() {
                    divs[div_id] = googletag.defineSlot('/7085388/' + slot, [950, 80], div_id).addService(googletag.pubads());
                    googletag.enableServices();
                    googletag.display(div_id);
                });
            }
        }
    </script>
</head>
<body>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#tabs-contain').tabs();
        });
    </script>
    <div id="tabs-contain">
        <ul id="tabs">
            <li><a href="ad1.html"><span>Tab 1</span></a></li>
            <li><a href="ad2.html"><span>Tab 2</span></a></li>
        </ul>
    </div>
</body>
</html>

关于javascript - 无法在 jQuery-UI 选项卡中显示 Google DFP 广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12682798/

相关文章:

javascript - AngularJS:理解设计模式

javascript - 您可以在用户关闭窗口之前在 JavaScript 中触发事件吗?

ajax - 使用 API 和 AJAX 发送/包含 'name' 字段到 Mailchimp

css - 具有 100% 高度的 jQuery UI 选项卡具有延伸到可见区域下方的内容和垂直滚动条

jquery-ui - 禁用使用箭头键导航

jquery - 清除 DOM jquery

javascript - 条件 ng-click 中的函数和变量赋值

jquery - 在 jQuery 中设置 "Accept" header 以检索 iframe 中的数据

javascript - Grails:如何将 javascript/ajax 放入 taglib 中?

javascript - 在 Highcharts 中运行总计