ТЕКСТЫ

New Bit workshop

Рекламные статьи, статьи обзоров, бюро копирайтинга "Марька"


НОВОСТИ

New Bit workshop

Новости науки и техники

Рейтинги,

обзоры

» » »
Как заблокировать Referrer spam в google analytics ?


Недавно обратился ко мне радостный клиент с вопросом, говорит, на сайте, который только-только запустился, начал появляться траффик от реферов, только вот непонятно что за сайты такие, прошёл по ним, а там — El Zilcho.
Оказывается, это такой новый молодёжно-современный вид спама — «Referrer Spam».
Осторожно, под катом картинки, google analytics и немного быдлокода на php.

Такой вид спама актуален, конечно же, не только для гугловой аналитики, просто привожу её как пример. Итак, что это такое:



Все эти рефереры не настоящие, китайская подделка. Мешают статистике и дают ложную надежду честным людям.
Можно их забанить где-нибудь на сервере, в коде, фаерволе или в конфигах веб-сервера.
В nginx это делается очень просто, в документации есть: wiki.nginx.org/Referrer_Spam_Blocking
Остаётся дописать наших плохих реферов и готово. Красиво, но скучно, мы лёгких путей не ищем, да и потом тяжело будет клиенту это самому менять.
GA позволяет фильтровать аналитику по различным параметрам, руками это можно сделать следующим образом:



Руками тоже скучно. Проделывать это придётся для всех клиентов, для всех сайтов. Ударим автоматизацией по разгильдяйству, напишем скрипт, который будет это делать.
Для начала надо зарегистрировать проект в консоли  гугл по адресу: console.developers.google.com/project.





Далее включаем Analytics API





Нам понадобится разрешение пользователя, потому идём в consent screen, выбираем имэйл и пишем название. Важно чтобы этот шаг был сделан до генерирования id и секрета. Далее генерируем Client ID:







Ну и наконец-то можно добраться до кода. Накопипастим кусков из демонстраций и манулалов, самое важное:

$details = new Google_Service_Analytics_FilterExpression();
$details->setField('CAMPAIGN_SOURCE');
$details->setMatchType('MATCHES');
$details->setExpressionValue('регекс с доменами, которые надо заигнорить');
$details->setCaseSensitive(false);

$filter->setExcludeDetails($details);

$analytics->management_filters->insert($accountId, $filter);

Занятная особенность GA в том, что регекс с доменами не может быть длиннее 255 символов, потому, если вдруг он длиннее, то нужно разбивать на несколько.
Полный код на гитхабе, вписываем свои ключики, авторизуем гугл аккаунтом и готово.
Всё, что нам остаётся сделать, это выбрать в каких представлениях будем фильтровать (я фильтрую везде, хоть некоторые и не рекомендуют). Для этого заходим в google analytics, выбираем аккаунт, Admin -> All filters -> Exclude Referrer Spam #… -> Apply Filter to Views -> выбираем необходимые вью, которые хотим отфильтровать и ждём, к сожалению фильтры сразу не применяются, но в будущем они появляться не будут.
Комментариев: 848 | : spam, Google Analytics, Куки, Хакеры
Войти через соцсети