移动DFP广告在文档加载后移动

问题描述 投票:2回答:3

我们有一个响应式网站,内容区域和侧边栏。当站点响应或加载到移动设备上时,侧边栏会低于内容区域。问题是侧边栏顶部的mrec现在在页面上太低了,我们需要在dom中使它更高。

所以,预渲染我会像这样弹出一些div

<div class="ad-inject-ad ad-mrec2"></div>

根据页面,位置等,可以是mrec1到3。

我还将我的侧边栏mrecs包装在可识别的类中,例如ad-medrec2,这样我就可以在移动设备上移动它们了

$('.sidebar .ad-medrec2').appendTo('.ad-inject-ad.ad-mrec2')

这很有魅力。

但是,60-70%的时间广告消失了。结构仍然存在,您可以看到广告应该是300 + px高的容器div,但广告已经消失。

我尝试在DFP中使用refresh()方法以及display()方法。似乎广告已展示,但不可见。我失去了广告的可见度,而不是广告本身。

我已经读过,这可能是由于iframe和无法重置状态造成的。但是,我不确定国家是否需要刷新。

而且,为什么这一切都在三分之一的时间内起作用?

我能在这做什么?

编辑

我还查看了DFP jQuery插件,但如果可以避免,则不希望加载其他脚本。

javascript jquery html google-dfp
3个回答
1
投票

为什么不在页面上创建第二个广告?您可以使用DFP功能defineSizeMapping根据窗口大小呈现正确的广告。


0
投票

所以,我现在的成功率非常高。

首先,我移动广告。

$('.sidebar .ad-medrec2').appendTo('.ad-inject-ad.ad-mrec2');

然后,我计算出广告容器的id和槽被调用的内容,删除div的内容并再次调用googletag函数重新填充。

mrec2_id = $('.ad-medrec2').attr('id');
mrec2_slot_name = mrec2_id.substr(0, mrec2_id.indexOf('-wrapper'))
$('#' + mrec2_slot_name).children().remove();
googletag.cmd.push(function() {
  googletag.display(mrec2_slot_name);
});

这很好用。但是,我担心这会加载广告两次。在我能提出更好的选择之前,我会继续这样做。


0
投票

您可以使用changeCorrelator(GPT参考)重新加载广告,而不会获得新的展示次数。

// This call to refresh fetches a new ad for slot1, without changing the
// correlator.
googletag.pubads().refresh([slot1], {changeCorrelator: false});

// This call to refresh fetches a new ad for each slot, without changing
// the correlator.
googletag.pubads().refresh(null, {changeCorrelator: false});

参考:https://developers.google.com/doubleclick-gpt/reference

© www.soinside.com 2019 - 2024. All rights reserved.