Adsense 广告 iframe 有 1/3 的时间是空的 html 正文
Adsense ad iframe has an empty html body 1/3 of the time
我试图让 Adsense 广告在我的网站上正常工作,但不知何故它们在某些页面上加载不一致。广告正确加载的时间可能为 2/3,但偶尔 space 只是空白。据我所知,问题不在于没有可用的广告;创建了广告的 iframe
,添加了 data-load-complete="true"
标签,但不知何故,该广告的 html body
标签仍为空:<body marginwidth="0" marginheight="0"></body>
<ins class="adsbygoogle" style="display: block; height: auto !important; min-height: 0px !important;" data-ad-client="ca-pub-..." data-ad-slot="6818818970" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done">
<ins id="aswift_1_expand" style="display:inline-table;border:none;height:280px;margin:0;padding:0;position:relative;visibility:visible;width:900px;background-color:transparent;">
<ins id="aswift_1_anchor" style="display: block; border: none; height: 280px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 900px; background-color: transparent; overflow: visible;">
<iframe id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;border:0;width:900px;height:280px;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="900" height="280" frameborder="0" src="" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" data-google-container-id="a!1" data-google-query-id="CJf52ubwxewCFQKFgwcdwIoMHw" data-load-complete="true">
<html class=" yirjomiyii idc0_322">
<script type="text/javascript">window["_gaUserPrefs"] = { ioo : function() { return true; } }</script>
<head>
<script>window.top.postMessage('{"msg_type":"resize-me","key_value":[{"key":"r_nh","value":"0"},{"key":"qid","value":"COCMyfTkxewCFcaadwodDGMDxA"}],"googMsgType":"sth"}', '*');</script>
<script>window.top.postMessage('{"msg_type":"adsense-labs","key_value":[{"key":"settings","value":"[\\"ca-pub-...\\",[[1]]]"}],"googMsgType":"sth"}', '*');</script>
</head>
<body marginwidth="0" marginheight="0"></body>
</html>
</iframe>
</ins>
</ins>
</ins>
据我了解,通常如果广告未加载,带有 class adsbygoogle
的元素甚至不应该有任何子元素。有没有人遇到过看似部分加载但主体为空 html 的问题?有什么想法可能导致这种情况或如何避免这种情况?
这很正常。 AdSense 并不总是 returns 广告回复。当 AdSense 未找到任何广告时 - 它 returns 空 iframe 就像您的示例一样。如果可能,应折叠空插槽(注意 resize-me 消息)。我们不会清理 DOM(例如删除所有 ins 元素和 iframe),因为它不会影响页面的外观。它可能会节省一些内存,但考虑到它是 3 个额外的 DOM 元素,这些节省是很小的。
我试图让 Adsense 广告在我的网站上正常工作,但不知何故它们在某些页面上加载不一致。广告正确加载的时间可能为 2/3,但偶尔 space 只是空白。据我所知,问题不在于没有可用的广告;创建了广告的 iframe
,添加了 data-load-complete="true"
标签,但不知何故,该广告的 html body
标签仍为空:<body marginwidth="0" marginheight="0"></body>
<ins class="adsbygoogle" style="display: block; height: auto !important; min-height: 0px !important;" data-ad-client="ca-pub-..." data-ad-slot="6818818970" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done">
<ins id="aswift_1_expand" style="display:inline-table;border:none;height:280px;margin:0;padding:0;position:relative;visibility:visible;width:900px;background-color:transparent;">
<ins id="aswift_1_anchor" style="display: block; border: none; height: 280px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 900px; background-color: transparent; overflow: visible;">
<iframe id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;border:0;width:900px;height:280px;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="900" height="280" frameborder="0" src="" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" data-google-container-id="a!1" data-google-query-id="CJf52ubwxewCFQKFgwcdwIoMHw" data-load-complete="true">
<html class=" yirjomiyii idc0_322">
<script type="text/javascript">window["_gaUserPrefs"] = { ioo : function() { return true; } }</script>
<head>
<script>window.top.postMessage('{"msg_type":"resize-me","key_value":[{"key":"r_nh","value":"0"},{"key":"qid","value":"COCMyfTkxewCFcaadwodDGMDxA"}],"googMsgType":"sth"}', '*');</script>
<script>window.top.postMessage('{"msg_type":"adsense-labs","key_value":[{"key":"settings","value":"[\\"ca-pub-...\\",[[1]]]"}],"googMsgType":"sth"}', '*');</script>
</head>
<body marginwidth="0" marginheight="0"></body>
</html>
</iframe>
</ins>
</ins>
</ins>
据我了解,通常如果广告未加载,带有 class adsbygoogle
的元素甚至不应该有任何子元素。有没有人遇到过看似部分加载但主体为空 html 的问题?有什么想法可能导致这种情况或如何避免这种情况?
这很正常。 AdSense 并不总是 returns 广告回复。当 AdSense 未找到任何广告时 - 它 returns 空 iframe 就像您的示例一样。如果可能,应折叠空插槽(注意 resize-me 消息)。我们不会清理 DOM(例如删除所有 ins 元素和 iframe),因为它不会影响页面的外观。它可能会节省一些内存,但考虑到它是 3 个额外的 DOM 元素,这些节省是很小的。