1

我正在尝试设置新元素的 html 内容,但是当我检查 slot.getHtml() 是否为我提供了 html 元素(在下面设置)时,它显示一个空字符串。知道为什么会发生这种情况吗?

var slot = googletag.defineSlot('/1234567/sports', [160, 600], 'ozge')
  .addService(googletag.companionAds())
  .addService(googletag.pubads())
  .addService(googletag.content());

googletag.content().setContent(slot, '<h2>Custom content in ad slot.</h2>')

我使用此链接中的代码片段来查看新定义的插槽:https ://gist.github.com/rdillmanCN/a70ec955d9a982127fefadabe8b898b5

4

1 回答 1

0

编辑: 根据此处的详细信息,contentService 将很快被弃用(2022 年 3 月 29 日)。

详细heregoogletag.content()用于手动设置插槽的内容。它在生成的 adcall iframe 之前将 html 内容添加到目标插槽 div:

var slot = googletag.defineSlot('adpath', [728, 90], 'div-1')
.addService(googletag.content())
.addService(googletag.pubads());

var content = '<a href="www.mydestinationsite.com"><img src="www.mysite.com/img.png"></img></a>';
googletag.content().setContent(slot, content);

html结果:

在此处输入图像描述

slot.getHtml()将在生成的 iframe 中提取 html。如果它返回一个空字符串,则意味着您的广告位广告调用是空的。它不提取 . googletag.content(),而是提取 google ad iframe innerHTML。这就是为什么它返回一个空字符串。

警告:根据我的经验,googletag.content().setContent()仅当 adcall 不返回任何内容(空 adcall)时才会设置所需的 html。只要显示横幅,您的 googletag.content() 就会被清除:

在此处输入图像描述

据我了解,googletag.content().setContent()用于在您的 adcall 完成之前设置要显示的 html,或者如果您的 adcall 没有返回任何内容来显示。

总结:slot.getHtml()无法获得生成的广告 iframe 之外的任何内容。当广告调用返回空展示时,它会返回一个空字符串。

于 2021-01-15T10:21:44.370 回答