Задать вопрос
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);
}


Ошибок в консоли нет.
  • Вопрос задан
  • 548 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 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>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Jquery
$(document).ready(function(){
$(".liju").html('<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>');
});
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Тэг скрипт не сработает так.
Нужно грузить или сразу инлайном на странице, или через head, или через onload.

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

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

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

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