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, выбираем имейл и пишем название. Важно чтобы этот шаг был сделан до генерирования ид и секрета. Далее генерируем 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 → выбираем необходимые вью, которые хотим отфильтровать и ждём, к сожалению фильтры сразу не применяются, но в будущем они появляться не будут.