Как заблокировать мусорные объявления в AdSense

Просмотров: 309.


Многие издатели не любят, что на их сайтах крутится говнореклама:

  • «Сегодня Поxоpоны Димы Билана»,
  • «Y МYЖА СТАЛЬНОЙ ХРЕH ПO 4 ЧACA»,
  • «Восстановить Суставы Легко Даже Если Вам Стукнуло 45 лет».

Мало того, что это ужасно выглядит, так ещё и зачастую ведёт совершенно не туда, куда заявлено в таком объявление, а это обман перешедшего посетителя. А порой ведёт на сайты-одностраничники, которые пытаются втюхать людям какое-то фуфло под видом чудодейственного средства для каменного стояка, избавления от гипертонии и прочий развод.

Средствами AdSense заблокировать этот шлак невозможно (поправьте, если ошибаюсь), сохранив показ текстовых объявлений.

Как же очистить свои сайты от некачественной рекламы?

Есть ПО на php, которое самостоятельно ищет объявления от говнорекламистов-мошенников, блокирует их и выводит отчёт о проделанной работе (в случае ошибочных блокировок или недоблокировок программу легко донастроить, а объявления заблокировать/разблокировать буквально одним нажатием).

Почему на php? У большинства сайтовладельцев есть возможность выделить отдельную папочку или поддомен для размещения маленькой программки на php. Исходный код открыт, чтобы Вы могли убедиться, что ПО не крадёт Ваш пароль и прочие личные данные. Ставится в любую папку, на любой сайт, просто распаковываете и обращаетесь по адресу где оно лежит. При необходимости изменить пользователя, которому принадлежат файлы. По умолчанию — root. Если оно почует, что на нужные каталоги нет прав, то непременно откажется работать, сообщив причину.

Краткое описание: настраиваем галки в соответствии с Вашими пожеланиями, кнопкой снизу сохраняем, список стоп-слов сохраняется отдельной кнопкой.

Процесс фильтрации запускается тремя способами.

  1. Вручную;
  2. Автоматически через заданный интервал в настройках на основе JavaScript (окно с программой должно быть открыто в Вашем Chrome или что Вам по душе). Можно поиграться здесь.
  3. Через планировщика, например cron.

Каждый запуск — это единичный цикл поиска.

Системные требования (как правило, это всё есть, но не всегда)

  • php5.3 — php5.6, php7  (php7 — не катит, ибо много разногласий. В будущем поддержка запланирована, но пока без конкретных дат).
  • Curl.
  • Расширение DOM. Немного про установку DOM.
  • Пакет для работы с многобайтовыми кодировками mbstring.
  • Включенная поддержка json.
  • Для временной папки (по умолчанию tempdata) и папки настроек (по умолчанию settings) должны быть права на запись.
  • Сервер не должен передавать заголовок «x-frame-options: DENY» (иначе придётся запускать авторизацию и результаты поиска в новой вкладке). Если всё же не получается убрать этот заголовок, то ставьте галку «Frames do not work».

Обрабатывает объявления приложение довольно долго (10 объявлений секунд за 15), при этом заметного расхода ресурсов не увидел, ни по процессору ни по памяти. Смотрел через top во время работы. Поэтому приложение пытается переопределить максимальное время работы до 10 минут и немного расширить память (на всякий случай).

Описание (инструкция по применению)

Установка

  1. Скачиваем архив и загружаем к себе на сайт.
  2. Распаковываем. Например, в папку bad_ads_blocker (рекомендую выбрать другое имя, например ad_cleaner).
  3. Меняем пользователя файлов и папок на того, из под которого запускается Ваш web-сервер (apache, например). Данный шаг не для всех обязателен.
  4. Переходим по адресу mysite.com/bad_ads_blocker/ или пропишите ту папку как Вы её назвали (не надо конкретных php вводить).
  5. Если программа ругается на отсутствие прав на папки (Check blocker/settings/ directory write permissions), то заходим на хостинг/сервер и устанавливаем права на папки settings и tempdata, например, 775.

Можно запускать под Windows на xampp с php 7. Вероятно, и на php 5 под xampp будет работать (не проверял).
На Windows x64 может неправильно работать Curl.

Так же можно использовать Open Server.

Подготовка

  1. Проставляем необходимые галочки, вводим числа (описание галочек и циферок чуть ниже).
  2. Внизу нажимаем «Debug and other…», там нужно ввести свою почту (логин от AdSense).
  3. Обязательно сохраняем — жмём кнопку «Update settings» внизу слева (под настройками).
  4. Сверху справа нажимаем «Google Auth», чтобы выехало поле для ввода пароля и кнопка запуска процесса авторизации. Спрятано так как нужно редко, чтоб не мешалось и лишний раз не нажалось случайно.
  5. Вводим пароль и нажимаем кнопку «Login to Google». Если в окне снизу ничего не появляется, то проверьте заголовки своего сервера: https://bertal.ru. Если там есть «X-Frame-Options: DENY», значит либо настраиваем чтобы не было Deny, либо включаем галку «Frames do not work».

Авторизация

Если почта введена неправильно, то система об этом сообщит.

Если пароль введён неправильно, то система об этом сообщит.

Если включена двухуровневая, то ПО запросит код по SMS и попросит Вас ввести данное сообщение. Если нет, то просто авторизуется.

Если Ваш сервер или сервер, где сайт, куда Вы ПО поставили территориально находятся рядом с Вами, то авторизация проходит без лишних хлопот.

Вполне возможен вариант, что ПО будет работать из другого города (например сервер хостера в Иркутске) или другой страны, тогда Google начнёт паниковать и пришлёт письмо с предупреждением. При этом войти не даст. Нужно это письмо открыть и подтвердить ему, что это мы пытались войти, после можно будет снова попробовать. И тогда Google пришлёт SMS с кодом подтверждения (даже если двухэтапная авторизация выключена). Вместо получения сообщения возможен голосовой роботизированный звонок, который продиктует код. Если при попытке авторизации звонит какой-то неизвестный номер и не из Вашей страны, то это Google хочет Вам код сказать.

Если в последнем случае телефон не привязан, то соответственно никакого SMS не придёт, а просто Google попросит набрать буквы с картинки (до версии 3.0 включительно не поддерживается обработка подобных запросов).

Когда ПО авторизуется можно начинать процесс фильтрации.

Авторизация (запасной вариант)

Этот метод подсказали на форуме.

Устанавливаем какое-нибудь расширение для экспорта cookie-файлов. Чем бы Вы ни пользовались, ищите расширений по словам export cookies. Смотрите, чтобы экспортируемый формат был совместим с «Netscape standard». Или, бывает явно указывают, что стандарт совместим с Curl. Это всё нам подходит. Чтоб все cookie не тащить можно создать нового пользователя Chrome, там войти в свою учётную запись Google и вытащить cookie оттуда. Положить их надо в папку tempdata под именем cookie.txt, там же создать файл pub_id.txt, в который сохранить Ваш идентификатор издателя в формате: «pub-1908597777777777» — pub- и 16 цифр. Лично проверял — работает.

Запуск через планировщика

Можно просто указать имя файла поисковика «search_bad_ads.php» (естественно с полным путём) и при каждом запуске он будет искать в соответствии с последними сохранёнными настройками.

Начиная с версии 2.3 можно переопределять настройки при запуске по cron.

Простой вариант: «search_bad_ads.php 1 50 5». Три необязательных параметра.
Первый отвечает за включение уже просмотренных, аналог галки «Check reviewed ads». Можно выставить в ноль, тогда мы принудительно выключим на данный запуск проверку уже просмотренных. Кстати, при переопределении проверки уже просмотренных этим методом отключается сохранение проверенных объявлений, а то за сутки их тысячи одинаковых насохраняется.
Второй — это количество объявлений на страницу, аналог «Ads per page».
Третий — это количество страниц, аналог «Number of pages».

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

Расширенный вариант:
'{"num_of_pages":"5","num_of_ads_per_page":"50","lat2cyr":"checked","reviewed":"checked"}'



Обязательно заключить в одинарные кавычки!
Можно указать единственный параметр: json-строку с настройками, которую можно получить, нажав кнопку «Show json-string», скрытую под «Debug and other…». Сначала все настройки берутся из файла, а потом всё что есть в строке — переопределяется (аналогично простановке галочек, если их не было, однако, всё что включено не будет выключено). Так что если Вам нужно переопределить лишь 3 параметра, то не нужно указывать все.

Есть вариант с переопределением всех параметров:

'!!!{"num_of_pages":"5","num_of_ads_per_page":"50","lat2cyr":"checked","reviewed":"checked"}'

В таком случае нужно указывать все значащие параметры.

Но, переопределение в cron работать не будет, если register_argc_argv установлен в disabled.

Периодичность запуска

Если у Вас все текстовые проверены, то для поиска непроверенных объявлений имеет смысл запускать в районе смены часов (например с 53 минут до 6 минут раз 5), так как в ЦПО непроверенные появляются именно в этот временной промежуток.

Описание настроек

Number of cycles — количество запусков с последовательной проверкой объявлений в соответствии с настройками ниже. То есть если ниже стоит 10 страниц по 10 объявлений, здесь мы тоже 10 поставим, то всего будет проверено 1000 объявлений. Через cron пока не работает. Эта функция актуальна для проверки уже просмотренных объявлений. Особенно для тех у кого нет возможности увеличить время исполнения.

Number of pages — количество страниц, которые мы будем листать за каждый цикл поиска. Это аналог страниц в ЦПО.

Ads per page — кол-во объявлений на вышеуказанные страницы (в ЦПО зависит от размера экрана).

Ad types — выбираем какие типы будем просматривать (пока мультимедийные недоступны, ибо обработчик не написан).

Check by stopwords list — искать вхождение в текст и заголовки объявления любого слова из того списка в середине страницы.

Check by bad ad text list — искать вхождение в текст и заголовки объявления любого словосочетания из списка по ссылке.

Check by Searchwords — использовать фильтр в ЦПО для поиска всех объявлений (в пределах заданных в Number of pages и Ads per page ограничений) по соответствующему списку (List of search words).

Use Whitelist — использовать список хороших объявления (алгоритм чуть ниже).

Replace lat2cyr — для поиска мешанины кириллицы и латиницы по списку ключевых слов. Перед проверкой латинские символы и прочая хрень, похожая на русские буквы будет заменена на русские.

Check for redirects — проверять (с целью блокировки) наличие переадресации на домены отличные от указанного в целевом URL объявления. Так можно отсеивать шлак даже без списка слов, правда, далеко не весь.

Check reviewed ads — аналог галки в ЦПО. Если стоит, то будем просматривать все, если нет, то только непросмотренные.

Block AdWords account — когда находим очередной шедевр мошенников-говнорекламистов, то можно заблокировать объявление вместе с учётной записью AdWords.

Check «blogspot» — проверка наличия в целевом URL «blogspot.com». Какое-то время они активно использовали этот адрес.

Check disguised — проверка наличия замаскированных латинских символов под русские, чтобы находить подобное: «Maлaхoв yшeл co cкaндaлoм — Стaлa извeстнa пpичинa». Можете скопировать и посмотреть что это на самом деле здесь. Включается отдельно для текстовых и медийных объявлений.

Check target URL — проверка на наличие «плохих» слов в целевом URL (не путать с отображаемым). Отображаемый — то как мы видим ссылку, целевой — конечный адрес страницы. Так сделано в AdWords, так же сделано и здесь.

Check only predicted blocks — аналог галки в ЦПО. Прогнозируемая блокировка.

Mark reviewed as reviewed — помечать просмотренные просмотренными. Есть возможность грузить непроверенные объявления и не отмечать их как просмотренные. Обычно требуется для отладки списка слов для поиска. Если не отмечена, и не отмечена галка смотреть проверенные (Check reviewed), то будем каждый раз получать один и тот же список объявлений, что на первых местах.

Get ad stats — всем, наверное, интересно, сколько показов успел набрать высер якобы про Якубовича или якобы похороны Билана. Если отметить, то собирает статистику по всем заблокированным объявлениям, суммирует и выводит итоговое число в нижней строке объявления.

Следующие пункты спрятаны под кнопкой «Debug and other…».

Show json-string — кнопка, которая выводит json-строку для переопределения параметров при запуске через cron. Выводимые параметры зависят от текущих настроек, которые на экране.

Enable logs — включает сохранение ответов серверов Google. нужно для поиска ошибок и отладки. Если всё хорошо, то не включайте, а то диск забъёте бесполезными данными.

Disable utf8_decode — отключает преобразование выводимых в отчёт объявлений. Если все объявления выводятся в виде пустых или каракулей (кракозябр), установите/снимите эту галку. Это зависит от расширения DOM, которое работает у кого как: у кого-то выдаёт русский текст в utf-8, а у кого-то в iso-какой-то кодировке. У автора на php5.6 выводится правильно без этой галки.

Show block/unblock buttons — в окошке с каждым объявлением есть 4 кнопочки: для блокировки и разблокировки самого объявления и аккаунта AdWords. Если галка не отмечена, то в заблокированных отображаются только кнопки разблокировки, а в чистых только кнопки блокировки.

Don’t save clear ads — буквально. Если у нас много объявлений, фильтры настроены хорошо и не хочется видеть лишний раз нормальные объявления, то ставим. И правая колонка «Clear»  не будет пополняться.

Login (e-mail) — почта целиком, на которую у Вас AdSense зарегистрирован.

Особенно важные галки при включении отмечаются двумя красными стрелками.  На всякий случай.

Run every — это для автоматического запуска через JavaScript. В минутах. Там даже обратный отсчёт появляется. Можно поиграться здесь.

Всё описанное выше сохраняется нажатием кнопки «Update settings»!!!
Если нажать что-то другое то изменения не сохранятся; ajax и прочие подобные чудеса не используются.

List of stop words,  bad ad text list — списки для отсева. Если найдётся вхождение хоть одной строчки из этих списков, то объявление блокируется. С указанием слова по которому оно было заблокировано. Удобно для отладки, если слов очень много. Для текстовых и медийных объявлений сделаны разные списки, так как есть ряд слов, необходимых для блокировки текстового шлака, который приводит к блокировкам хороших медийных. Начиная с версии 3.4 можно искать точное соответствие слову, а не просто вхождение. Для этого нужно добавить три восклицательных знака перед словом: «!!!Бетонный». Итак, по поисковому слову «член» будут заблокированы объявления «Ярмарка членистоногих…» и «Чтобы член стоял всю ночь», а если указать так: «!!!член», то «Ярмарка членистоногих…» заблокирована не будет, а «Чтобы член стоял всю ночь» и подобные не останутся в показываемых.

List of search words — список по которому будут вытаскиваться объявления (аналогично вводу каждого слова из списка в текстовое поле для показа объявлений, содержащих только это слово).

Whitelist — список слов или фраз, которые встречаются только в хороших объявлениях. Если галка включена, то сначала идёт проверка по этому списку, и, если находится соответствие, то объявление считается хорошим, дальше не проверяется и в отчёт не вносится. Поиск идёт по каждой строке отдельно. Он ищет вхождение строки в текст объявления. Так же проверяет название (если оно есть) и аккаунт рекламодателя (строка вида adv-0000000000000000) и целевой URL. При добавлении объявления в белый список добавляются три строки: 2 заголовка и текст.

Список сохраняется соответствующей кнопкой под ним.

Google auth — авторизация в Google. Чтобы выехало поле для ввода пароля и кнопка запуска процесса авторизации жмём. E-mail должен быть указан и сохранён. Вводим пароль и запускаем. Ждём несколько секунд. Если всё хорошо, то либо войдём, либо получим SMS с кодом подтверждения. После входа можно приступать к поиску объявлений.



Результаты поиска выводятся в окошке под кнопкой «Start Searching», результаты удаления объявлений там же. А удаляются объявления значком корзинки. Справа от заголовков — удалить все в списке. На самом объявлении — удалить только это объявление.

Все настройки хранятся в файле в папке программы на сервере (в json-строке). Cookies используются только для входа в панель управления, если включена парольная защита. Чтоб при запуске через cron проблем не возникало.

Get blocked ads (in new tab) — это инструмент вытягивания строк из текущего списка заблокированных объявлений. Берёт настройки из того же источника, что и основной инструмент поиска. Если указано в настройках 2 страницы по 40 объявлений, то он соберёт первые 80 объявлений, оставит только уникальные строки. На слова не бъёт, оставляет строками. Разбивает строку текста объявления пополам если она длинная, выводит полученный список на экран и сохраняет в файл.

Access here password — боитесь, переживаете? Может волнуетесь? Поставьте надёжный пароль и не переживайте — никто не доберётся до инструмента поиска и блокировки. Никаких имя-пароль. Просто пароль. Надёжно и просто. Если пароль слишком надёжный, то всегда можно зайти на сервер, удалить во временной папке файл pass и задать чуть менее надёжный пароль.

Frames do not work — отключение вывода информации в тэги iframe, переключение в новые вкладки (не распространяется на блокировку/разблокировку объявлений) видеть ответ Вы не будете, но ошибок с этим ещё не было.

Unblock accs blocked — при поиске объявлений будет происходить автоматическая разблокировка AdWords аккаунтов, которые были заблокированы заданное количество дней назад. Чтобы не держать сотни заблокированных в своём списке AdSense, ведь они одноразовые и довольно быстро блокируются, следовательно никогда повторно использованы не будут.

Advertisers account list — это ссылка на страницу, где Вы можете посмотреть список  всех заблокированных у Вас AdWords аккаунтов. Вытягивается прямо из AdSense, то есть тот же список Вы увидите если зайдёте в ЦПО во вкладку «Настройки» (немного нелогично названо, ведь там только список заблокированных аккаунтов). Начиная с версии 3.4 в этом списке можно видеть какие объявления привели к блокировке аккаунта. Если такой список имеется, то название аккаунта становится серым, а при наведении всплывает подсказка с заголовками объявлений.

Setting separate version — версия панели управления, где настройки на одной странице, а отчёты о найденных объявлениях на другой. Меню сверху.

Так же ряд настроек (которые я посчитал не очевидными по своему смыслу) снабжён комментариями (на английском) прямо в панели управления в виде всплывающих подсказок при наведении курсора.

User agent используется тот, с которым Вы зашли в панель управления. Возможно, это было ошибкой и будет изменено, ведь через IE8 авторизация не сработала почему-то. Не стал разбираться.

Вывод объявлений (отчёт о проделанной работе)

В зависимости от результата проверки объявление попадает в соответствующий список. Всё что попало в отчёт (столбцы объявлений в нижней части) остаётся там пока мы это не удалим. Это просто копии объявлений снятые в указанный момент времени. Если мы удаляем одно или все объявления, то они удаляются только из отчёта. Из AdSense, насколько автору известно, удалить объявление невозможно.

Сверху указан рекламодатель. Можно будет разблокировать вручную, если что. И просто к сведению в чистых.

Так же в заблокированных выводится слово блокировки, справа сверху. Если они перекрываются, просто наведите курсор или коснитесь (на мобильном) и всё станет видно.

Далее, в привычном нам виде: заголовок1, заголовок2 (если есть), текст и отображаемый URL (медийные могут выглядеть немного по-другому). Ссылка же на конечный URL через избавителя от поля referer.

В нижней панели слева направо: кнопки блокировки/разблокировки, суммарное кол-во просмотров (только для заблокированных, если включена опция), дата и время внесения объявления в данный список, кнопка удаления из списка текущего объявления.

Схема поиска

Vanzent задал вполне логичный вопрос:  «Вначале я думал, что фильтруется по слову и удаляется все что есть.
А он по порядку проходит и ищет вхождение слов. Это ж сколько нужно объяв просмотерть, чтобы все плохие слова заблочить..
Можно же сделать так, что фильтруем по слову(словосочетанию) и блочим все что найдется?»

Да, схема описана верно. ПО как бы заходит в ЦПО и просматриваем все объявления подряд (этот процесс конечен только в том случае, если установлена галка «помечать просмотренные» и снята «смотреть просмотренные» ).

В каждом цикле поиска используются параметры, записанные на диске. Если что-то исправили и не сохранили, то будут использованы старые параметры.

Можно было бы запускать поиск по каждому слову из списка и блокировать найденное, но у этого метода есть недостатки:

  1. Самый главный: Google ищет только ту словоформу, что указана, он не будет выдавать объявления только с точным соответствием; по запросу «Билан» он не покажет «Сегодня Поxоpоны Димы Билана».
  2. Если слов, скажем, 50 и более, то, вероятно, что это займёт слишком много времени и процесс будет вырублен на каком-то этапе из-за ограничения по времени. И придётся хранить информацию о последнем проверенном слове, запускать с него снова… в общем, трудности.

Преимущества текущей реализации:

  1. Просмотрели объявления, отметили; Google сам выдаст партию непросмотренных. Просто.
  2. Настраиваемое кол-во проверяемых за один запуск объявлений. А всякий шлак, если его не чистить, обычно на первых страницах ЦПО. Таким образом за несколько запусков большая часть говнообъявлений, если не вся будет заблокирована. К тому же Google всегда блокирует все остальные объявления, которые являются копией первого заблокированного. Биланов, например, десятками, если не сотнями запускают. После работы этого инструмента видел в ЦПО несколько страниц одинаковых заблокированных объявлений, хотя в отчёте их столько не было.

В каких полях ищем слова из нашего списка? Заголовок 1, заголовок 2, текст объявления, отображаемый URL и, если стоит галка, целевой URL.

Рекомендации

  • При возможности устанавливайте в отдельный каталог, обращайтесь через домен, который переопределите в hosts. Так к Вам будет очень сложно подобраться всяким злоумышленникам.
  • Убедитесь, что объявления отлавливаются. Было замечено, что галка Disable utf8_decode стояла, тексты отображались нормально, но объявления не отлавливались. Стали отлавливаться после снятия галки.
  • Не оставляйте название папки с ПО таким какое оно есть.
  • Не ставьте за раз просмотр более ста объявлений (произведение кол-ва страниц и кол-ва объявлений на страницу) Подбирайте оптимальные настройки в зависимости от Ваших ресурсов и ограничений. Если время исполнения переопределить не удаётся, то ставьте проверку меньшего количества объявлений, но чаще.
  • Если установить 1 страницу и 100 объявлений, то так процесс проходит раза в 2 — 3 быстрее, чем  10 страниц по 10 объявлений. Однако, второй метод требует меньше памяти.
  • Не запускайте одновременно несколько процессов очистки из одной папки, так как это может привести к сбоям и, возможно, необходимости снова авторизоваться. Если хотите одновременно запускать два и более процессов, например, для чистки у себя, друга и соседа друга то просто ставьте две (или более) копии рядом. Они друг другу мешать не будут.
  • Если не работает сохранение настроек, а в ответ выдаёт какую-то ошибку сервера, то правьте файл .htaccess в папке настроек или просто снесите его, если не боитесь.

Здесь есть демонстрационный пример.  Он урезан, устарел и нерабочий, но имитирует рабочий. Авторизация включена, пароль: hg.

В дополнение можете изучить статью от wpuse.ru: здесь.

Скачать

AdSense Bad ads blocker — самая первая версия.

AdSense Bad ads Blocker v.1.1 — что-то поправлено.

AdSense Bad ads Blocker v1.2 — добавлена поддержка двухуровневной авторизации, сделана авторизация для защиты от внешних посетителей, сделана мобильная версия и доработаны разные мелочи.

AdSense Bad ads Blocker v1.3 — добавлена поддержка ведения журналов. Для отладки тем, у кого что-то не работает.

AdSense Bad ads Blocker v1.4.2 — доделан (не тестирован) вход через двухэтапную авторизацию. После ввода кода нажимаем кнопку «напомнить мне позже» автоматически и наконец-то входим.

AdSense Bad ads Blocker v1.5 — сделана поддержка php 5.3 — php 5.6  Доработан вход через двухэтапную авторизацию (в случае если она выключена, но вы заходите издалека и Google просит подтвердить, что это Вы), исправлены почти все места, где выводились предупреждения. Включена возможность блокировки по наличию домена «blogspot.com».

AdSense Bad ads Blocker v1.6 — снова исправлена авторизация, теперь вообще у всех должно работать, исправлена проблема с кодировкой файлов и выводимых в отчёт объявлений, закрыта дыра в безопасности (в плане удаления файлов) и прочие мелкие ошибки.

AdSense Bad ads Blocker v1.7 — добавлен механизм обнаружения латинских символов в русскоязычных объявлениях (помогает найти то, что маскируется методами мудорекламистов).

AdSense Bad ads Blocker v1.8.1 — исправлен механизм авторизации, добавлена возможность включать в проверку по списку слов целевой URL, изменена мобильная версия.

AdSense Bad ads Blocker v2.0 — сделана поддержка php7. Протестировано на php7.0.23 и php7.1.10.

AdSense Bad ads Blocker v2.1.2 — сделан механизм самозапуска заданного количества циклов поиска (самый верхний пункт в настройках). Данный механизм полезен для проверки уже просмотренных объявлений (можно хоть тысячами их проверять) и для сбора слов с заблокированных (ранее можно было только один проход сделать на заданное количество объявлений). Немного изменена внешность.

AdSense Bad ads Blocker v2.2 — добавлен поисковый фильтр: он позволяет находить замаскированные латинскими буквами слова по списку слов для поиска.

AdSense Bad ads Blocker v2.3 — исправлена ошибка нового фильтра версии 2.2 (спасибо vga1). Добавлена возможность переопределения параметров при запуске через планировщика (описание есть выше). Добавлена поддержка медийных объявлений.

AdSense Bad ads Blocker v2.4 — добавлен белый список (у него приоритет выше), теперь все списки можно выводить на одной странице (включаемо). Разделены списки слов для текстовых и медийных объявлений, ибо много блокируется не шлака словами нужными для отлова текстового шлака.

AdSense Bad ads Blocker_v2.5.2 — добавлена возможность выбирать объявления за определённое количество дней, малость доработано остальное.

AdSense Bad ads Blocker v2.6.1 — доработана авторизация для тех у кого Curl не может включить параметр CURLOPT_FOLLOWLOCATION, а так же для тех у кого не поддерживается отображение информации в iframe.

AdSense Bad ads Blocker v2.7 — сделана версия с раздельными экранами для настройки и поиска, добавлена функция разблокировки заблокированных аккаунтов AdWords (как Вы знаете, через штатные средства разблокировать можно только по одному, что доставляет много неудобств). Здесь же даже по одному разблокировать удобнее, чем в штатной, а ещё можно и все сразу (правда есть страховочное ограничение на 100 штук). Добавлена функция автоматической разблокировки аккаунтов по истечению заданного количества дней. Как обычно, доработаны некоторые механизмы, устранены ошибки. Доработан модуль поиска мешанины кириллицы и латиницы.

AdSense Bad ads Blocker v3.0 — сделана поддержка работы с новым ЦПО (включается галкой Use new ARC).

AdSense Bad ads Blocker v3.1 — исправлена проблема, возникающая у некоторых с кодировкой при сохранении списка слов.

AdSense Bad ads Blocker v3.2.1 — добавлена возможность вытаскивать объявления по определённым словам, сделана возможность полного переопределения настроек через cron.

AdSense Bad ads Blocker v3.3.2 — доработана система авторизации в панели управления (защита от посторонних), доработаны несколько фильтров. Существенно доработан фильтр поиска переадресаций для текстовых объявлений (теперь можно включать раздельно для текстовых и для медийных). Добавлена возможность смотреть доходы, которые отображаются на странице входа: сегодня, вчера, 7 дней и остальные. Чтоб обновиться: bad_ads_blocker_v3.3.2.update — отличается только отсутствием списков слов. Можно смело накатывать поверх — все Ваши данные сохранятся.

AdSense Bad ads Blocker v3.4 — Добавлены: поиск по точному соответствию слова; список объявлений, по которым был заблокирован аккаунт (в списке аккаунтов рекламодателей /advertisers.php), подсчёт количества объявлений в отчёте.

 

Чтобы обновить программу с сохранением всех Ваших настроек достаточно заменить всё, кроме папки tempdata и .ini и .txt-файлов в папке settings.

Другими словами, заменяем всё, кроме папок tempdata и settings, затем все .php-файлы в папке settings.

Ещё вариант обновления:

  1. Меняем имя папки со программой (например, bad_ads_blocker->bad_ads_blocker_old).
  2. Ставим новую версию в папку со старым названием (например, bad_ads_blocker).
  3. Переносим настройки (галки и цифры), а так же списки слов из старой версии в новую.
  4. Старую папку не удаляем, пока не убедимся, что новая версия исправно работает и полностью нас устраивает.

При таком вариант отчёты (списки заблокированных/чистых объявлений) остаются в старой версии.

 

 

Частые вопросы

Вопрос: подскажите, а как обновить версию блокировщика? Чтобы не затёрлись те слова/выражения, которые я уже добавлял ранее.

Ответ: все настройки в папке settings.
Левая колонка: settings.ini.
Списки: stopwords_text.txt, stopwords_media.txt, bad_ads_text.txt, whitelist.txt.


Вопрос: как обновить версию чтобы не приходилось снова авторизовываться?

Ответ: перенести в новую версию (сохранить имеющиеся) файлы cookie.txtpub_id.txt из папки tempdata.
Сохранить Ваш пароль на вход в панель управления: файл pass.


Вопрос: что означает надпись: -32001 XSRF token validation? Она появляется, когда разблокирую заблокированные объявления. В самом же аккаунте Adsense эти объявления не разблокируются, приходится это делать руками.

Ответ: если без лишних подробностей, то это временная потеря связи с сервером (электронный жетон xsrf не подходит). И когда связи нет, то достаточно запустить единичный цикл поиска и дождаться его завершения. Перед поиском всегда устанавливается новый сеанс связи и обновляются жетоны для доступа.


Вопрос: удаление объявлений (по одному/группами/все) — подразумевает удаление из памяти скрипта? То есть, я просмотрел заблоченные скриптом объявления, кое-что сделал (черные списки аккаунтов и т.п.), затем удалил все объявы и «жду» новую порцию от скрипта. Верно?

Ответ: да, и только. Верно.

 


Вопрос: хочу разблокировать объявление, жму кнопку, появляется надпись Ad from old ARC unblocked.
Что это значит? И должно ли объявление после этого оставаться в списке заблокированных на странице скрипта?

Ответ: from old ARC — значит объявление, которое было получено из старого ЦПО. unblocked — разблокировано. Да, должно. При блокировке/разблокировке данные внутри отчётов не перемещаются.

 


Вопрос: боязно как-то включать автоматическое блокирование аккаунтов. С дальнейшей ручной разблокировкой проблем не возникает?

Ответ:  не возникает. Разблокировать можно будет как обычным методом в ЦПО, так и с помощью ПО на странице <blocker folder>/advertisers.php. Ссылка в левом столбце настроек внизу в Debug, login and other…

 

 

 

Уважаемые сайтовладельцы! У кого аудитория в какой-то степени состоит из тех кому инструмент будет полезен, прошу помочь распространить информацию. Можно поставить объявления в заглушку AdSense или просто на какое-то время поставить отдельное объявление к себе на сайт.
Рекламные материалы здесь.

Файл настроек settings.ini совместим с последующими, его можете брать от старой версии.

Зачем блокировать мусорные объявления?

Было замечено 3 группы объявлений:

  • ведут на обычные сайты
  • ведут пользователей мобильного интернета на страницы подписок, а не мобильного на поддельные как бы новостные сайты.
  • ведут на страницы заказа чудодейственных как бы лекарств.

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

Все это мошенничество.

Мобильные подписки (мобильные операторы (Мегафон, МТС, Теле2) в этой как бы ОПГ, именно они снимают деньги. Билайн пишет, что «снижает обороты» и делает неосознанные подписки невозможными, но писать-то все умеют, не проверял как дела на самом деле, надеюсь, что истина). Формально, наверное, никакой закон не запрещает снимать ежедневную плату за мобильные подписки, но всем очевидно, что деньги снимаются со счёта абонента просто так. И абоненту с этого никакой пользы, ведь он даже не знает об этом. А когда узнаёт, что платит за то, что он никогда не видел, приходит в негодование. Сам, например, звонил в Мегафон и требовал вернуть деньги, списанные за мобильные подписки. Без лишних вопросов возвращали, ведь понимают, что это метод воровства, который (пока ещё?) не запрещён законом вполне законная плата за оказанные услуги связи, почему бы не повысить лояльность, вернув какие-то полторы тысячи? Ведь клиент-то больше за всё время приносит. Кстати, за это спасибо Мегафону, полагаю, что формально имели право послать с возвратом денег.

Пишу «как бы ОПГ», так как полагаю, что наши законы эти случайные мобильные подписки не запрещают, следовательно аббревиатура «ОПГ» неуместна. Хотя, чёрт его знает, может закон запрещает эти случайные подписки, поэтому и деньги без лишних вопросов возвращают.

А вы знали, что, цитирую: «В августе 2016 года МегаФон совместно с банком Round запустил банковскую карту МегаФона. Ключевыми преимуществами карты являются начисление процентов на остаток, вознаграждание (cashback) у партнёров до 10%, переводы по России без комиссии и дополнительная защита денежных средств. Карты «МегаФона» эмитированы банком Round и отвечают всем требованиям безопасности, предъявляемым к банковским картам. Дополнительно к этому «МегаФон» всем пользователям карты подключает бесплатную услугу, которая блокирует неосознанные подписки, что увеличивает лояльность и удовлетворенность абонентов».

Что б***дь за неосознанные подписки в официальном отчёте?!

За 2-ой квартал 2017, Ежеквартальный отчёт ПАО «МегаФон»  это архив zip с этой страницы. Копия архива от 30.10.2017. 

А кто-нибудь когда-нибудь от кого-нибудь слышал что-нибудь вроде: «Я тут мобильную подписку подключил всего-то за 50 рублей в день»?

Вот что поддержка мегафона пишет:

ОПСОС: Для того, чтобы установить запрет на услугу «Подписка» сроком на 3 месяца, ответьте <УСТЗАПРЕТ1> на номер 5151». Срок действия запрета «Партнерские подписки» — 3 месяца, в дальнейшем возможно повторное подключение данной услуги. Приятного дня!

Абонент: Но, почему только на 3 месяца, а не до отключения, как, например, те же самые мобильные подписки?

На поставленный вопрос не ответили, съехали, предложив «решение».

ОПСОС: Для избежания подключения различных услуг от контент-провайдеров рекомендуем подключить «Контентный счет» — отдельный лицевой счет для оплаты Контентных услуг. Если на этом счете будет 0 руб. всегда, то никакие платные развлекательные сервисы Вы подключить не сможете. Запрет будет дейстовать на постоянной основе. Желаете подключить услугу?

Абонент: Сейчас нет, однако, прошу подробно описать как это сделать самостоятельно.

ОПСОС: Подключение услуги возможно при обращении в Конт. Центр или Салон Связи МегаФон с паспортом.

Есть пример мошенников. Так выглядит страница при переходе из AdWords по рекламному объявлению (вниз листал, там чёрная пустота):

Screenshot_2017-11-08-23-22-18

Спустя минут 10 обновил страницу и вот что стало (тот же эффект при заходе под инкогнито, да при любом заходе, если не прямо с говнорекламы):

Screenshot_2017-11-09-01-06-07

Внизу тоже появилось много скрытых ранее подробностей:

Screenshot_2017-11-09-01-06-14

Переходы на обычные сайты — это мошенничество не такое злостное, пользователь денег не теряет, но это явный обман. Объявление о похоранах Билана или про шок-видео, которое ещё не удалили, а там магазин сапог.

Чудодейственные лекарства — это попытка продать людям всякое говно под видом чего-то хорошего.

Это всё к чему я? Заблокировать объявления от мудорекламистов — предотвратить мошенничество, которое могло бы произойти при переходе пользователя по такому объявлению.
Я против мошенничества! И не вижу ни одной благой цели в существовании подобных объявлений.

 

 

Заключение

Прошу писать ваши отзывы и пожелания, замечанию, критику (обоснованную и не очень). В общем, всё что думаете — пишите.

Если у кого что не работает, включайте галку «Enable logs»,  делайте одну попытку совершить то, что не получается и шлите файлы из папки tempdata/logs мне на почту badadsblocker на домене сайта.  Если папка по-прежнему пуста, проверяйте работу Curl, и возможно, других необходимых модулей.

Если ПО помогло Вам увеличить доход или как-то улучшить/облегчить жизнь,  то буду рад принять благодарность:

Похожие записи

  • У кого чек длиннее  ?У кого чек длиннее ?
    Это мистер Jeremy Schoemaker 132 994,97 $, это его блог shoemoney.com, а это его чек на 132 994,97 $ которые он
  • Драйвера Xiaomi Redmi Note 4 для компьютераДрайвера Xiaomi Redmi Note 4 для компьютера
    Xiaomi Redmi Note 4 является одним из самых желанных смартфонов на рынке. Многие люди уже купили его, и радуются потрясающим возможностям. Если вы один из таких, тогда вам будет интересна наша ...
  • Пропал 4G/LTE в настройках Xiaomi — как исправить?Пропал 4G/LTE в настройках Xiaomi — как исправить?
    Многие пользователи смартфонов Xiaomi жалуются, что в настройках пропал вариант выбора 4G/LTE сети. Возможно, на вашем смартфоне вообще не было такой опции, и вы думали, что устройство просто н...
  • USB ракетница – «The Amazing Spider-Man»USB ракетница – «The Amazing Spider-Man»
    Мы уже писали об офисном оружии будущего Spyfire. Сегодня, в продолжение оригинальной

65 Comments

  1. Благодарю за проделанную работу! Конечно, хотелось бы описание для таких нубов как я, куда да как))) Но, думаю разберусь.

    • Георгий

      22.10.2017 at 00:44

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

  2. Добрый день, я не пойму как запустить? где логин и пароль вводить?
    Захожу на страницу куда закачал программу, выдает такое окно

    И что дальше делать?

    • Георгий

      22.10.2017 at 00:45

      Исправил. В новой версии уже всё понятно.

  3. Игорь

    24.10.2017 at 19:42

    Неаторизуется — вернее ничего не происходит.
    П.С. На вашем примере — хоть сообшение какое то выводит

    • Георгий

      27.10.2017 at 00:55

      В версии 1.6 многое из этой области исправлено. Если не получится, отмечайте «enable logs» и присылайте файлы — буду смотреть.

  4. Есть ли возможность блокировать по части урл, например: «index.jhtml» ?

    • Георгий

      27.10.2017 at 17:55

      Пока нет, но можно добавить.

      • Да, было бы полезно, на англоязычных сайтах по части урл: «index.jhtml» можно найти какие то левые установщики софта, все под копирку.

  5. Дмитрий

    28.10.2017 at 10:31

    Георгий спасибо за работу, очень нужное дело (!) и реализация неплохая в качестве идей и опций, в принципе даже добавить нечего по блокировке , особенно понравилась идея брать «пример» за основу из уже заблоченных — было бы ОЧЕНЬ здорово чтобы Вы сделали сборочку под win , например на xampp portable подходящем по конфигу (их тьма).

    Большинству юзеров так было бы лучше (safe mode, curl и пр. ограничения на хостах).
    Да и для тестирования все таки покрутить ручками хотя бы первое время гораздо лучше — что да как.

    Еще раз спасибо…

    • Георгий

      28.10.2017 at 14:33

      Спасибо за отзыв!
      Под Win. А Denwer поможет? Сам не пробовал.
      Я так понимаю, что какая бы ОС не была, всё равно нужно, чтобы присутствовали необходимые модули.
      В общем, пока ничего не обещаю про разработку под Win.
      Ведь, возможно, лучше было бы всё это на JavaScript написать, это было бы более универсальное решение для Win. И пакетов дополнительных ставить не надо. А родной клиент AdSense на JS и написан.

  6. На xampp 1.7.7 при попытке логина выдает
    Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\xampp\htdocs\blog\login_functions.php on line 9

    как поправить?

    ps задумка классная

    • Георгий

      28.10.2017 at 16:19

      Может расширения DOM нету?

    • Георгий

      29.10.2017 at 17:43

      Протестировал на xampp с php 7 — работает. А такую ошибку (в самом начальном этапе) выдаёт когда Curl есть, но почему-то возвращает пустую строку.

  7. да вроде есть

    DOM/XML enabled
    DOM/XML API Version 20031129
    libxml Version 2.7.7
    HTML Support enabled
    XPath Support enabled
    XPointer Support enabled
    Schema Support enabled
    RelaxNG Support enabled

    • Георгий

      28.10.2017 at 19:41

      Даж не знаю. Включите запись протокола и шлите файлы из папки logs на badadsblocker на домене сайта.

      • логи создаются но с нулевым размером,слать нечего, пробовал на разных версиях пыха вплоть до 7, и так и так крутил — софт то нужный. Что характерно остальной софт с зависимостью от Dom (парсеры) на локалке работает нормально…
        Жалко, но будем надеется Георгий подпилите и под win, в любом случае Вы молодец , сей софт в нынешних условиях имеет будущее, особенно под win (для большинства).

        • Георгий

          29.10.2017 at 12:03

          Наверное, как у меня. Curl есть, включен, вроде как всё хорошо, но выдаёт пустой ответ. Я пытался найти решение, но не смог. Если вдруг с этим что получится — пишите.

        • Георгий

          29.10.2017 at 12:36

          Изначально не под Win ориентировался, ведь почти у всех сайтовладельцев есть возможность на сайт отдельной папкой поставить. Правда, у кого-то ограничения хостеров всякие не позволят работать, уже писали. Сам на нескольких хостингах пробовал — работает.

          • Да понятно что штука то вообщем серверная, но лучше ведь чтобы работала на Win нежели нет.
            Сам бы на сервере пользовался но не могу из-за его ограничений по безопасности (сознательных вообщем то — не в Вашем скрипте разумеется дело — код то открытый). Еще один плюс «изподвинды» что Google тревожится не будет.

            А так Вам и видео можно было бы снять про развертыванеи на Win на том же xampp`e (тут и seo какое никакое тут и на пиво немножко кликов по видео).
            Ладно . будем ждать может что раскопаете из-за чего не работает ,я честно говоря тоже озадачен — первый раз у меня на локалке что-то не сработало, обычно наоборот…

  8. Василий

    28.10.2017 at 20:11

    Поддержка PHP 7.1 очень желательна. Многие перешли на него хотя бы потому, что скорость выполнения скриптов существенно увеличилась. А 5.6 это на сегодня моветон.. для тех, кто не заботится о скорости генерации и соответственно открытия страниц.

  9. А какой файл нужно запускать для работы по cron?

  10. Василий

    04.11.2017 at 19:07

    Опробовал скрипт. Очень интересный. Что лично я заметил:

    1) Если сработал блок, к примеру, по кириллическим словам в которых имеется латиница, То после раз блокировки при последующем сканировании оно вновь попадает в список блокировки. Может сделать какой-либо аналог белого списка — разблокировал конкретное объявление и оно более не попадает под блокировку.

    2) по опции «Check reviewed ads:» — при её включении будут проверяться, как я понял, ТОЛЬКО из списка ранее проверенных.
    Можно сделать чередование прям в интерфейсе настроек. Типа первый проход из списка новых, а второй проход ранее проверенные. И выбирать для каждого количество и глубину проверки. Т.к. в первом случае новых объявлений будет мало, а ранее проверенных традиционно много. Удобно по крону так проверять будет.
    Как то так, ибо мошенники, бывают, меняют контент объявления, которое ранее было проверено.

    С уважением.

    • Георгий

      04.11.2017 at 21:11

      1. Думал уже над этим, возможно руки дойдут.
      2. Не строго из ранее проверенных, а из тех, что были помечены как проверенные, ну и из остальных. Как в ЦПО. Если стоит галка показывать проверенные, то в список попадают все: и проверенные, и те что ещё не проверены, но по показам поднялись.
      Немного не так как Вы писали, но сделал запуск через cron с разными параметрами.

  11. Игорь

    14.11.2017 at 17:05

    Здравствуйте. Сделайте, пожалуйста, возможность запуска скрипта в Денвере на локальном сервере под ОС Windows. Пробовал ставить его на хостинг, но при запуске появляется 404 ошибка на сайте Вордпрес, проверял пути, все правильно. Не хочу ковырять файлы сайта, чтобы не сломать на нем что-то, т.к. сейчас он работает как надо.

    На локальном сервере пытаюсь авторизоваться – в окошке фрейма крутится шарик, затем он пропадает и отображается пустая страница.

    Пробовал в настройках скрипта ставить галку Frames do not work – открывается пустая страница, на которой ничего не происходит.

    • Георгий

      15.11.2017 at 20:43

      Приветствую!
      Почему под Denwer не работает – не знаю. Под windows на xampp тестировал. Попробуйте его поставить. Ещё были проблемы с xampp на x64. Не знаю почему и как решить.

      В WordPress ошибка была на шаблоне wordpress (на этот случай поправил, v3.2) или просто чёрным по-белому?

      • Игорь

        15.11.2017 at 21:57

        На хостинге отображалась 404 ошибка, оформленная под стиль сайта, как будто бы происходило обращение к несуществующей странице сайта. Тема на Вордпресс – sparkling, но она не из «коробки», её «допиливали» под меня, может в этом проблема?

        У меня Denwer установлен на Windows x64. Если я поставлю XAMPP, то, наверное, столкнусь с теми же проблемами, что были и у вас на x64.

        • Георгий

          16.11.2017 at 20:28

          Да, вот на такой случай я и внёс поправки. Только выложил исправленную, попробуйте, если ещё актуально.

          • Игорь

            18.11.2017 at 21:37

            Поставил новую версию на хостинг, теперь работает, спасибо.

  12. Тоже на денверез х64 не пошло. И с хостинга авторизироваться не могу(( может где-то отключается сама двуохуровневая идентификация? Но хотя пришло потом сообщение на телефон через пол часа, что заблокировали попытку попасть злоумышлеников из России. Откуда вообще IP России, если хостинг Нидерланды, а Денвер – Украина.

    • Георгий

      16.11.2017 at 20:27

      Да, Google не пускает, когда внезапно издалека. Сначала надо успокоить его — подтвердить, что это мы.

  13. А где поле для белого списка? А то галочка есть, а самого поля не нашел((

  14. Уже нашел белый список. Извините, просто сонный. Мега скрипт, спасибо большое! Его бы и покупать готовы были бы люди.

    • Игорь

      16.11.2017 at 13:12

      Где вам удалось запустить скрипт: на хостинге или локальном сервере (на каком)?

  15. На хостинге. На локалке только белое окошечко то, и ничего не появляется. Я думаю, что теоретически возможно что-то подправить в самом Денвере, но знаний у меня таких нет)

  16. У меня уже все четко работает на хостинге. Жаль, что его не было раньше, когда объяв было миллион. Но и сейчас в два клика за 30 секунд все почистил и спи спокойно.

  17. Андрей

    25.11.2017 at 00:10

    Начал пользоваться скриптом, через 1 день, подозрительная активность на акаунте, пишу в поддержку, сказали что из Азербайджана заходили…
    До этого такого не замечалось, думаю дело в скрипте.

    • Георгий

      26.11.2017 at 23:07

      Конечно, если у Вас сервер/хостинг в Азербайджане.

  18. придурок!

    25.11.2017 at 00:13

    Идиот я, сука меня после твоего скрипта из дома выкинули!

  19. Роман

    27.11.2017 at 15:17

    Автор, подскажите если в меня один аккаунт адсенс, а сайтов много, то мне нужно ставить скрипт на один сайт и реблама блокируется по целому аккаунту и не будет бредовой рекламы на всех сайтах? Или для каждого сайта нужно ставить отдельно скрипт?

  20. Георгий

    27.11.2017 at 23:01

    Роман, ПО чистит весь Ваш аккаунт независимо от кол-ва сайтов. И независимо от места установки.

    • Роман

      28.11.2017 at 15:14

      Понял, ставлю только в одном экземпляре, а то думал их нужно для каждого сайта отдельно. Спасибо.

  21. Игорь

    28.11.2017 at 22:29

    Здравствуйте, что означает надпись: -32001 XSRF token validation?

    Она появляется в списке Blocked for bad Word, когда разблокирую случайно заблокированные объявления. В самом же аккаунте Adsense эти объявления не разблокируются, приходится это делать руками.

    Когда надписи -32001 XSRF token validation не было, тогда объявления разблокировались через скрипт, а теперь для этого приходится заходить в свою учетную запись Adsense .

    Сейчас у меня стоит версия 3.3. Эта ошибка стала появляться еще в версии 3.2.1, но когда я обновился до 3.3 она пропала, теперь появилась снова. Скрипт стоит на хостинге.

    • Георгий

      29.11.2017 at 01:54

      Приветствую!

      Временная потеря связи с сервером, достаточно запустить единичный цикл поиска и дождаться его завершения для восстановления.

      • Игорь

        30.11.2017 at 22:26

        Только что нажал на Today earnings и в окне фрейма все значения по нулям, хотя ещё утром скрипт (версия 3.3 на хостинге) нормально отображал доходы. Захожу в аккаунт Adsense – все цифры на месте.

        • Георгий

          17.12.2017 at 20:46

          В версии 3.4 сделал сохранение в протокол этого. Если хотите, обновитесь, включите протоколы и шлите — посмотрю почему доходы не показывает.

      • Игорь

        30.11.2017 at 22:27

        С предыдущей ошибкой (-32001 XSRF token validation) разобрался, спасибо.

      • Игорь

        30.11.2017 at 22:37

        Обновился до версии 3.3.2 и скрипт все равно не показывает доходы.

        • Георгий

          01.12.2017 at 21:05

          Сложно сказать. Значит Google в разных форматах нам данные отдаёт, а в этой штуке даже запись протокола не предусмотрел. Сейчас сделал, когда в следующий раз выложу, можно будет включить запись протоколов и мне файл отправить, чтоб посмотреть что не так.

  22. Добрый день.
    Вылезает «Check __DIR__/settings/ directory write permissions» не смотря на установленные права 777 на settings и tempdata
    Что может быть?

    • Георгий

      01.12.2017 at 21:09

      Посмотрите пользователя, кому принадлежат файлы и папки ПО и смените, если отличаются от пользователя web-сервера.

  23. Спасибо за разработку и что поделились этим. Тоже порядком надоела такая реклама. Вручную удалять то ещё удовольствие. Как раз искал альтернативные варианты.

    По программе есть вопросы. Многие настройки не интуитивны. И даже после прочтения описания до конца не ясно. Пока я запускаю вручную.

    Если не ставить Number of cycles, сколько будет длиться проверка? Будут ли проверены все объявления?

    Я поставил 10. В результате у меня появились две кнопки:
    10 search cycles и 10 blocked cycles. Чем отличается поиск по одной опции от другой и от третей (кнопка start searching тоже осталась)?

    Хотелось бы чтобы ручной работы было ещё меньше. Сейчас приходится удалять некоторые стоп слова или перепроверять вручную объявления. Можно ли сделать, чтобы поиск происходил по точному вхождению слова, а не его отдельной части?

    Приведу один из примеров:
    деру

    По нему у меня заблокировали вполне нормальное объявление:
    «Сервис и продажа оборудования Buderus. Сертифицированный партнер Будерус.»

    Пришлось вручную разблокировать. Хотелось бы чтобы блокировка была только конкретных слов «деру жену по 4 часа». Или как там в тех объявлениях.

    Было бы неплохо вывести статистику. А то совершенно не понятно, сколько проверено, отсеяно, утверждено и сколько осталось.

    По скорости скрипта и работе тоже не понятно. В первы раз запустил. Долго ждал, так и не удалил некоторые объявления. Запустил второй раз, удалил часть. Устал ждать, сам заблокировал. Не понятно проверяет ли он и блокирует ли на ходу или там застрял и сколько ему еще надо проверить. То ли, может какую шкалу прикрутить, например:
    Текущий сеанс. Проверил: … Заблокировал: … Осталось проверить: …
    И в место точек меняются в процессе показатели. Или шкала от одного до 100%. Или какая статистика по датам. Например. Проверены объявления с 1 января 2017 по 10 декабря 2017. Вообщем, чего-то на что можно ориентироваться. Этого не хватает.

    Но еще раз спасибо большое за программу!

    • Георгий

      17.12.2017 at 17:58

      10 search cycles — 10 запусков подряд поиска и проверки объявлений
      10 blocked cycles — 10 запусков подряд цикла сбора слов из заблокированных объявлений
      start searching — запуск одного цикла поиска и проверки объявлений

      Принял, подумаю.
      Сделаю: по точному вхождению слова, а не его отдельной части.
      Не будет: И в место точек меняются в процессе показатели. Или шкала от одного до 100%. Ибо зачастую заранее неизвестно сколько работы. Может 5 объявлений остаться, а может 73.

    • Георгий

      17.12.2017 at 20:42

      Сделал поиск по точному вхождению. Сам как-то замечал нехватку такой функции, но это было редко, поэтому глубоко не задумывался.
      Вывел кол-во объявлений в данной колонке (обновляться будет только при обновлении страницы).
      По датам, шкалы и прочее — это уже сложно и долго — пока не буду этого делать.
      Ещё сделал в списке заблокированных рекламодателей в виде всплывающей подсказки тексты их объявлений.

  24. Дмитрий

    14.12.2017 at 19:42

    После работы программы не выяснено по каким причинам и после каких действий список стоп-слов заменяется на список рандомных ссылок. Есть ли догадки у автора?)

    • Георгий

      17.12.2017 at 17:52

      Автоматически чтоли?
      В любом случае без понятия как это.
      Этот список записывается только по нажатию кнопки сохранения, другие процессы туда не пишут вообще.

      • Дмитрий

        17.12.2017 at 21:22

        Да, причем без разницы на каком браузере открываешь страницу с запуском скрипта, да и как вообще браузер может влиять на изменение списка стоп-слов, возможно на сервере что-то не так) вообщем поищу сам тогда, пока каждый раз перезаписываю файл вручную

        • Георгий

          17.12.2017 at 23:05

          Да, чем смотрите значения не имеет. Не могли бы Вы мне архив без личных данных отправить на почту в статье указанную?
          Ну и можно чистую версию поставить рядом и посмотреть что там будет.

Добавить комментарий

Ваша почта не будет опубликована.