Spam w Google Analytics


Jeszcze dobrze nie zdążyłem skończyć ustawiać nowej instalacji WP na tej domenie, a tu się już okazało (przynajmniej wg GA), że odwiedziła mnie prawie setka gości w ciągu jednego tygodnia. I to z Rosji, heh.

Po spojrzeniu w raport źródeł okazało się jednak, że to jeszcze nie jest inwazja, tylko kreatywny marketing. Znaczy spam - w tym i my w Polsce się całkiem nieźle specjalizujemy. Jest spora szansa, że wskaźniki na Twojej witrynie również cierpią na spamerską inflację, szczególnie jeśli GA instalowany był stosunkowo niedawno.

Jak wygląda spam w Google Analytics?

darodar

Ogólnie rzecz ujmując chodzi tutaj o zatruwanie zestawień stron odsyłających. Jako medium widzisz referral, a jako źródło to, co spamer chce, żeby było widoczne. Przykład z mojego świeżutkiego konta GA widać na obrazku obok. Warto zwrócić uwagę, że domena stanowiąca źródło jest tak spreparowana, iż spamer może nawet prowadzić statystyki skuteczności. Gdyby korzystał z parametrów umieszczonych np. po index.php to GA w domyślnym ustawieniu je obetnie. Parametry są więc przerzucane jako elementy subdomeny - wtedy nie ma mowy o ich pominięciu.

Cel iniekcji takich domen odsyłających jest prosty - zainteresować webmastera bądź marketera na tyle, żeby samodzielnie odwiedził domenę, z której dostał w krótkim okresie czasu tyle odwiedzin. Prosty social engineering “mówio o mnie, jestę ważny”. Trochę gorzej jest natomiast z motywem, jaki ma spamer. Najczęściej jest to próba pozyskania odsłon dla reklam czy podrzucenie ciastka z jakiegoś programu afiliacyjnego. Kłopoty zaczynają się w momencie, kiedy na stronie docelowej zamiast mniej lub bardziej podstępnych reklam znajdują się exploity. Wtedy celem spamera jest wykorzystanie jakiejś luki w obrębie przeglądarki odwiedzającego lub któregoś z wykorzystywanych przez nią pluginów (flash, anyone?). I przestaje być różowo.

Dlaczego GA w ogóle pokazuje spamerskie wpisy?

Krótko rzecz ujmując Google Analytics jest, mówiąc bez ogródek, po prostu głupie. Głupie w tym sensie, że bierze za dobrą monetę praktycznie każdy request, jaki zdarzy się mu otrzymać i jak uśmiechnięty 5-latek zapisuje w zeszycie z ID pochodzącym z owego requesta wszystkie dane, jakie dostaje. Mówiąc o ID mam na myśli oczywiście identyfikator profilu. Nie muszę być właścicielem witryny, nie muszę mieć dostępu do panelu GA. Mało tego - nie muszę wcale odwiedzać danej witryny żeby wstawić trochę spamerskich wpisów do raportów.

wpisy

Jeśli jestem spamerem, wystarczy że przygotuję pętlę chodzącą po identyfikatorach UA-X-1, gdzie X niech będzie identyfikatorem właśnie założonego przeze mnie konta GA, a pętla niech odlicza w dół. Mając do dyspozycji odpowiednio spreparowany request wystarczy mi to tylko przepuścić przez byle jak napisany skrypt z wykorzystaniem np. curl. Na obrazku obok widać dane, które sam wstawiłem do GA wywołując requesty właśnie curlem. Mam więc dwa referrale - jeden nieistniejący, jeden, z którego nie ma szans żebym miał linka, no i jedno wejście z organika, co nie jest możliwe, gdyż witryna do chwili publikacji tego tekstu miała ustawione sitewide noindex.

Odsyłacze i skrypty to nie wszystko

Obrazek powyżej pokazuje spam tylko w polu referrala, ale to nie jedyna wartość, którą spamer może zmieniać. Podatne są praktycznie wszystkie pola, jakie potencjalnie mogą mieć wartość tekstową, na tyle dobrą, że nadają się do umieszczenia tam śmieciowego marketingu. Dokumentacja dla programistów praktycznie i miło je opisuje.

Co do sposobów na samo śmiecenie, również i to nie jest aż tak skomplikowane. Jest jeszcze prostsza metoda na brudzenie w raportach GA - wystarczy zapętlić odwiedziny z kreatywnymi wartościami parametrów utm_*. Niemal każda witryna korzystająca z GA połknie je jak młody pelikan, gdyż nie są one poddawane żadnej walidacji na wejściu. Przeciętny troll z nadmiarem wolnego czasu może zatem skorzystać z narzędzia do tworzenia adresów URL, dla niepoznaki skrócić jeszcze URL jakimś bit.ly i zostawić w kilku wyeksponowanych miejscach. Albo słynące z kreatywnych protestów wykopki mogłyby sobie zmienić w bookmarkach adres http://www.wykop.pl/ na http://www.wykop.pl/?utm_source=gimbyaferujo&utm_medium=bomogo&utm_campaign=ichco. 1) Opanowana główna 2) Opanowane raporty w GA 3) Profit.

Dlaczego spam w Google Analytics stanowi problem i co z nim zrobić?

Przede wszystkim dlatego, że w GA nie da się nic wykonać retroaktywnie. Żaden sprytny filtr, żadne genialnie ułożone wyrażenie regularne nie są w stanie wyczyścić danych które raz trafiły do raportów. Im mniej masz szczęścia, tym bardziej pokrzywionymi wskaźnikami dysponujesz. Im mniejszy masz ruch na witrynie, tym bardziej spam będzie widoczny jeśli już się pojawi.

Załóżmy, że masz pecha i zrazisz do siebie kogoś, kto potrafi chociaż trochę programować. Jest to umiejętność chyba rosnąca, szczególnie jeśli chodzi o młodsze pokolenie. Wkurzysz pryszczatego nastolatka, a on w rewanżu uprzyjemni raportowanie z kampanii, na którą akurat wydajesz grube tysiące złotych. No chyba, że to nie problem, iż do Twojego CMO trafi później raport w ostatnim tygodniu pozyskaliśmy 120 000 odwiedzin, z czego między innymi 40 000 to ruch organiczny, 30 000 to ruch ppc, 10 000 social media i 5 000 z witryny amamawiezecpasz.com.

Niestety nie ma sposobu w 100% pewnego na zabezpieczenie się przed obecnością spamu. Mało tego, od momentu kiedy pojawił się Universal, rozwój Google Analytics wykonał w tym aspekcie krok wstecz. Przed pojawieniem się Universala można było wykorzystać dyrektywy nakazujące korzystanie z innych parametrów zamiast domyślnych utmów. Przykładowo dla źródła:

// asynchronicznie

gaq.push(['_setCampSourceKey', 'source']);

// tradycyjnie

pageTracker._setCampSourceKey("source");

W Universalu trzeba gimnastykować się bardziej. Każde pole dotyczące ruchu musi być ustawione metodą set, ale tylko pod warunkiem, że napiszesz sobie jeszcze wcześniej kawałek kodu, który pobierze parametry z URL zanim będzie można się do nich odwołać. Taka gimnastyka poskutkować może tylko na preparowane parametry utm_*, które, jak już wiesz, stanowią najprostszą metodę ewentualnego śmiecenia w raportach.

Oczywiście jest panel w konfiguracji, gdzie można wpisać wykluczenia w zakresie domen odsyłających, ale nie ma to absolutnie żadnego sensu, ponieważ nie wiesz jaką domeną zostaniesz zaspamowany. Kiedy się to już stanie, nakładanie wykluczenia mija się z celem, bo spamer albo już zniknął, albo zmieni domenę na jakąś inną. No i retroaktywnie filtr nie zadziała.

Równie bezcelowe jest umieszczanie jakichkolwiek wpisów na poziomie .htaccess, blokujących wejścia na Twoją witrynę. Z tej prostej przyczyny, którą już wymieniłem - spamer nie musi witryny odwiedzać, żeby spamować.

Czyj jest to problem?

Moim zdaniem nie jest on Twój, mój czy nasz - w sensie użytkowników Google Analytics. Jako użytkownicy mamy do dyspozycji skończone możliwości działania i jak wykazałem powyżej nie bardzo jest co zrobić, żeby problem spamu rozwiązać. Jest to więc co najwyżej nasze zmartwienie.

Kłopot leży w architekturze samego narzędzia i tylko tam można to naprawić. Krótko mówiąc, jest to problem Google.

Zasadnicze pytanie brzmi zatem jaką Google ma motywację, żeby się za to zabrać? Sytuacja wygląda kiepsko. Jak już wspomniałem powyżej, najbardziej narażeni na inflację w raportach narażeni są posiadacze małych witryn. Jeśli są mali, to znaczy, że samodzielnie nie stanowią na tyle dużego źródła przychodów (jeśli coś w ogóle wydają poza obracaniem kuponami AdWords), żeby Google się ich narzekaniami szybko przejęło.

Duzi gracze, pracujący na raportach z setkami tysięcy czy milionami użytkowników miesięcznie, nie będą mieli takich kłopotów. Nawet jeśli w miesiącu dostaną kilka tysięcy spreparowanych wejść (i zakładając, że to w ogóle ktoś zauważy oraz poprawnie zdiagnozuje jako spam) to i tak nie jest to na tyle duża liczba, żeby biła po oczach, motywując do narzekań czy wręcz poszukiwania alternatyw do Google Analytics. Chyba, że padną ofiarą albo naprawdę nasilonego spamu, albo spamu mającego na celu włamanie do sieci korporacyjnej.

Jeśli chodzi o mnie - narzekam na ten (i nie tylko ten :) aspekt kiedy tylko mogę. Fajnie jest zabrać dane o słowach kluczowych z organika, fajnie jest samplować raporty i wymuszać upgrade do GA Premium, co nie? To niech przynajmniej pseudo-darmowa wersja narzędzia działa jak powinna.