如何在一页上使用多个 AdSense 单元?
Posted
技术标签:
【中文标题】如何在一页上使用多个 AdSense 单元?【英文标题】:How do you use multiple adsense units on one page? 【发布时间】:2014-09-25 13:59:19 【问题描述】:如何在一个网站上拥有多个 AdSense 单元? Google 给出的唯一代码是单位代码。
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="123456"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
如果我想在一个网站上使用多个 AdSense 单元怎么办?我只使用<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
和(adsbygoogle = window.adsbygoogle || []).push();
一次,然后将<ins ...></ins>
代码放在我想要的位置。
问题是只有第一个 adsense 单元被解析和显示。您需要做什么才能显示多个 AdSense 单元?
这就是我使用它的方式(只显示第一个ins
):
<!doctype html>
<html>
<body>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="first"></ins>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="second"></ins>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="third"></ins>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>(adsbygoogle = window.adsbygoogle || []).push();</script>
</body>
</html>
【问题讨论】:
【参考方案1】:要在一页上有多个 AdSense 单元,您必须添加更多行 (adsbygoogle = window.adsbygoogle || []).push();
。
因此,如果您有 3 个广告单元,您希望使用 3 次。
(adsbygoogle = window.adsbygoogle || []).push();
(adsbygoogle = window.adsbygoogle || []).push();
(adsbygoogle = window.adsbygoogle || []).push();
如果您想动态执行,请使用:
[].forEach.call(document.querySelectorAll('.adsbygoogle'), function()
(adsbygoogle = window.adsbygoogle || []).push();
);
【讨论】:
我仍然每页只看到一个。 当我还包括 HTML sn-p 而不仅仅是 js 代码时,这对我有用! 如果我在一个页面中使用相同的“数据广告位”两次,显示的第二个广告是否会计为单独的展示?还是我需要使用不同的数据广告位从第二个展示的广告中获得收入? 每个广告单元都有一个唯一的data-ad-slot
ID 对吧?我可以在同一个页面上为同一个广告单元(同一个data-ad-slot
)放置广告吗?谢谢【参考方案2】:
使用 jQuery...
$(".adsbygoogle").each(function () (adsbygoogle = window.adsbygoogle || []).push(); );
【讨论】:
【参考方案3】:只需在页面底部(</body>
之前)调用一次<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
。
接下来,像这样单独放置您的广告 sn-ps:
<!-- Top Banner Ad -->
<ins class="adsbygoogle"
style="display:inline-block;width:320px;height:100px"
data-ad-client="ca-pub-1234567890"
data-ad-slot="4693644638"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
<!-- Responsive Ad -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-1234567890"
data-ad-slot="3097818646"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
【讨论】:
如果您将 @Danger:你为什么认为这会是个问题? 每个广告单元都有一个唯一的data-ad-slot
ID 对吧?我可以在同一个页面上为同一个广告单元(同一个data-ad-slot
)放置广告吗?谢谢【参考方案4】:
如果您想在一个页面上使用多个 AdSense 单元,则需要创建并粘贴多个 AdSense sn-ps:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="first"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="second"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-123456"
data-ad-slot="third"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
在 AdSense 中只允许修改有限数量的代码。 https://support.google.com/adsense/answer/1354736?hl=en
我可能会回答为什么“只有第一个 adsense 单元被解析和显示”,我可以尝试向您展示如何修改您的示例以显示所有三个广告,但我认为这是不相关(在这种情况下),因为 AdSense 不允许这样做。 (而且可能完全没有必要。您可以简单地粘贴三个广告代码 sn-ps,或者 - 相同的 sn-p 三次。)
【讨论】:
见exisweb.net/…。多次包含 adsbygoogle.js 脚本是一种不好的做法。准时就够了。 @EmmanuelGleizer 只是好奇,那为什么 Google 的帮助文档不这么说呢? @Emmanuel Gleizer - AdSense 不是 ***(例如 - 如果您的 AdSense 帐户被禁用,您将无法“自行接受”您的申诉),它与编程无关,AdSense 是业务这在 AdSense 中不是“不好的做法”。你说得对:“一次就够了。”,没错。 @Justin Skiles - 是的,AdSense 文档是这么说的,这里是:support.google.com/adsense/answer/3221666?hl=en,这里是:googledevelopers.blogspot.com/2013/07/… 引用给定链接:“为了充分利用异步代码,我们建议您同时切换给定页面上的所有广告单元。”以上是关于如何在一页上使用多个 AdSense 单元?的主要内容,如果未能解决你的问题,请参考以下文章