Google AdSense автоматически расширяется в зависимости от ширины экрана
Я хочу включить автоадрес Google AdSense только на мобильных устройствах, чтобы показывались якорные объявления (ширина <800 пикселей), в то время как на большом экране мне нужен только определенный элемент рекламы, а не автоадрес.
Поэтому я пытаюсь добавить в голову следующее:
<script sync src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-xxxxx" crossorigin="anonymous""></script>
<script>
if (screen.width<800) {
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-xxxx",
enable_page_level_ads: true,
overlays: {
bottom: true,
}
});
}
</script>
А в теле:
<style>
@media (max-width:800px) {
.ads-right {
display: none;
}
}
</style>
<div class="ads-right">
<ins class="adsbygoogle" style="display:block;" data-ad-client="ca-pub-xxxxxxx" data-ad-slot="yyyyy" data-ad-format="rectangle" data-full-width-responsive="true"></ins>
<script>
if (screen.width>800) {
(adsbygoogle = window.adsbygoogle || []).push({});
}
</script>
</div>
В результате он работает, но на маленьком экране (ширина <800 пикселей) я получаю эту ошибку в консоли, и якорная реклама находится вверху, а не внизу:
Uncaught N {message: "adsbygoogle.push() error: Only one 'enable_page_level_ads' allowed per page.", name: 'TagError', pbr: true, stack: "TagError: adsbygoogle.push() error: Only one 'enab…google.js?client=ca-pub-xxxxx:222:259)"}
Какие-либо предложения?
1 ответ
Это должно работать. Вместо добавления параметра в adsbygoogle.js используйте классический старый код.
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" crossorigin="anonymous"></script>
enable_page_level_ads следует вызывать в скриптах один раз
if (screen.width<800) {
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-xxxx",
enable_page_level_ads: true,
overlays: {
bottom: true,
}
});
} else {
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-xxxx",
enable_page_level_ads: false,
overlays: {
bottom: true,
}
});
}