Pierwsza wersja. Powstała po pomiarze, nie przed nim: trzy przebiegi badawcze na żywych
zapytaniach ustaliły, że dozwolona ścieżka oddaje komplet danych i ile to kosztuje, ZANIM
powstała pierwsza linia kodu aktora.
- Tylko ścieżka, którą
robots.txt dopuszcza (/maps/search/). Tańszy punkt wewnętrzny
/search?tbm=map, z którego korzystają inne narzędzia, jest objęty Disallow: /search i nie
składamy tego adresu. Kosztuje nas to szybkość i jest przyjęte świadomie.
- Kompletność w danych.
listComplete rozróżnia „tyle jest" od „tyle zdążyliśmy". Lista jest
kompletna tylko wtedy, gdy przestała rosnąć SAMA — nie wtedy, gdy przerwał ją nasz limit.
- Deduplikacja po Place ID, nigdy po nazwie. Zmierzone: 40 kart wyników zawiera 36 różnych
firm, czyli duplikaty są już w jednej odpowiedzi Google'a. Rekord bez identyfikatora jest
dostarczany z
deduplicated: false, a nie scalany z czymś, czym może nie być.
- Filtry darmowe. Naliczamy wyłącznie za dostarczoną wizytówkę: nie za odfiltrowaną, nie za
scalony duplikat, nie za pusty przebieg.
- Identyfikatory i współrzędne z ODNOŚNIKA, nie z tekstu kafla — odnośnik jest
ustrukturyzowany i nie zależy od języka interfejsu.
- Brak pola zamiast pola zmyślonego. Numer budynku nie trafia do telefonu, telefon nie trafia
do godzin otwarcia, a brak współrzędnych to
null, nie zero (zero to Zatoka Gwinejska).
- Zapis stanu po każdym dostarczonym rekordzie i brama dostaw zamykana przed rebootem —
migracja kontenera nie może naliczyć drugi raz tego, co klient już opłacił.
- Zero rekordów z powodem. Osobno „wszystko odfiltrowane", osobno „Google nic nie zwrócił —
dodaj miasto do frazy". W obu przypadkach bez naliczenia.