Przejdź do treści głównej

SE::Google::KeywordPlanner::Ideas - scraper propozycji słów kluczowych z Google Keyword Planner

Keyword Planner ideas

Przegląd scrapera

SE::Google::KeywordPlanner::IdeasSE::Google::KeywordPlanner::Ideas – scrapowanie propozycji słów kluczowych i podpowiedzi z Google Keyword Planner. Dostępnych jest wiele danych do pobrania: scrapowanie list podpowiedzi, ocena konkurencji dla słów kluczowych, zbieranie średniej miesięcznej liczby wyszukiwań, stawek minimalnych i maksymalnych, wyszukiwanie nowych słów kluczowych o podobnej tematyce. W ustawieniach scrapowania można określić język, region, lokalizację oraz okres próbkowania danych. Dostępny jest również tryb pakietowy, dzięki któremu w jednym zapytaniu do serwisu można uzyskać dane dla 20 słów kluczowych jednocześnie, co znacznie przyspiesza scrapowanie.

Dzięki wielowątkowej pracy A-Parser, prędkość przetwarzania zapytań może osiągać kilka tysięcy zapytań na minutę.

Funkcjonalność A-Parser pozwala zapisywać ustawienia scrapowania scrapera SE::Google::KeywordPlanner::Ideas do dalszego wykorzystania (presety), ustawiać harmonogram scrapowania i wiele więcej.

Zapisywanie wyników jest możliwe w dowolnej formie i strukturze, dzięki wbudowanemu potężnemu silnikowi szablonów Template Toolkit, który pozwala stosować dodatkową logikę do wyników i wyprowadzać dane w różnych formatach, w tym JSON, SQL i CSV.

Zbierane dane

  • Średnia liczba zapytań miesięcznie dla szukanego słowa kluczowego
  • Listy podpowiedzi
  • Warianty słów kluczowych
    • Średnia liczba zapytań miesięcznie
    • Konkurencja
    • Minimalne i maksymalne stawki
    • Trendy dla każdego otrzymanego wariantu

Możliwości

  • Obsługa autoryzacji za pomocą loginu i hasła lub poprzez podstawienie ciasteczek i nagłówków
  • Określanie stopnia dokładności $volume - wartość dokładna/zaokrąglona
  • Obsługiwany tryb pakietowy, więcej szczegółów w sekcji Queries (Zapytania)
  • Obsługa wielu kont (aby wybrać odpowiednie konto, należy podać jego ocid(uscid))
  • Scrapowanie danych o wolumenie wyszukiwania dla każdego słowa kluczowego miesięcznie w określonym okresie ($ideas.$i.trends). Dane są prezentowane w formacie JSON, przykład ich wyprowadzenia do wyniku na zrzucie ekranu poniżej:
Spoiler: Zrzut ekranu

przykład wyjścia trendów w wyniku

Szablon:

[% FOREACH item IN ideas;
trends = tools.parseJSON(item.trends);

item.keyword _ "\n";
trends.format('$month: $volume\n');
"----\n";
END %]

Warianty użycia

  • Scrapowanie list podpowiedzi
  • Ocena konkurencji dla słów kluczowych
  • Zbieranie średniej liczby zapytań miesięcznie, minimalnych i maksymalnych stawek
  • Wyszukiwanie nowych słów kluczowych o podobnej tematyce

Konfiguracja

Istnieją dwa warianty konfiguracji scrapera:

  • podanie e-maila\hasła do konta Keyword Planner
  • autoryzacja w przeglądarce i skopiowanie potrzebnych wartości
ostrzeżenie

Należy zachować ostrożność przy liczbie wątków. Zaleca się podawanie niewielkiej liczby wątków, przy czym scrapowanie bez proxy jest całkiem możliwe.

Autoryzacja przez e-mail i hasło

Należy nadpisać opcje E-mail i Password, podając dane swojego konta Keyword Planner. Na koncie musi być utworzona kampania.

Spoiler: (Rozwiązanie) Login failed TypeError: Cannot read property '1' of null

W przypadku wystąpienia tego błędu należy usunąć swoje konto Google z przeglądarki i zalogować się ponownie.

rozwiązanie błędu autoryzacji

Autoryzacja w przeglądarce i podstawienie nagłówków do scrapera

Należy zalogować się w przeglądarce pod adresem https://ads.google.com/aw/keywordplanner/home, utworzyć pierwszą kampanię, jeśli wcześniej jej nie było, pobrać następujące dane i podać je w ustawieniach scrapera:

Ciasteczka można podać na dwa sposoby:

  • Podać wszystkie ciasteczka w opcji All cookies
  • Podać wartości z ciasteczek dla opcji __Secure-3PSID, __Secure-3PSIDTS (__Secure-3PSIDTS należy podać w przypadku, gdy authuser na koncie wynosi 0)

Pozostałe nagłówki:

  • Wartość nagłówka x-framework-xsrf-token
  • Wartość parametru ocid lub uscid z adresu URL
  • Wartość parametru authuser z adresu URL
Spoiler: Jak znaleźć niezbędne parametry

gdzie szukać parametrów do autoryzacji 1

gdzie szukać parametrów do autoryzacji 1

Zapytania

W zależności od wartości parametru Query type zapytania mogą mieć różny wygląd. Poniżej wymieniono możliwe warianty, pokazano przykłady i opisano cechy otrzymywanych wyników.

Keyword

Zapytania powinny być w formie słów kluczowych, po jednym na linię. Przykład zapytań:

test
scraper
Windows 11
jak wyhodować drzewo

Obsługiwany jest tryb pakietowy, który aktywuje się opcją Bulk (packet) mode. W tym trybie scraper w zapytaniu do serwisu będzie wysyłał pakiety po 20 słów kluczowych, przez co zmienia się logika wypełniania wyników:

  • $volume zostaną wypełnione dla każdego słowa kluczowego
  • $ideas i $suggests zostaną wypełnione tylko dla pierwszego słowa kluczowego, ale w tych tablicach znajdą się wszystkie wyniki łącznie dla wszystkich słów kluczowych użytych w danym pakiecie

Site + keyword

Zapytania powinny być w formie witryny i po spacji słowa kluczowego. Przykład zapytań:

speedtest.com Network speed
a-parser.com parser

Obsługiwany jest również tryb pakietowy, aby go użyć, należy wymienić słowa kluczowe po przecinku, przykład:

4pda.to android,ios,firmware
google.com google,ads,reklama,wyszukiwanie stron w internecie
  • $volume dla tego typu zapytań w trybie pakietowym nie jest scrapowany

Entire site

Jako zapytania należy podawać domeny, po jednej na linię. Na przykład:

apple.com
microsoft.com
  • $volume dla tego typu zapytań nie są scrapowane

URL

Jako zapytania należy podawać linki, po jednym na linię. Na przykład:

https://a-parser.com/docs/parsers/se-google-keywordplanner
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics
  • $volume dla tego typu zapytań nie są scrapowane

Podstawienia zapytań

Możesz użyć wbudowanych makr do automatycznego podstawiania podzapytań z plików, na przykład chcemy do każdego zapytania dodać jakąś listę innych słów, podajmy kilka głównych zapytań:

fantasy
tower defense
rpg

W formacie zapytań podamy makro podstawiania dodatkowych słów z pliku keywords.txt, ta metoda pozwala wielokrotnie zwiększyć wariancję zapytań:

{subs:keywords} $query 

To makro utworzy tyle samo dodatkowych zapytań, ile znajduje się w pliku dla każdego wyjściowego zapytania wyszukiwania, co w sumie da [liczba wyjściowych zapytań] x [liczba zapytań w pliku Keywords] = [całkowita liczba zapytań] w wyniku działania makra.

Na przykład, jeśli plik keywords.txt będzie zawierał:

free
online

W rezultacie makro podstawień zamieni 3 główne zapytania na 6:

free fantasy
online fantasy
free tower defense
online tower defense
free rpg
online rpg

Warianty wyprowadzania wyników

A-Parser obsługuje elastyczne formatowanie wyników dzięki wbudowanemu silnikowi szablonów Template Toolkit, co pozwala mu wyprowadzać wyniki w dowolnej formie, a także w strukturalnej, na przykład CSV lub JSON

Wyjście domyślne

Format wyniku:

$ideas.format('$keyword\n')

Przykład wyniku:

coca cola  
iphone 11 pro
winter
iphone 11 pro max
winter season
iphone11
iphone 11 price
apple iphone 11
iphone 11pro
coke
11 pro max
iphone 11 pro price
iphone 11 max
iphone pro max
iphone 11 128gb
11 pro
iphone 11 pro max price
apple iphone 11 pro
apple iphone 11 pro max
new iphone 11
iphone 11 max pro
apple 11 pro
iphone 11 deals
iphone 11 pro max 256gb
diet coke
first day of winter
iphone 11 pro 256gb
coke zero
iphone pro 11
apple 11 pro max

Wyjście do tabeli CSV

Format wyniku:

[% FOREACH i IN ideas; 
tools.CSVline(i.keyword, i.volume, i.min_bid, i.max_bid);
END %]

Nazwa pliku:

$datefile.format().csv

Tekst początkowy:

Keyword,Volume,"Min bid","Max bid"

wskazówka

W Formacie wyników stosowany jest silnik szablonów Template Toolkit do wyprowadzenia tablicy $ideas w pętli FOREACH.

W nazwie pliku wyników należy po prostu zmienić rozszerzenie pliku na csv.

Aby opcja "Prepend text" była dostępna w Edytorze zadań, należy aktywować "More options". W "Prepend text" wpisujemy nazwy kolumn oddzielone przecinkami, a drugą linię pozostawiamy pustą.

Zapisywanie w formacie SQL

Format wyniku:

[% FOREACH ideas;
"INSERT INTO ideas VALUES('" _ keyword _ "', '" _ volume _ "')\n";
END %]

Przykład wyniku:

INSERT INTO ideas VALUES('perfumy', '50000')
INSERT INTO ideas VALUES('eyfel perfume', '5000')
INSERT INTO ideas VALUES('memo marfa', '5000')
INSERT INTO ideas VALUES('duxi', '5000')
INSERT INTO ideas VALUES('kenzo intense', '5000')
INSERT INTO ideas VALUES('climat lancome', '5000')
INSERT INTO ideas VALUES('v canto', '5000')
INSERT INTO ideas VALUES('majda bekkali', '5000')
INSERT INTO ideas VALUES('v canto ricina', '500')
INSERT INTO ideas VALUES('v canto stramonio', '5000')
INSERT INTO ideas VALUES('terenzi kirke', '500')
INSERT INTO ideas VALUES('duhi', '500')
INSERT INTO ideas VALUES('max mara le parfum', '500')
INSERT INTO ideas VALUES('stramonio v canto', '500')
INSERT INTO ideas VALUES('sheikh parfum', '500')
INSERT INTO ideas VALUES('jacques zolty', '500')
INSERT INTO ideas VALUES('aj arabia', '500')
INSERT INTO ideas VALUES('christian lacroix bazar', '500')
INSERT INTO ideas VALUES('juliette has a gun romantina', '500')
INSERT INTO ideas VALUES('vilhelm parfumerie mango skin', '500')
INSERT INTO ideas VALUES('v canto mirabile', '500')
INSERT INTO ideas VALUES('donna karan dkny be delicious', '500')
INSERT INTO ideas VALUES('arteolfatto', '500')
INSERT INTO ideas VALUES('aquawoman rochas', '500')
INSERT INTO ideas VALUES('angel and demon givenchy', '500')
INSERT INTO ideas VALUES('venenum kiss', '500')
INSERT INTO ideas VALUES('v canto mandragola', '500')
INSERT INTO ideas VALUES('angel demon givenchy', '500')
INSERT INTO ideas VALUES('hugo boss boss ma vie pour femme', '500')
INSERT INTO ideas VALUES('nina ricci mademoiselle ricci', '500')

Zrzut wyników do JSON

Ogólny format wyniku:

[% data = [];
FOREACH p1.ideas;
item = {};
item.keyword = keyword;
item.volume = volume;
data.push(item);
END %]$data.json\n

Przykład wyniku:

[{"keyword":"perfumy","volume":"50000"},{"keyword":"eyfel perfume","volume":"5000"},{"keyword":"memo marfa","volume":"5000"},{"keyword":"duxi","volume":"5000"},{"keyword":"kenzo intense","volume":"5000"},{"keyword":"climat lancome","volume":"5000"},{"keyword":"v canto","volume":"5000"},{"keyword":"majda bekkali","volume":"5000"},{"keyword":"v canto ricina","volume":"500"},{"keyword":"v canto stramonio","volume":"5000"},{"keyword":"terenzi kirke","volume":"500"},{"keyword":"duhi","volume":"500"},{"keyword":"max mara le parfum","volume":"500"},{"keyword":"stramonio v canto","volume":"500"},{"keyword":"sheikh parfum","volume":"500"},{"keyword":"jacques zolty","volume":"500"},{"keyword":"aj arabia","volume":"500"},{"keyword":"christian lacroix bazar","volume":"500"},{"keyword":"juliette has a gun romantina","volume":"500"},{"keyword":"vilhelm parfumerie mango skin","volume":"500"},{"keyword":"v canto mirabile","volume":"500"},{"keyword":"donna karan dkny be delicious","volume":"500"},{"keyword":"arteolfatto","volume":"500"},{"keyword":"aquawoman rochas","volume":"500"},{"keyword":"angel and demon givenchy","volume":"500"},{"keyword":"venenum kiss","volume":"500"},{"keyword":"v canto mandragola","volume":"500"},{"keyword":"angel demon givenchy","volume":"500"},{"keyword":"hugo boss boss ma vie pour femme","volume":"500"},{"keyword":"nina ricci mademoiselle ricci","volume":"500"},{"keyword":"mmmm juliette has a gun","volume":"500"},{"keyword":"v canto lucrethia","volume":"500"},{"keyword":"mango skin vilhelm parfumerie","volume":"500"},{"keyword":"dalissime salvador dali","volume":"500"},{"keyword":"molecula 02","volume":"50000"},{"keyword":"lucia parfum","volume":"500"},{"keyword":"boadicea pure narcotic","volume":"500"},{"keyword":"terenzi andromeda","volume":"500"}]
wskazówka

Szczegółowe informacje o wyprowadzaniu wyników w formacie JSON opisano w tym artykule.

Możliwe ustawienia

ParametrWartość domyślnaOpis
All cookiesPodanie wszystkich ciasteczek
Cookie "__Secure-3PSID"Ciasteczko "__Secure-3PSID"
Cookie "__Secure-3PSIDTS"Ciasteczko "__Secure-3PSIDTS"
Header "x-framework-xsrf-token"Nagłówek "x-framework-xsrf-token"
Url parameter "ocid"("uscid")Parametr "ocid"("uscid")
Url parameter "authuser"0Parametr "authuser"
E-mailE-mail do autoryzacji w Keyword Planner
PasswordHasło do autoryzacji w Keyword Planner
Recovery e-mailE-mail do odzyskiwania dostępu
Browser headless (debug auth)Tryb headless dla przeglądarki używanej do autoryzacji przez login-hasło
Log Login Screenshot (debug auth)Tworzenie zrzutu ekranu strony autoryzacji i wyprowadzenie go do logu zadania
Date fromLast 12 monthsData od
Date toLast 12 monthsData do
LanguageEnglishJęzyk
Search networksGoogleSieć wyszukiwania
CurrencyUSDWaluta
Location codeLokalizacja (należy tutaj podać id lokalizacji, można je pobrać z pierwszej kolumny tej tabeli (kopia))
Query typeKeywordTyp zapytania
Exclude brand names in resultsFiltr marek
Exclude adult ideasFiltr treści dla dorosłych
Bulk (packet) modeWłączenie trybu pakietowego