Nie od dziś wiadomo, że część zapytań obsługiwanych codziennie przez wyszukiwarki zadawana jest przez automaty. Zadanie takich robotów polega na pobieraniu wyników wyszukiwania i analizowaniu ich pod danym kątem. Najczęściej chodzi o sprawdzanie pozycji dla konkretnych zapytań. Oczywiście wyszukiwarki bronią się przed automatyzowanymi kwerendami. Jak? Światło na to zagadnienie rzuca wniosek patentowy Microsoftu.
O patencie Classifying Search Query Traffic napisał search marketingowy guru patentowy, Bill Slawski, w artykule How a Search Engine Might Distinguish Between Queries from Bots and from Humans. Szczególnie polecam dyskusję w komentarzach, która zwraca uwagę na pewien zasadniczy problem, będący jednocześnie głównym powodem scrapowania wyników wyszukiwania.
Dlaczego automatyzuje się zapytania do wyszukiwarki?
Jak już wspomniałem, najczęstszym (a może najbardziej znanym? :) powodem automatyzacji jest kontrola pozycji na poszczególne słowa kluczowe. Są jednakże również inne zastosowania:
- Keyword research – sprawdzanie obłożenia i stopnia konkurencyjności słowa kluczowego. Wskaźnikami są tutaj ilość zwracanych wyników oraz to, jakie domeny pokazują się w pierwszej dziesiątce. Korelacja tych danych pozwala zbadać relatywną trudność rankowania się na badane słowo kluczowe.
- Spam research – odpowiednio dobrane zapytanie może wyświetlić na przykład listę blogów lub forów internetowych na konkretny temat. Tak uzyskana lista URLi przechodzi następnie przez dalszą część scrapera, determinującą czy dany blog/forum chodzi na popularnym skrypcie i czy da się je automatycznie zaspamować.
- Analiza konkurencji w linkach sponsorowanych – nie tylko organiczne wyniki są celem analiz. Linki sponsorowane również mogą dostarczyć ciekawych informacji. Odpowiednio dobrany zestaw zapytań pozwoli określić jak szeroko reklamuje się dany reklamodawca, jakiego typu słów kluczowych używa (ogólne vs long tail) i jakiej jakości są jego kreacje reklamowe.
- Click fraud – w różnych odmianach. Albo bezpośrednie próby atakowania budżetów reklamowych albo pośrednie zniekształcanie CTRów poprzez generowanie zbędnych impresji. Polecam wcześniejszy artykuł na temat jednej z inkarnacji click fraud.
W kontekście tego ostatniego punktu, w patencie przeczytać możemy taki fragment:
Ludziom można zapłacić by wpisywali dane zapytanie wiele razy. W wielu przypadkach nielegalne zapytania od ludzi są oznaczane jako ruch generowany przez automaty. Należy jednak pamiętać, że część właściwości, na podstawie których rozróżnia się dane wejściowe generowane przez ludzi od danych generowanych przez boty, może nie być przydatna do rozróżniania legalnych i nielegalnych zapytań, generowanych wyłącznie przez ludzi.
Moje luźne tłumaczenie fragmentu [0035]
Mamy więc nie tylko klasyfikację na ludzi i automaty, ale również na ludzi legitimate i illegitimate. Dlaczego? Między innymi dlatego. (Zrzut ekranu, gdyby aukcja zniknęła)
Wyszukiwarki gromadzą informacje na temat każdego zapytania
Kiedy dokonujesz wyszukiwania, wyszukiwarka zapisuje nie tylko jego treść, ale także sporą dawkę meta informacji na jego temat:
- Search query string – łańcuch znaków znajdujący się w URLu z zapytaniem. Przykład (zaznaczone pochyloną czcionką): http://www.google.com/search?hl=en&source=hp&q=google&btnG=Google+Search
- Search query results page – informacja o tym jakie adresy zostały zwrócone dla danego wyszukiwania.
- Search query input source - źródło wprowadzonych danych (boks na stronie głównej? boks w wynikach wyszukiwania? boks w prawym górnym rogu przeglądarki? pasek adresowy przeglądarki? itp.)
- Unique identifier – unikalny identyfikator, indentyfikujący użytkownika lub urządzenie, którego użyto do zadania zapytania
- Adres IP - IP użytkownika
- Query time – czas (data) zapytania
- Click time – czas (data) kliknięcia
Fizyczne i behawioralne właściwości użytkowników wyszukiwarek
We wniosku patentowym przedstawiono przykładowy zestaw sygnałów, które brane są pod uwagę przez algorytm klasyfikujący ruch. Podzielono je na dwie grupy. Pierwsza wynika z fizycznych ograniczeń każdego człowieka. Druga zawiera obserwacje typowych, codziennych zachowań.
| Właściwość | Opis |
|---|---|
| Ilość odsłon, zapytań, kliknięć | (nie wymaga opisu) |
| Query Rate | Maksymalna ilość zapytań w określonym przedziale czasowym |
| Ilość IP/lokacji | Ilość adresów IP oraz miast, z których nastąpiły zapytania |
| Właściwość | Opis |
|---|---|
| CTR (click-through rate) | Stosunek ilości kliknięć do ilości zapytań |
| Alphabetical Score | Występowania zapytań w kolejności alfabetycznej |
| Spam Score | Występowanie słów kluczowych związanych ze spamem |
| Adult Content Score | Występowanie zapytań związanych z pornografią |
| Keyword Entropy | Entropia informacyjna zapytań |
| Keyword Length Entropy | Entropia informacyjna długości zapytań |
| Request Time Periodicity | Okresowość występowania odsłon, zapytań i kliknięć |
| Advanced Query Syntax Score | Ilość zapytań przy użyciu składni zaawansowanego wyszukiwania (allinanchor:, intitle:, site:, itp.) |
| Category Entropy | Entropia informacyjna kategorii poszczególnych zapytań |
| Reputation | Zapytania pochodzące z blacklistowanych IP, user agentów, kodów krajów, itp. |
| Query Window | Osobne okno do kierowania zapytań, typy akcji w danym oknie |
| Browser IDs | Ilość identyfikatorów przeglądarek, które są otwarte |
| Query URL Click-Through Probability | CTRy dla każdej z par zapytanie/URL |
| Program Specified Field | Identyfikator oprogramowania, którego użyto do zadania zapytania |
Być jak Superman – dużo i szybko :)
Pierwszym silnym sygnałem automatów jest ilość generowanych zapytań. O ile wygenerowanie 200+ zapytań dziennie przez jednego użytkownika nie jest nie możliwe, o tyle w zestawieniu ze średnią jest to dość nienormalne. Obrazek poniżej pochodzi z aplikacji patentowej i przedstawia rozkład ilości zapytań dla poszczególnych użytkowników z próby.
Zaznaczone zapytania pochodziły od automatów.
Szybkość pisania to kolejny indykator. Ludzie nie są w stanie zadawać zapytań tak szybko, jak robią to roboty. Na obrazku poniżej widać rozkład ilości zapytań w przedziale czasowym 10 sekund. Według aplikacji patentowej, ludzie rzadko kiedy wpisują więcej niż 7 zapytań w ciągu 10 sekund.
Natężenie zapytań w przedziale 10 sekund. Zaznaczona część pokazuje zapytania od botów.
Aspekt fizyczności zamykają adresy IP i lokacje, z których dokonano zapytań. Ten sygnał ma trochę utrudnione zadanie, ponieważ w miarę rozwoju technologii użytkownicy stają się co raz bardziej mobilni. Dodatkowo, należy także uwzględnić uwarunkowania dostawców internetu. Zależnie od dostawcy, użytkownik może mieć przecież inne IP za każdym razem kiedy łączy się z internetem. Microsoft bierze na to poprawkę poprzez opuszczenie dwóch oktetów w adresie IP, co świetnie pokazują dwa poniższe wykresy.
Wykres górny pokazuje zróżnicowanie ilościowe dla całego adresu IP, wykres dolny dla adresu z uwzględnieniem tylko 2 pierwszych oktetów.
Oswoić bota czyli wskaźniki behawioralne
Drugi zestaw wskaźników ma za zadanie identyfikować automaty oswojone, swoim zachowaniem bardziej przypominające ludzi. W tabelce powyżej znajduje się komplet wskaźników behawioralnych wymienionych w aplikacji patentowej. Poniżej szersze omówienie kilku z nich.
- CTR – stosunek ilości zapytań do ilości kliknięć
- Ludzie korzystają z wyszukiwarek po to, aby znaleźć interesujące ich informacje. Normalnym zachowaniem będzie więc klikanie w wyniki od czasu do czasu. Według aplikacji patentowej, ludzie klikają przynajmniej raz na dziesięć zapytań. Z kolei typowe boty:
- nie klikają w ogóle
- klikają w każdy link
- klikają tylko w ściśle określone linki
- Spamerskie słowa w zapytaniu
- Wyszukiwarka przypisuje do słów kluczowych wagi wskazujące ich związek ze spamem. W aplikacji patentowej podano przykład słowa Viagra, które ma mieć wyższy Spam Score niż słowo kawa. Zapytania danego bota mogą więc być tym sposobem łatwo identyfikowalne.
- Zaawansowane operatory wyszukiwania
- Boty nastawione na ekstrakcję konkretnych informacji często operują zapytaniami z zastosowaniem zaawansowanych operatorów. Wysokie natężenie ich stosowania jest całkiem jasnym indykatorem automatu.
- Entropia informacyjna słów kluczowych i/lub kategorii
- Ten aspekt jest bardzo ciekawy. Według aplikacji patentowej, wiele botów zadaje zapytania będące powtórzeniem tego samego pytania w inny sposób. Przynosi to na myśl sprawdzanie pozycji jednej witryny internetowej na kilkanaście (lub więcej) niby różnych, ale przecież w zasadzie takich samych zapytań. Entropię kategorii oblicza się tak samo jak w przypadku Spam Score – każde słowo ma przypisaną wagę w danej kategorii. Sumując wagi można określić kategorie zainteresowań użytkownika. Wprawdzie każdy z nas ma hobby, ale nikt z nas nie korzysta z wyszukiwarki tylko i wyłącznie poprzez wpisywanie opony katowice :).
Dajcie nam API!
Jak widać, wyszukiwarki podejmują duży wysiłek chroniąc swoje wyniki przed nielegalną aktywnością botów. Natomiast, jak powiedział Mikkel deMib Svendsen, faktem jest, że webmasterzy, seowcy i naukowcy mają całkiem legalną potrzebę badania indeksów wyszukiwarek. Póki więc nie istnieje dobre API – cały czas będziemy się spotykać z aktywnością botów nastawionych na scrapowanie wyników wyszukiwania.
Działań ukierunkowanych na click fraud żadne API nie powstrzyma. Ale czy nie będzie łatwiej je identyfikować, gdy ci badający indeks przeniosą się na API? Myślę, że tak.
Na zakończenie jedna rada – całość opisanych powyżej indykatorów człowiek czy bot opiera się na plikach cookie. Jeśli Twój serwer jeszcze nie loguje ciastek – popraw konfigurację już dziś.
Otwierająca grafika wykorzystana na licencji CC, autor Don Solo.



{ 2 komentarze… przeczytaj je poniżej lub dodaj swój }
Istotną kwestią nie jest tutaj IMHO sam proces wykrywania „automatyzacji”. Zwyczajnie nie należy przesadzać z zapytaniami z jednego IP, co prowadzi do wniosku, że należy „posiadać” jak najwięcej różnych adresów;).
Najważniejsze, że tego typu patenty nasuwają podejrzenia, iż analiza zachowania użyszkodników w SERP-ach może wpływać na wyniki. Masowe odpytania w takich przypadkach istotnie je mogą zaburzać.
…. a ja czasami w celu sprawdzenia pozycji słowa kluczowego używam narzędzia adwords’owego:
https://adwords.google.com/select/AdTargetingPreviewTool
Przydaje się jak trzeba sprawdzić słowa kluczowe w różnych geolokalizacjach i dla różnych języków. Tylko trzeba pamiętać żeby się z wylogować z konta Google, no i w ogóle trzeba więcej klikać ;)