Filtrowanie niechcianego ruchu w Google Analytics


Ilość ocen: 1548 Średnia ocena: 4.82/5

W ostatnim czasie nasila się na wielu stronach WWW sztucznie generowany ruch ze stron internetowych takich jak semalt.com, buttons-for-website.com i wielu innych. Ruch ten nie tylko psuje statystyki Google Analytics, ale również dodatkowo obciąża zasoby serwera. Jak sobie z nim poradzić? Wyjaśniamy to w tym artykule.

Sprawdź mój najnowszy wideoporadnik - Jak filtrować SPAM w Google Analytics

Jak zidentyfikować niechcianych ruch?

Żeby dowiedzieć się, z jakich witryn przychodzą do nas użytkownicy wystarczy zajrzeć w Google Analytics do raportu Pozyskiwanie -> Wszystkie odesłania. Tam warto włączyć wymiar dodatkowy "Kraj". Może się okazać, że na liście witryn odsyłających widnieje wiele wizyt ze stron w dość egzotycznych jak na Polskę krajach.

Wiele z tych witryn, które znajdziemy w tym raporcie to sztucznie generowany ruch, który może przy większym natężeniu psuć statystyki i dlatego warto jest go wyeliminować. Jeżeli znajdziesz w swoim raporcie witryny odsyłające takie jak np. arodar.com, semalt.com, 7makemoneyonline.com, buttons-for-website.com, ilovevitaly.com lub ilovevitaly.ru to warto byś zastosował jeden z podanych w dalszej części środków zapobiegawczych.

Blokowanie ruchu na poziomie serwera

Jeżeli Twój serwer WWW obsługuje pliki .htaccess i ma włączoną obsługę modułu mod_rewrite wówczas możesz wyeliminować wejścia z niechcianych witryn już na poziomie serwera WWW.

Jest to najlepsze rozwiązanie, gdyż nie tylko wyeliminuje całkowicie niepożądane dane ze statystyk Google Analytics, ale również będzie oszczędzać wykorzystanie zasobów Twojego serwera WWW.

W celu blokowania ruchu pochodzącego z określonych witryn wystaczy w pliku .htaccess umieścić następujący kod:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?semalt\.com [OR,NC]
RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?buttons-for-website\.com [OR,NC]
#RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?darodar\.com [OR,NC]
RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?7makemoneyonline\.com [OR,NC]
RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?ilovevitaly\.ru [OR,NC]
RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?ilovevitaly\.com [NC]
RewriteRule .* - [F]

W przypadku wykrycia odesłania z określonej domeny lub subdomeny spowoduje to zablokowanie dostępu i odpowiedź serwera z błędem 403.

W przypadku wykrycia w przyszłości kolejnych niechcianych źródeł ruchu wystaczy w pliku .htaccess dopisać linijkę:

RewriteCond %{HTTP_REFERER} ^https?://(.*\.)?semalt\.com [OR,NC]

zaraz na początku wszystkich reguł (po linii RewriteEngine On)

Alternatywną opcją do powyższej jest ustawienie zmiennej środowiskowej za pomocą dyrektywy SetEnvIfNoCase, jeśli na serwerze jest aktywny moduł mod_setenvif.

W tym celu zamiast powyższych reguł w pliku .htaccess wpisujemy:

SetEnvIfNoCase Referer ^https?://(.*\.)?semalt\.com spamreferer=yes
SetEnvIfNoCase Referer ^https?://(.*\.)?buttons-for-website\.com spamreferer=yes
#SetEnvIfNoCase Referer ^https?://(.*\.)?darodar\.com spamreferer=yes
SetEnvIfNoCase Referer ^https?://(.*\.)?7makemoneyonline\.com spamreferer=yes
SetEnvIfNoCase Referer ^https?://(.*\.)?ilovevitaly\.ru spamreferer=yes
SetEnvIfNoCase Referer ^https?://(.*\.)?ilovevitaly\.com spamreferer=yes
Order allow,deny
Allow from all
Deny from env=spamreferer

W przypadku serwera apache 2 wersji 2.4 zamiast 3 ostatnich linijek musimy zastosować następujące:

Require all granted
Require not env spamreferer

Filtrowanie witryn odsyłających w Google Analytics

W sytuacji jednak, gdy nasz serwer nie pozwala na zastosowanie jednej z w/w metod pozostaje nam odfiltrowanie ruchu z określonych witryn odsyłających  poprzez zastosowanie filtrów niestandardowych w Google Analytics.

W tym celu po zalogowaniu do Google Analytics przejdź do sekcji Administracja, wybierz odpowiednie konto, usługę i widok, dla którego chcesz zastosować filtr i wykonaj następujące czynności:

  • na poziomie widoku kliknij "FILTRY",
  • kliknij przycisk "+NOWY FILTR",
  • zaznacz opcję "Utwórz nowy filtr" (domyślnie zaznaczona),
  • wpisz nazwę filtru np. "Wyklucz odesłania z semalt.com",
  • jako typ filtru wybierz "niestandardowy",
  • zaznacz opcję "wyklucz",
  • jako pole filtru wybierz "odesłanie",
  • w pole "Wzorzec filtru" wpisz następujący ciąg znaków: ^https?://(.*\.)?semalt\.com
  • na koniec kliknij przycisk "Zapisz" znajdujący się na dole strony.

Czynności powyższe musisz powtórzyć dla każdej witryny odsyłającej, którą chcesz blokować w Google Analytics. 

Pamiętaj, że filtry zaczną być aktywne od momentu ich utworzenia. Podobnie również jak blokowanie na poziomie serwera - efekty w statystykach Analytics zobaczysz dopiero od momentu poprawnego skonfigurowania.

Aktualizacja 2014-12-28

Niestety blokowanie "wizyt" z darodar.com na poziomie serwera jest bezskuteczne, gdyż w logach serwera wizyty te po prostu nie istnieją. Analizując dokładnie dane z Analytics i porównując je z logami serwera możemy zauważyć, że w określonym czasie w jakim Analytics odnotował wizytę z odesłania serwer nie odnotował w ogóle ruchu na stronie.

Jedynym skutecznym sposobem w tym konkretnym przypadku jest więc blokada na poziomie Google Analytics poprzez stworzenie odpowiednich filtrów.

Filtrowanie po nazwie hosta

Ponieważ w raportach Google Analytics pojawia się coraz więcej odesłań "wirtualnych" - tzn. takich, dla których nie następują w ogóle odwiedziny strony, tylko są to dane przesyłane do usługi Google Analytics za pomocą measurement protocol w walce ze spamem bardzo pomocny może się okazać również filtr po nazwie własnego hosta.

Jeśli w raporcie stron odsyłających jako wymiar dodatkowy włączymy nazwę hosta okazać się może, że w wielu przypadkach nazwa hosta w ogóle nie odpowiada nazwie naszego hosta (czyli adresowi domeny, na której działa strona) lub jest nieustawiona (not set). To jest jedna z charakterystycznych cech pozwalająca na identyfikację "skradzionego" kodu, ale również wirtualnych wizyt.

Ta własność daje nam doskonałą okazję do odfiltrowania sztucznego ruchu, a w tym celu wystarczy utworzyć filtr na widoku danych, który uwzględni tylko nazwę naszego hosta.

Poniżej prezentujemy przykład, jak skonfigurować taki filtr w Google Analytics. W celu utworzenia filtru trzeba przejść na kartę Administracja w Google Analytics, a tam w kolumnie WIDOK kliknąć kartę Filtry, a następnie kliknąć przycisk +NOWY FILTR.

Dodając filtr należy pamiętać, że pole "Wzorzec filtru" interpretowane jest jako wyrażenie regularne. Dlatego znaki specjalne takie jak np. kropka "." należy poprzedzić odwrotnym ukośnikiem "\" w celu uniknięcia niejednoznaczności.

Jeżeli dla widoku mamy skonfigurowane śledzenie w wielu domenach musimy uwzględnić we wzorcu wszystkie śledzone domeny. W tym celu należy wypisać wszystkie domeny oddzielając je znakiem pionowej kreski (bez spacji). Wówczas filtr może mieć następującą postać:

domena-a\.pl|domena-b\.pl

Pamiętajmy by filtry najpierw skonfigurować na testowym widoku danych i dopiero po zweryfikowaniu poprawności ich działania stosować je na głównym widoku danych.