Pular para o conteúdo principal

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

Ideias do Keyword Planner

Visão geral do scraper

SE::Google::KeywordPlanner::IdeasSE::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

exemplo de exibição de tendências no resultado

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
aviso

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.

solução para erro de autenticação

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

onde encontrar parâmetros para autenticação 1

onde encontrar parâmetros para autenticação 2

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:

  • $volume serão preenchidos para cada palavra-chave
  • $ideas e $suggests serã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
  • $volume para 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
  • $volume para 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
  • $volume para 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"

dica

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"}]
dica

Mais detalhes sobre a exibição de resultados em JSON são descritos em este artigo.

Configurações possíveis

ParâmetroValor padrãoDescrição
All cookiesEspecificaçã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"0Parâmetro "authuser"
E-mailE-mail para autenticação no Keyword Planner
PasswordSenha para autenticação no Keyword Planner
Recovery e-mailE-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 fromLast 12 monthsData de
Date toLast 12 monthsData até
LanguageEnglishIdioma
Search networksGoogleRede de pesquisa
CurrencyUSDMoeda
Location codeLocalização (aqui deve-se indicar o id da localização, que pode ser obtido na primeira coluna desta tabela (cópia))
Query typeKeywordTipo de consulta
Exclude brand names in resultsFiltro de marcas
Exclude adult ideasFiltro de conteúdo adulto
Bulk (packet) modeAtivação do modo em lote