如何在DFP广告管理系统生成的iframe上添加额外的类名?

时间:2015-10-05 11:32:18

标签: javascript iframe google-dfp

我有一个DFP广告素材模板,需要在旧网站和新网站上都有效。 所以在新网站(有自己的广告组件js)上,我想添加一个类名"重新设计"在DFP广告管理系统iframe上。我该怎么做呢?

总之,我希望在DFP上使用相同的广告素材模板,为新网站添加额外的类名。

2 个答案:

答案 0 :(得分:0)

DFP广告管理系统使用友好的iframe。在广告素材模板代码中,您可以找到此父iframe并根据需要应用类名。

在以下示例中,我在名为“mast_head”的div中呈现我的广告素材模板。因此,“mast_head”的第一个孩子将是DFP的iframe。

现在,在我的广告素材模板中,我可以访问此标头元素并应用样式属性,如下所示:

parent.document.getElementById("mast_head").setAttribute("style","height:400px");

这有意义吗?

答案 1 :(得分:0)

使用plugin =>解决了它https://github.com/mcountis/dfp-events

因此,在重新设计ad.js组件时,我添加了一个新的类名"重新设计"。


    window.googletag.cmd.push(function() {
        window.googletag.on('gpt-slot_rendered', function(e,level,message,service,slot) {
            var slotId = slot.getSlotId();
            var $slot = $('#' + slotId.getDomId());

            // DFP adds two iframes, one for calling scripts and one for displaying the ad. we want the one that is not hidden
            if ($slot.find('iframe:not([id*=hidden])')
                .map(function() { return this.contentWindow.document; })
                .find('body')
                .children().length > 0
            ) {
                $slot.find('iframe').contents().find('body').addClass('redesign');
            }
        });
    });