Фильтрация ботов и пауков для рекламной системы. Блокировка зашла слишком далеко

1

У нас есть рекламная система для дома, и мы постоянно боремся с ботами и пауками. Очевидно, мы хотим, чтобы как можно ближе к 100% действительным показам, и у меня есть определенная зона объявлений, с которой я экспериментирую.

Эта рекламная зона отображается только на одной странице сайта, поэтому я сравниваю наши просмотры страниц Google Analytics для этой страницы с количеством показов для этой рекламной зоны и стараюсь, чтобы они были как можно ближе.

Основные защиты включают в себя известный список ботов/пауков, обслуживающий объявления с помощью javascript и honeypot для автоматического сбора новых скребок/ботов.

Это обеспечивает доставку рекламы на 130-150% просмотров страниц. Значение, боты запускают показы, но не просмотры страниц.

Итак, я начал загружать объявления только по движению мыши, а доставка упала до 40-60% просмотров страниц.

Теперь это только рабочий стол, без мобильного.

Что я не думаю об этом исполнении, сейчас так мало? Не так много людей с JS отключились или просматривали без мышей.

Я на самом деле предположил, что едва ли буду прерывать показы, думая, что большинство ботов будут имитировать движение мыши, а не то, что я брошу их так низко.

У кого-нибудь есть мысли?

РЕДАКТИРОВАТЬ С JS SNIPPET

adShow = 0;
document.onmousemove = function(){
    if (adShow == 0) {
            var leaderboard = CODE_FOR_AD;
            var adLeaderboard = document.querySelector('.adspace-leaderboard#adspace');
            adLeaderboard.innerHTML = leaderboard;
            adShow = 1;             
    }
}
Теги:
web-crawler
bots

1 ответ

0

Когда вы прокомментировали этот ответ (как я и ожидал), вы разместили фрагмент JS сразу после открытия body -tag, поэтому перед фактическим элементом HTML (то же самое произойдет, если вы разместите этот фрагмент в head разделе страницы). Весьма вероятно, что кто-то перемещает мышь во время загрузки страницы, и поэтому событие mousemove может быть выполнено до того, как будет создан HTML-элемент, и поэтому рекламное пространство никогда не будет загружено.

Вы можете легко это исправить, разместив фрагмент непосредственно перед закрывающим тегом </body> или обернув код в onDomReady или onLoad. Последние два кода будут выполняться, соответственно, после загрузки DOM или даже после загрузки всех активов (изображений и т.д.). В вашем случае onDomReady будет достаточно.

Как это:

document.onDomReady = function(){
    adShow = 0;
    document.onmousemove = function(){
        if (adShow == 0) {
                var leaderboard = CODE_FOR_AD;
                var adLeaderboard = document.querySelector('.adspace-leaderboard#adspace');
                adLeaderboard.innerHTML = leaderboard;
                adShow = 1;             
        }
    }
}
  • 0
    Код теперь находится в теле HTML.
  • 0
    После элементов ".adspace-leaderboard # adspace"?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню