SE::Google::KeywordPlanner::Ideas - scraper di varianti di parole chiave da Google Keyword Planner

Panoramica dello scraper
SE::Google::KeywordPlanner::Ideas – scraping di varianti di parole chiave e suggerimenti da Google Keyword Planner. Sono disponibili numerosi dati per l'utilizzo: scraping di elenchi di suggerimenti, valutazione della concorrenza per le parole chiave, raccolta del numero medio di ricerche mensili, offerte minime e massime, ricerca di nuove parole chiave di argomenti simili. Nelle impostazioni di scraping è possibile specificare la lingua, la regione, la posizione e il periodo di campionamento dei dati. È disponibile anche una modalità batch, grazie alla quale è possibile ottenere dati per 20 parole chiave contemporaneamente con una singola richiesta al servizio, accelerando così notevolmente lo scraping.Grazie al funzionamento in multithreading di A-Parser, la velocità di elaborazione delle query può raggiungere diverse migliaia di richieste al minuto.
La funzionalità di A-Parser consente di salvare le impostazioni di scraping dello scraper SE::Google::KeywordPlanner::Ideas per un uso futuro (preset), impostare programmi di scraping e molto altro.
Il salvataggio dei risultati è possibile nella forma e nella struttura necessarie, grazie al potente motore di modelli integrato Template Toolkit che consente di applicare logica aggiuntiva ai risultati e di esportare i dati in vari formati, tra cui JSON, SQL e CSV.
Dati raccolti
- Numero medio di ricerche mensili per la parola chiave cercata
- Elenchi di suggerimenti
- Varianti di parole chiave
- Numero medio di ricerche mensili
- Concorrenza
- Offerte minime e massime
- Trend per ogni variante ottenuta
Funzionalità
- Supporto per l'autorizzazione tramite login-password o tramite l'inserimento di cookie e intestazioni
- Determinazione del grado di precisione di $volume - valore esatto/arrotondato
- Supporto per la modalità batch, maggiori dettagli nella sezione Queries (Query)
- Supporto per multi-account (per selezionare l'account desiderato deve essere specificato il suo
ocid(uscid)) - Scraping dei dati sui volumi di ricerca per ogni parola chiave mensilmente per il periodo specificato (
$ideas.$i.trends). I dati sono presentati in JSON, un esempio del loro output nel risultato è mostrato nello screenshot qui sotto:
Spoiler: Screenshot

Modello:
[% FOREACH item IN ideas;
trends = tools.parseJSON(item.trends);
item.keyword _ "\n";
trends.format('$month: $volume\n');
"----\n";
END %]
Casi d'uso
- Scraping di elenchi di suggerimenti
- Valutazione della concorrenza per le parole chiave
- Raccolta del numero medio di ricerche mensili, offerte minime e massime
- Ricerca di nuove parole chiave di tematiche simili
Configurazione
Esistono due opzioni per configurare lo scraper:
- specificare e-mail\password dell'account Keyword Planner
- autorizzarsi nel browser e copiare i valori necessari
Prestare attenzione al numero di thread. Si consiglia di specificare un numero ridotto di thread; lo scraping senza proxy è del tutto possibile.
Autorizzazione tramite e-mail e password
È necessario sovrascrivere le opzioni E-mail e Password, indicando i dati del proprio account Keyword Planner. Sull'account deve essere obbligatoriamente creata una campagna.
Spoiler: (Soluzione) Login failed TypeError: Cannot read property '1' of null
In caso di questo errore, è necessario rimuovere il proprio account Google dal browser e accedere nuovamente.

Autorizzazione nel browser e inserimento delle intestazioni nello scraper
È necessario autorizzarsi nel browser al link https://ads.google.com/aw/keywordplanner/home, creare la prima campagna se non è stata creata in precedenza, prelevare i seguenti dati e inserirli nelle impostazioni dello scraper:
I cookie possono essere specificati in due modi:
- Specificare tutti i cookie nell'opzione All cookies
- Specificare i valori dai cookie per le opzioni __Secure-3PSID, __Secure-3PSIDTS (__Secure-3PSIDTS deve essere specificato se authuser sull'account è uguale a 0)
Altre intestazioni:
- Valore dell'intestazione x-framework-xsrf-token
- Valore del parametro ocid o uscid dall'URL
- Valore del parametro authuser dall'URL
Spoiler: Come trovare i parametri necessari


Query
A seconda del valore del parametro Query type, le query possono avere un aspetto diverso. Di seguito sono elencate le opzioni possibili, mostrati esempi e descritte le caratteristiche dei risultati ottenuti.
Keyword
Le query devono essere sotto forma di parole chiave, una per riga. Esempio di query:
test
scraper
Windows 11
come far crescere un albero
È supportata la modalità batch, che si attiva con l'opzione Bulk (packet) mode. In questa modalità, lo scraper invierà pacchetti di 20 parole chiave nella richiesta al servizio, il che cambia la logica di compilazione dei risultati:
$volumesarà compilato per ogni parola chiave$idease$suggestssaranno compilati solo per la prima parola chiave, ma in questi array ci saranno tutti i risultati aggregati per tutte le parole chiave utilizzate nel pacchetto dato
Site + keyword
Le query devono essere sotto forma di sito e, dopo uno spazio, la parola chiave. Esempio di query:
speedtest.com Network speed
a-parser.com parser
È supportata anche la modalità batch; per utilizzarla è necessario elencare le parole chiave separate da virgola, esempio:
4pda.to android,ios,firmware
google.com google,ads,pubblicità,ricerca siti su internet
$volumeper questo tipo di query in modalità batch non viene estratto
Entire site
Come query è necessario indicare i domini, uno per riga. Ad esempio:
apple.com
microsoft.com
$volumeper questo tipo di query non vengono estratti
URL
Come query è necessario indicare i link, uno per riga. Ad esempio:
https://a-parser.com/docs/parsers/se-google-keywordplanner
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics
$volumeper questo tipo di query non vengono estratti
Sostituzioni nelle query
È possibile utilizzare le macro integrate per la sostituzione automatica di sotto-query da file, ad esempio se vogliamo aggiungere a ogni query un elenco di altre parole, indichiamo alcune query principali:
fantasy
tower defense
rpg
Nel formato della query indichiamo la macro di sostituzione di parole aggiuntive dal file keywords.txt, questo metodo consente di aumentare notevolmente la variabilità delle query:
{subs:keywords} $query
Questa macro creerà tante query aggiuntive quante sono presenti nel file per ogni query di ricerca originale, il che darà come risultato [numero di query originali] x [numero di query nel file Keywords] = [numero totale di query].
Ad esempio, se il file keywords.txt contiene:
free
online
Alla fine, la macro di sostituzione trasformerà 3 query principali in 6:
free fantasy
online fantasy
free tower defense
online tower defense
free rpg
online rpg
Esempi di output dei risultati
A-Parser supporta la formattazione flessibile dei risultati grazie al motore di modelli integrato Template Toolkit, che gli consente di produrre risultati in forma arbitraria, così come in forma strutturata, ad esempio CSV o JSON
Output predefinito
Formato del risultato:
$ideas.format('$keyword\n')
Esempio di risultato:
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
Output in tabella CSV
Formato del risultato:
[% FOREACH i IN ideas;
tools.CSVline(i.keyword, i.volume, i.min_bid, i.max_bid);
END %]
Nome del file:
$datefile.format().csv
Testo iniziale:
Keyword,Volume,"Min bid","Max bid"
Nel Formato dei risultati viene applicato il motore di modelli Template Toolkit per l'output dell'array $ideas in un ciclo FOREACH.
Nel nome del file dei risultati è sufficiente cambiare l'estensione del file in csv.
Affinché l'opzione "Prepend text" sia disponibile nell'Editor delle attività, è necessario attivare "More options". In "Prepend text" scriviamo i nomi delle colonne separati da virgola e rendiamo vuota la seconda riga.
Salvataggio in formato SQL
Formato del risultato:
[% FOREACH ideas;
"INSERT INTO ideas VALUES('" _ keyword _ "', '" _ volume _ "')\n";
END %]
Esempio di risultato:
INSERT INTO ideas VALUES('profumo', '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')
Dump dei risultati in JSON
Formato generale del risultato:
[% data = [];
FOREACH p1.ideas;
item = {};
item.keyword = keyword;
item.volume = volume;
data.push(item);
END %]$data.json\n
Esempio di risultato:
[{"keyword":"profumo","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"}]
Maggiori dettagli sull'output dei risultati in JSON sono descritti in questo articolo.
Impostazioni possibili
| Parametro | Valore predefinito | Descrizione |
|---|---|---|
| All cookies | Specifica di tutti i cookie | |
| Cookie "__Secure-3PSID" | Cookie "__Secure-3PSID" | |
| Cookie "__Secure-3PSIDTS" | Cookie "__Secure-3PSIDTS" | |
| Header "x-framework-xsrf-token" | Intestazione "x-framework-xsrf-token" | |
| Url parameter "ocid"("uscid") | Parametro "ocid"("uscid") | |
| Url parameter "authuser" | 0 | Parametro "authuser" |
| E-mail per l'autorizzazione in Keyword Planner | ||
| Password | Password per l'autorizzazione in Keyword Planner | |
| Recovery e-mail | E-mail per il recupero dell'accesso | |
| Browser headless (debug auth) | ☑ | Modalità headless per il browser utilizzato per l'autorizzazione tramite login-password |
| Log Login Screenshot (debug auth) | ☐ | Creazione di uno screenshot della pagina di autorizzazione e output nel log dell'attività |
| Date from | Last 12 months | Data da |
| Date to | Last 12 months | Data a |
| Language | English | Lingua |
| Search networks | Google | Rete di ricerca |
| Currency | USD | Valuta |
| Location code | Località (qui è necessario indicare l'id della località, reperibile dalla prima colonna di questa tabella (copia)) | |
| Query type | Keyword | Tipo di query |
| Exclude brand names in results | ☐ | Filtro brand |
| Exclude adult ideas | ☑ | Filtro contenuti per adulti |
| Bulk (packet) mode | ☐ | Attivazione modalità batch |