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);
}


Ошибок в консоли нет.
  • Вопрос задан
  • 527 просмотров
Решения вопроса 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 отлично подходит для этой задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы