Упал доход

rus2002
На сайте с 19.03.2024
Offline
18
#21621

Проверил все три скрипта. Корректно отработал только самый первый скрипт. 

Одно не понятно. Это всё на каждый блок надо прописывать? Или можно как-то вынести в header?

T
На сайте с 25.04.2004
Offline
180
#21622
Евгения Ткачева #:

Базы нужно обновлять, некоторые умники запросы еще отправляют) 

Для этой задачи хватит обычного js. 

Такой метод определения страны очень не точный. Думаю +-20% будет мимо. Я, например, живу в Таиланде, а язык браузера у меня ru. 
Сам использую данные от ripe.net: https://stat.ripe.net/data/country-resource-list/data.json?resource=ru
Данные впрочем там не очень точные. Зачастую, крымские провайдеры часто показываются украинскими. Многие ip адреса улетели в другие страны, а акутальным владельцам лень менять актуальную информацию в базе. Роскомнадзор еще год назад обещал составить полную актуальную базу российских ip адресов, но почему-то инициатива заглохла.
EE
На сайте с 02.01.2021
Offline
178
#21623
rus2002 #:

Проверил все три скрипта. Корректно отработал только самый первый скрипт. 

Одно не понятно. Это всё на каждый блок надо прописывать? Или можно как-то вынести в header?

Скрипт, естественно, должен работать на всех страницах, на которых вы планируете выводить рекламу данным способом. <div id="adContainer"></div> размещаете там, где хотите установить блоки на странице. Только вот с РСЯ есть незадача, потому что для каждого блока нужно делать подобное. Не понимаю, почему не могут сделать так, как это реализовано в AdSense.
vituson
На сайте с 10.12.2008
Offline
38
#21624
rus2002 #:

Проверил все три скрипта. Корректно отработал только самый первый скрипт. 

Одно не понятно. Это всё на каждый блок надо прописывать? Или можно как-то вынести в header?

<script>
  // Получить код страны пользователя
  var countryCode = navigator.language.substring(0, 2);
  // Определить код рекламы в зависимости от кода страны
  var adCode;
  if (countryCode === "ru") {
    adCode = "RU_AD_CODE";
  } else {
    adCode = "NON_RU_AD_CODE";
  }
  // Вывести код рекламы
  document.write(adCode);
</script>

Попробуйте и второй скрипт. Только что вернулся с быдлозавода и немного исправил код (без использования ИИ, прошу заметить!), вместо - RU надо - ru. Первый код я тоже проверил - работает, хотя "евгения ткачева" тут слюной брызгала, что нерабочий (необразованный мужик с завода утер нос безграмотной кухарке с углубленными познаниями в программировании). Второй после исправления работает. Если без переделок кода, то этот код надо прописывать каждый раз в нужном месте (учесть, что коды Яндекс-блоков разные). Код прописывать в том месте, где выводится реклама, а не в хедере. Для проверки вывода рекламы в "en-версии" использовал онлайн браузер - browserling.com.

Z0
На сайте с 03.09.2009
Offline
831
#21625
vituson #:

Попробуйте и второй скрипт. Только что вернулся с быдлозавода и немного исправил код (без использования ИИ, прошу заметить!), посмотрел, где ошибки. Первый код я тоже проверил - работает, хотя "евгения ткачева" тут слюной брызгала, что нерабочий. Второй тоже проверил после исправления, работает. Если без переделок кода, то этот код надо прописывать каждый раз в нужном месте (учесть, что коды Яндекс-блоков разные). Код прописывать в том месте, где выводится реклама, а не в хедере. Для проверки вывода рекламы в "en-версии" использовал онлайн браузер - browserling.com.

Не во всех браузерах. https://searchengines.guru/ru/forum/1010516/page2163#comment_17100018

Зачем посылать запрос, чтобы получить язык браузера? - Монетизация в Рекламной Сети Яндекса - О монетизации сайтов
Зачем посылать запрос, чтобы получить язык браузера? - Монетизация в Рекламной Сети Яндекса - О монетизации сайтов
  • 2024.02.14
  • searchengines.guru
Зачем посылать запрос чтобы получить язык браузера. что забыла обо всем на свете и пока ничего дельного не предложила. то со всем беда была бы Я лично этим кодом не пользовался. если за умного хочешь сойти - разберись и выучи то
vituson
На сайте с 10.12.2008
Offline
38
#21626
EdwardEdit #:
Не понимаю, почему не могут сделать так, как это реализовано в AdSense.

Тоже не понимаю, почему РСЯ не может предложить код универсального адаптивного блока, который можно использовать на одной странице несколько раз. В адсенсе один и тот же рекламный код можно было вызывать не только несколько раз на одной странице, но и на любых сайтах в аккаунте.

vituson
На сайте с 10.12.2008
Offline
38
#21627

Я видел ваш комментарий, это уже мелочи, кому нужно, пусть подумает, как можно сделать. Что-то типа этого.

<script>
  // Получить код страны пользователя
  var countryCode = navigator.language;
  // Определить код рекламы в зависимости от кода страны
  var adCode;
  if (countryCode.includes("ru")) {
    adCode = "RU_AD_CODE";
  } else {
    adCode = "NON_RU_AD_CODE";
  }
  // Вывести код рекламы
  document.write(adCode);
</script>
Проверил, вроде работает.
rus2002
На сайте с 19.03.2024
Offline
18
#21628

Вылезла другая проблема - script внутри другого script выводит куски кода.

vituson
На сайте с 10.12.2008
Offline
38
#21629
rus2002 #:

Вылезла другая проблема - script внутри другого script выводит куски кода.

Попробуйте этот вариант:

<head>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> // !эту строку один раз на страницу в хедер!
</head>

    <script>
        var countryCode = navigator.language || navigator.userLanguage;
        if (countryCode.includes("ru")) {
            var script = document.createElement('script');
            script.innerHTML = `
                window.yaContextCb.push(() => {          // Тут ваш блок РСЯ
                    Ya.Context.AdvManager.render({       // Тут ваш блок РСЯ
                        type: 'floorAd',                 // Тут ваш блок РСЯ
                        blockId: 'R-A-XXXXXXXX-X'        // Тут ваш блок РСЯ
                    });
                });
            `;
            document.body.appendChild(document.createComment('Yandex.RTB R-A-XXXXXXX-X')); // Впишите данные из своего блока
            document.body.appendChild(script);
        } else {
            // Код для не русскоязычных пользователей
            var adSenseDiv = document.createElement('ins');
            adSenseDiv.className = 'adsbygoogle';
            adSenseDiv.style.display = 'block';
            adSenseDiv.setAttribute('data-ad-client', 'YOUR_AD_CLIENT');      // Замените на ваш ad client
            adSenseDiv.setAttribute('data-ad-slot', 'YOUR_AD_SLOT');          // Замените на ваш ad slot
            adSenseDiv.setAttribute('data-ad-format', 'auto');
            document.body.appendChild(adSenseDiv);
            (adsbygoogle = window.adsbygoogle || []).push({});
        }
    </script>
Яндекс код введите свой. Я вводил свой код и проверял отображение. На смартфоне флурад отобразился нормально.
KM
На сайте с 12.09.2023
Offline
14
#21630
Как там с рся? Пополз вверх доход? Чёт все молчат в ветке