SE::Google::KeywordPlanner::Ideas - scraper de ideias de palavras-chave do Google Keyword Planner

Visão geral do scraper
SE::Google::KeywordPlanner::Ideas – extração de dados de variantes de palavras-chave e sugestões do Google Keyword Planner. Uma grande quantidade de dados está disponível para uso: extração de listas de sugestões, avaliação da concorrência para palavras-chave, coleta do volume médio de pesquisas mensais, lances mínimos e máximos, busca por novas palavras-chave de tópicos semelhantes. Nas configurações de extração de dados, você pode especificar o idioma, a região, a localização e o período de amostragem dos dados. Também está disponível um modo em lote, graças ao qual é possível obter dados para 20 palavras-chave de uma só vez em uma única consulta ao serviço, acelerando significativamente a extração de dados.Graças ao processamento em múltiplas threads do A-Parser, a velocidade de processamento de consultas pode atingir vários milhares de consultas por minuto.
A funcionalidade do A-Parser permite salvar as configurações de extração de dados do scraper SE::Google::KeywordPlanner::Ideas para uso futuro (presets), definir agendamentos de extração de dados e muito mais.
A preservação dos resultados é possível no formato e estrutura que você necessita, graças ao poderoso motor de modelos integrado Template Toolkit que permite aplicar lógica adicional aos resultados e exibir dados em vários formatos, incluindo JSON, SQL e CSV.
Dados coletados
- Média de pesquisas mensais para a palavra-chave pesquisada
- Listas de sugestões
- Variantes de palavras-chave
- Média de pesquisas mensais
- Concorrência
- Lances mínimos e máximos
- Tendências para cada variante obtida
Recursos
- Suporte para autenticação por login-senha ou através da inserção de cookies e cabeçalhos
- Definição do grau de precisão do $volume - valor exato/arredondado
- Suporte ao modo em lote, mais detalhes na seção Queries (Consultas)
- Suporte a múltiplas contas (para selecionar a conta correta, o seu
ocid(uscid)deve ser obrigatoriamente especificado) - Extração de dados sobre volumes de pesquisa para cada palavra-chave mensalmente por um período especificado (
$ideas.$i.trends). Os dados são apresentados em JSON, exemplo de sua exibição no resultado na captura de tela abaixo:
Spoiler: Captura de tela

Modelo:
[% FOREACH item IN ideas;
trends = tools.parseJSON(item.trends);
item.keyword _ "\n";
trends.format('$month: $volume\n');
"----\n";
END %]
Casos de uso
- Extração de listas de sugestões
- Avaliação da concorrência para palavras-chave
- Coleta da média de pesquisas mensais, lances mínimos e máximos
- Busca por novas palavras-chave de temática semelhante
Configuração
Existem duas opções para configurar o scraper:
- especificar e-mail\senha da conta do Keyword Planner
- autenticar-se no navegador e copiar os valores necessários
Tenha cautela com o número de threads. Recomenda-se especificar um número pequeno de threads, sendo perfeitamente possível a extração de dados sem proxy.
Autenticação via e-mail e senha
É necessário redefinir as opções E-mail e Password, inserindo os dados da sua conta do Keyword Planner. Uma campanha deve obrigatoriamente estar criada na conta.
Spoiler: (Solução) Login failed TypeError: Cannot read property '1' of null
No caso de ocorrer este erro, você precisa remover sua conta do Google do navegador e fazer login novamente.

Autenticação no navegador e inserção de cabeçalhos no scraper
É necessário autenticar-se no navegador pelo link https://ads.google.com/aw/keywordplanner/home, criar a primeira campanha, se não houver uma anteriormente, obter os seguintes dados e inseri-los nas configurações do scraper:
Os cookies podem ser especificados de duas formas:
- Inserir todos os cookies na opção All cookies
- Inserir os valores dos cookies para as opções __Secure-3PSID, __Secure-3PSIDTS (__Secure-3PSIDTS deve ser inserido caso o authuser na conta seja igual a 0)
Outros cabeçalhos:
- Valor do cabeçalho x-framework-xsrf-token
- Valor do parâmetro ocid ou uscid da URL
- Valor do parâmetro authuser da URL
Spoiler: Como encontrar os parâmetros necessários


Consultas
Dependendo do valor do parâmetro Query type, as consultas podem ter formatos diferentes. Abaixo estão listadas as opções possíveis, exemplos demonstrados e descritas as características dos resultados obtidos.
Keyword
As consultas devem ser na forma de palavras-chave, uma por linha. Exemplo de consultas:
test
scraper
Windows 11
como cultivar uma árvore
O modo em lote é suportado, sendo ativado pela opção Bulk (packet) mode. Neste modo, o scraper enviará pacotes de 20 palavras-chave na consulta ao serviço, o que altera a lógica de preenchimento dos resultados:
$volumeserão preenchidos para cada palavra-chave$idease$suggestsserão preenchidos apenas para a primeira palavra-chave, mas nestes arrays estarão todos os resultados somados para todas as palavras-chave utilizadas no referido pacote
Site + keyword
As consultas devem ser na forma de um site seguido de um espaço e a palavra-chave. Exemplo de consultas:
speedtest.com Network speed
a-parser.com parser
Também é suportado o modo em lote; para utilizá-lo, deve-se listar as palavras-chave separadas por vírgula, exemplo:
4pda.to android,ios,firmware
google.com google,ads,publicidade,busca de sites na internet
$volumepara este tipo de consulta no modo em lote não é extraído
Entire site
Como consultas, devem ser especificados domínios, um por linha. Por exemplo:
apple.com
microsoft.com
$volumepara este tipo de consulta não são extraídos
URL
Como consultas, devem ser especificados links, um por linha. Por exemplo:
https://a-parser.com/docs/parsers/se-google-keywordplanner
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics
$volumepara este tipo de consulta não são extraídos
Substituições de consultas
Você pode usar macros integrados para substituição automática de subconsultas a partir de arquivos, por exemplo, se quisermos adicionar uma lista de outras palavras a cada consulta, especificamos algumas consultas principais:
fantasy
tower defense
rpg
No formato de consultas, especificamos o macro de substituição de palavras adicionais do arquivo keywords.txt, este método permite aumentar a variabilidade das consultas exponencialmente:
{subs:keywords} $query
Esta macro criará tantas consultas adicionais quantas estiverem no arquivo para cada consulta de pesquisa original, o que resultará em [quantidade de consultas originais] x [quantidade de consultas no arquivo Keywords] = [quantidade total de consultas] como resultado da execução da macro.
Por exemplo, se o arquivo keywords.txt contiver:
free
online
No final, o macro de substituições transformará 3 consultas principais em 6:
free fantasy
online fantasy
free tower defense
online tower defense
free rpg
online rpg
Opções de exibição de resultados
O A-Parser suporta formatação flexível de resultados graças ao motor de modelos integrado Template Toolkit, o que permite exibir resultados em formato livre, bem como estruturado, como CSV ou JSON
Exibição padrão
Formato do resultado:
$ideas.format('$keyword\n')
Exemplo de resultado:
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
Exibição em tabela CSV
Formato do resultado:
[% FOREACH i IN ideas;
tools.CSVline(i.keyword, i.volume, i.min_bid, i.max_bid);
END %]
Nome do arquivo:
$datefile.format().csv
Texto inicial:
Keyword,Volume,"Min bid","Max bid"
No Formato de resultados, aplica-se o motor de modelos Template Toolkit para exibir o array $ideas em um loop FOREACH.
No nome do arquivo de resultados, basta alterar a extensão do arquivo para csv.
Para que a opção "Prepend text" esteja disponível no Editor de tarefas, é necessário ativar "More options". No "Prepend text", escrevemos os nomes das colunas separados por vírgula e deixamos a segunda linha vazia.
Salvamento em formato SQL
Formato do resultado:
[% FOREACH ideas;
"INSERT INTO ideas VALUES('" _ keyword _ "', '" _ volume _ "')\n";
END %]
Exemplo de resultado:
INSERT INTO ideas VALUES('perfume', '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 de resultados em JSON
Formato geral do resultado:
[% data = [];
FOREACH p1.ideas;
item = {};
item.keyword = keyword;
item.volume = volume;
data.push(item);
END %]$data.json\n
Exemplo de resultado:
[{"keyword":"perfume","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"}]
Mais detalhes sobre a exibição de resultados em JSON são descritos em este artigo.
Configurações possíveis
| Parâmetro | Valor padrão | Descrição |
|---|---|---|
| All cookies | Especificação de todos os cookies | |
| Cookie "__Secure-3PSID" | Cookie "__Secure-3PSID" | |
| Cookie "__Secure-3PSIDTS" | Cookie "__Secure-3PSIDTS" | |
| Header "x-framework-xsrf-token" | Cabeçalho "x-framework-xsrf-token" | |
| Url parameter "ocid"("uscid") | Parâmetro "ocid"("uscid") | |
| Url parameter "authuser" | 0 | Parâmetro "authuser" |
| E-mail para autenticação no Keyword Planner | ||
| Password | Senha para autenticação no Keyword Planner | |
| Recovery e-mail | E-mail para recuperação de acesso | |
| Browser headless (debug auth) | ☑ | Modo headless para o navegador utilizado na autenticação via login-senha |
| Log Login Screenshot (debug auth) | ☐ | Criação de captura de tela da página de autenticação e exibição no log da tarefa |
| Date from | Last 12 months | Data de |
| Date to | Last 12 months | Data até |
| Language | English | Idioma |
| Search networks | Google | Rede de pesquisa |
| Currency | USD | Moeda |
| Location code | Localização (aqui deve-se indicar o id da localização, que pode ser obtido na primeira coluna desta tabela (cópia)) | |
| Query type | Keyword | Tipo de consulta |
| Exclude brand names in results | ☐ | Filtro de marcas |
| Exclude adult ideas | ☑ | Filtro de conteúdo adulto |
| Bulk (packet) mode | ☐ | Ativação do modo em lote |