Как использовать несколько блоков 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?

вот как я его использую (только первый есть):

<!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>

4 ответов


чтобы иметь более одного блока 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({});
});

использование jQuery...

$(".adsbygoogle").each(function () { (adsbygoogle = window.adsbygoogle || []).push({}); });

вызов <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> только один раз, в самом низу страницы (перед </body>).

далее разместите фрагменты объявлений отдельно следующим образом:

<!-- 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>

Если вы хотите использовать несколько блоков 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. (И, вероятно, совершенно излишне. Вы можете просто вставить три фрагмента рекламного кода или один и тот же фрагмент три раза.)