НО как реализовать несколько блоков с таким скриптом на одной странице?
Как я понял, это решение не работает если применить его к нескольким блокам на одной странице?
Помогите мне и многим владельцам сайтов, кто так же в поиске подобного.
———- Добавлено 20.02.2020 в 16:08 ———-
видимо кэш и CDN
все работает)
Добрый день! Если блоки устанавливаются в ленту с бесконечной выдачей, то в скрипте нужно следить за значениями параметра «pageNumber» (должен соответствовать номеру страницы) и «div id». Также ID контейнера должен быть уникальным и соответствовать параметру «renderTo» в script.
Nicko_217
Дмитрий, здравствуйте!
У меня получается так, что 3 блока (один в боковом виджете справа, второй в середине статьи и третий в конце статьи).
Все три имеют свои id RTB.
В остальном скрипт одинаковый.
И при просмотре страницы с пк срабатывает всегда боковой и иногда в конце статьи.
А с мобильного только в конце статьи.
Может быть так, что все три блока мешаю друг другу в скрипте:
<script type=»text/javascript»>
if (typeof pageNumber ==»undefined») var pageNumber = 1;
Nicko_217: вся фишка в том, что если разместить один блок — то все работает, а два или более — отображается только один
Добрый день! Нужно заменить ID в <div id=»yandex_rtb_R-A-123456-1″></div> и в renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber, например, на <div id=»yandex_rtb1″></div> renderTo: «yandex_rtb1» + pageNumber.
В другом блоке — на другой, например: на <div id=»yandex_rtb2″></div> renderTo: «yandex_rtb2» + pageNumber.
У третьего — например, на <div id=»yandex_rtb3″></div> renderTo: «yandex_rtb3» + pageNumber.
То есть, ID контейнера — так же, как и ID RTB-блока должен быть уникальным на странице и в ленте.
Nicko_217
Дмитрий Громов: Добрый день! Нужно заменить ID в <div id=»yandex_rtb_R-A-123456-1″></div> и в renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber, например, на <div id=»yandex_rtb1″></div> renderTo: «yandex_rtb1» + pageNumber.
В другом блоке — на другой, например: на <div id=»yandex_rtb2″></div> renderTo: «yandex_rtb2» + pageNumber.
У третьего — например, на <div id=»yandex_rtb3″></div> renderTo: «yandex_rtb3» + pageNumber.
То есть, ID контейнера — так же, как и ID RTB-блока должен быть уникальным на странице и в ленте.
Дмитрий, так все и сделано, но ID каждого блока взяты из разных RTB баннеров. То есть yandex_rtb_R-A-123456-1 / yandex_rtb_R-A-123456-2 и yandex_rtb_R-A-123456-4 (к примеру)
Nicko_217
Добрый день!
Нашел на форуме такое решение от Дмитрия Громова:
<div id=»yandex_rtb_R-A-123456-1″></div>
<script type=»text/javascript»>
if (typeof pageNumber ==»undefined») var pageNumber = 1;
else pageNumber++;
document.getElementById(«yandex_rtb_R-A-123456-1»).id = «yandex_rtb_R-A-123456-1-» + pageNumber;
(function (w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: «R-A-123456-1»,
renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber,
async: true,
pageNumber: pageNumber
});
});
t = d.getElementsByTagName(«script»)[0];
s = d.createElement(«script»);
s.type = «text/javascript»;
s.src = «https://an.yandex.ru/system/context.js»;
s.async = true;
t.parentNode.insertBefore(s, t);
})(this, this.document, «yandexContextAsyncCallbacks»);
</script>
Оно работает. Спасибо ему за это.
НО как реализовать несколько блоков с таким скриптом на одной странице?
Как я понял, это решение не работает если применить его к нескольким блокам на одной странице?
Помогите мне и многим владельцам сайтов, кто так же в поиске подобного.
———- Добавлено 20.02.2020 в 16:08 ———-
видимо кэш и CDN
все работает)
Дмитрий Громов
Добрый день!
Нашел на форуме такое решение от Дмитрия Громова:
<div id=»yandex_rtb_R-A-123456-1″></div>
<script type=»text/javascript»>
if (typeof pageNumber ==»undefined») var pageNumber = 1;
else pageNumber++;
document.getElementById(«yandex_rtb_R-A-123456-1»).id = «yandex_rtb_R-A-123456-1-» + pageNumber;
(function (w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: «R-A-123456-1»,
renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber,
async: true,
pageNumber: pageNumber
});
});
t = d.getElementsByTagName(«script»)[0];
s = d.createElement(«script»);
s.type = «text/javascript»;
s.src = «https://an.yandex.ru/system/context.js»;
s.async = true;
t.parentNode.insertBefore(s, t);
})(this, this.document, «yandexContextAsyncCallbacks»);
</script>
Оно работает. Спасибо ему за это.
НО как реализовать несколько блоков с таким скриптом на одной странице?
Как я понял, это решение не работает если применить его к нескольким блокам на одной странице?
Помогите мне и многим владельцам сайтов, кто так же в поиске подобного.
———- Добавлено 20.02.2020 в 16:08 ———-
видимо кэш и CDN
все работает)
Добрый день! Если блоки устанавливаются в ленту с бесконечной выдачей, то в скрипте нужно следить за значениями параметра «pageNumber» (должен соответствовать номеру страницы) и «div id». Также ID контейнера должен быть уникальным и соответствовать параметру «renderTo» в script.
Nicko_217
Дмитрий, здравствуйте!
У меня получается так, что 3 блока (один в боковом виджете справа, второй в середине статьи и третий в конце статьи).
Все три имеют свои id RTB.
В остальном скрипт одинаковый.
И при просмотре страницы с пк срабатывает всегда боковой и иногда в конце статьи.
А с мобильного только в конце статьи.
Может быть так, что все три блока мешаю друг другу в скрипте:
<script type=»text/javascript»>
if (typeof pageNumber ==»undefined») var pageNumber = 1;
else pageNumber++;
document.getElementById(«yandex_rtb_R-A-123456-1»).id = «yandex_rtb_R-A-123456-1-» + pageNumber;
(function (w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: «R-A-123456-1»,
renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber,
async: true,
pageNumber: pageNumber
});
Nicko_217
вся фишка в том, что если разместить один блок — то все работает, а два или более — отображается только один
Дмитрий Громов
Дмитрий, здравствуйте!
У меня получается так, что 3 блока (один в боковом виджете справа, второй в середине статьи и третий в конце статьи).
Все три имеют свои id RTB.
В остальном скрипт одинаковый.
И при просмотре страницы с пк срабатывает всегда боковой и иногда в конце статьи.
А с мобильного только в конце статьи.
Может быть так, что все три блока мешаю друг другу в скрипте:
<script type=»text/javascript»>
if (typeof pageNumber ==»undefined») var pageNumber = 1;
else pageNumber++;
document.getElementById(«yandex_rtb_R-A-123456-1»).id = «yandex_rtb_R-A-123456-1-» + pageNumber;
(function (w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: «R-A-123456-1»,
renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber,
async: true,
pageNumber: pageNumber
});
вся фишка в том, что если разместить один блок — то все работает, а два или более — отображается только один
Добрый день! Нужно заменить ID в <div id=»yandex_rtb_R-A-123456-1″></div> и в renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber, например, на <div id=»yandex_rtb1″></div> renderTo: «yandex_rtb1» + pageNumber.
В другом блоке — на другой, например: на <div id=»yandex_rtb2″></div> renderTo: «yandex_rtb2» + pageNumber.
У третьего — например, на <div id=»yandex_rtb3″></div> renderTo: «yandex_rtb3» + pageNumber.
То есть, ID контейнера — так же, как и ID RTB-блока должен быть уникальным на странице и в ленте.
Nicko_217
Добрый день! Нужно заменить ID в <div id=»yandex_rtb_R-A-123456-1″></div> и в renderTo: «yandex_rtb_R-A-123456-1-» + pageNumber, например, на <div id=»yandex_rtb1″></div> renderTo: «yandex_rtb1» + pageNumber.
В другом блоке — на другой, например: на <div id=»yandex_rtb2″></div> renderTo: «yandex_rtb2» + pageNumber.
У третьего — например, на <div id=»yandex_rtb3″></div> renderTo: «yandex_rtb3» + pageNumber.
То есть, ID контейнера — так же, как и ID RTB-блока должен быть уникальным на странице и в ленте.
Дмитрий, так все и сделано, но ID каждого блока взяты из разных RTB баннеров. То есть yandex_rtb_R-A-123456-1 / yandex_rtb_R-A-123456-2 и yandex_rtb_R-A-123456-4 (к примеру)