TagError: adsbygoogle.push() error: No slot size for availableWidth=0 when i use responsive ads
TagError: adsbygoogle.push() error: No slot size for availableWidth=0 when i use responsive ads
我为 Adsense 设置了自适应广告
我遇到错误:
未捕获的异常:TagError:adsbygoogle.push() 错误:availableWidth=0
没有插槽大小
在每个包含此代码的页面上
<style type="text/css">
.adslot_2 { display:inline-block;width: 336px; height: 280px;}
@media (max-width: 336px) { .adslot_2 { width: 300px; height: 250px; } }
@media (min-width: 500px) { .adslot_2 { display: none; } }
</style>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle adslot_2" data-ad-client="removed for security purpose" data-ad-slot="removed for security purpose" data-ad-format="rectangle"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
我多次尝试篡改代码,但仍然遇到同样的错误
请注意,我还有其他具有不同代码的响应式广告单元未显示此错误,因此我 100% 确定问题出在代码本身
我的objective是从桌面隐藏广告并在移动设备上显示
代码有什么问题?
Google AdSense 中(基本上)有两种不同的响应式广告单元方法 "sizing"。
- "根据 space 可用的 自动调整大小"
data-ad-format
。请参阅 About responsive ad units 页。
- "完全正确
每个屏幕宽度的广告单元尺寸 ”,包含
@media
个查询。请参阅 如何
修改您的自适应广告代码 页面。 (你会发现有 "variations",
此方法的不同实现。)
第一个是自动的,第二个是"manual"。
通常没有方法可以同时是自动的和手动的,因为两者之间会有冲突,我认为如果你去掉data-ad-format="rectangle"
.
你的代码应该可以正常工作
如果这对您有用,请再次检查 "My ads" > "Ad units" 页面在您的 Google AdSense 控制面板中,并确保此 广告单元 ID (data-ad-slot
) 被列为 "Responsive" - none 两种方法中的一种应与固定尺寸的广告单元一起使用。
我遇到了类似的问题。我注意到这是因为横幅根据屏幕尺寸变得不可见。一个解决方案是重命名 "adsbygoogle" class(我选择了 'ADSENSE')以确保在我将它们从 DOM 如果样式表加载后它们不可见(因此 'load' 事件):
window.addEventListener('load', () => {
let matches = document.querySelectorAll("ins.ADSENSE");
Array.from(matches).forEach((element) => {
let parentElement = element.parentElement;
if (window.getComputedStyle(parentElement).getPropertyValue("display") === "none") {
element.remove();
} else {
element.classList.remove("ADSENSE");
element.classList.add("adsbygoogle");
(adsbygoogle = window.adsbygoogle || []).push({});
}
});
});
我为 Adsense 设置了自适应广告
我遇到错误:
未捕获的异常:TagError:adsbygoogle.push() 错误:availableWidth=0
没有插槽大小在每个包含此代码的页面上
<style type="text/css">
.adslot_2 { display:inline-block;width: 336px; height: 280px;}
@media (max-width: 336px) { .adslot_2 { width: 300px; height: 250px; } }
@media (min-width: 500px) { .adslot_2 { display: none; } }
</style>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle adslot_2" data-ad-client="removed for security purpose" data-ad-slot="removed for security purpose" data-ad-format="rectangle"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
我多次尝试篡改代码,但仍然遇到同样的错误 请注意,我还有其他具有不同代码的响应式广告单元未显示此错误,因此我 100% 确定问题出在代码本身
我的objective是从桌面隐藏广告并在移动设备上显示
代码有什么问题?
Google AdSense 中(基本上)有两种不同的响应式广告单元方法 "sizing"。
- "根据 space 可用的 自动调整大小"
data-ad-format
。请参阅 About responsive ad units 页。 - "完全正确
每个屏幕宽度的广告单元尺寸 ”,包含
@media
个查询。请参阅 如何 修改您的自适应广告代码 页面。 (你会发现有 "variations", 此方法的不同实现。)
第一个是自动的,第二个是"manual"。
通常没有方法可以同时是自动的和手动的,因为两者之间会有冲突,我认为如果你去掉data-ad-format="rectangle"
.
如果这对您有用,请再次检查 "My ads" > "Ad units" 页面在您的 Google AdSense 控制面板中,并确保此 广告单元 ID (data-ad-slot
) 被列为 "Responsive" - none 两种方法中的一种应与固定尺寸的广告单元一起使用。
我遇到了类似的问题。我注意到这是因为横幅根据屏幕尺寸变得不可见。一个解决方案是重命名 "adsbygoogle" class(我选择了 'ADSENSE')以确保在我将它们从 DOM 如果样式表加载后它们不可见(因此 'load' 事件):
window.addEventListener('load', () => {
let matches = document.querySelectorAll("ins.ADSENSE");
Array.from(matches).forEach((element) => {
let parentElement = element.parentElement;
if (window.getComputedStyle(parentElement).getPropertyValue("display") === "none") {
element.remove();
} else {
element.classList.remove("ADSENSE");
element.classList.add("adsbygoogle");
(adsbygoogle = window.adsbygoogle || []).push({});
}
});
});