Задать вопрос
partyzanx
@partyzanx

Как вставлять рекламные блоки AdSense через скрипт?

Сделал вот такой скрипт, который после каждого дива .liju вставляет HTML код рекламного блока (количество дивов на странице всегда разное), но рекламные блоки не появляются, хотя там где вставлено статично всё появляется:

let lijuArr = document.querySelectorAll('.liju') || []; 
 
for (let i = 0; i < lijuArr.length; i++) {
let advDiv = document.createElement('div');
advDiv.classList.add('advDiv');
advDiv.innerHTML = `<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"><\/script> 
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-111"
     data-ad-slot="1212"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
<\/script>`
lijuArr[i].after(advDiv);
}


Ошибок в консоли нет.
  • Вопрос задан
  • 552 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
partyzanx
@partyzanx Автор вопроса
Решение было следующим:

1.
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
вырезаем и вставляем перед закрывающим тегом head

2.

<script>
let lijuArr = document.querySelectorAll('.liju') || []; 
 
// Вставляем дивы с классом advDiv после дивов с классом liju

for (let i = 0; i < lijuArr.length; i++) {
let advDiv = document.createElement('div');
advDiv.classList.add('advDiv'); 
lijuArr[i].after(advDiv); 
}

// После загрузки страницы в дивы с классом advDiv вставляем <ins class... , и после каждого дива вставляем (adsbygoogle = window.adsbygoogle || []).push({});
document.addEventListener('DOMContentLoaded', function(){
let advArr = document.querySelectorAll('.advDiv') || []; 
 
    advArr.forEach(element => {
        element.innerHTML='<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2272238036927" data-ad-slot="43425234" data-ad-format="auto" data-full-width-responsive="true"></ins>';
        (adsbygoogle = window.adsbygoogle || []).push({});
    });
 
    });
 
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Тэг скрипт не сработает так.
Нужно грузить или сразу инлайном на странице, или через head, или через onload.

Вот этот:
<script async src="https://pagead2....

PS: includeHTML отлично подходит для этой задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы