Как вы используете несколько единиц AdSense на одной странице?
Как у вас есть несколько единиц 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({});
});
Ответ 2
Использование jQuery...
$(".adsbygoogle").each(function () { (adsbygoogle = window.adsbygoogle || []).push({}); });
Ответ 3
Если вы хотите использовать несколько единиц AdSense на одной странице, вам нужно создать и вставить несколько фрагментов AdSense:
<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. (И, вероятно, совершенно ненужно. Вы можете просто вставить три фрагмента рекламного кода или один и тот же фрагмент три раза.)