Перейти к основному содержимому

SE::Google::KeywordPlanner::Ideas - парсер вариантов ключевых слов из Google Keyword Planner

Keyword Planner ideas

Обзор парсера

SE::Google::KeywordPlanner::IdeasSE::Google::KeywordPlanner::Ideas – парсинг вариантов ключевых слов и подсказок с Google Keyword Planner. Для использования доступно множество получаемых данных: парсинг списков подсказок, оценка конкуренции для ключевых слов, сбор среднего кол-ва запросов в месяц, минимальных и максимальных ставок, поиск новых ключевых слов схожей тематики. В настройках парсинга вы можете указать язык, регион, локацию и период выборки данных. Также доступен пакетный режим, благодаря которому за один запрос к сервису можно получить данные сразу для 20 ключевых слов, тем самым значительно ускоряя парсинг.

Благодаря многопоточной работе A-Parser'a, скорость обработки запросов может достигать нескольких тысяч запросов в минуту.

Функционал A-Parser позволяет сохранять настройки парсинга парсера SE::Google::KeywordPlanner::Ideas для дальнейшего использования (пресеты), задавать расписание парсинга и многое другое.

Сохранение результатов возможно в том виде и структуре которая вам необходима, благодаря встроенному мощному шаблонизатору Template Toolkit который позволяет применять дополнительную логику к результатам и выводить данные в различных форматах, включая JSON, SQL и CSV.

Собираемые данные

  • Cреднее количество запросов в месяц для искомого ключевого слова
  • Списки подсказок
  • Варианты ключевых слов
    • Среднее кол-во запросов в месяц
    • Конкуренция
    • Минимальная и максимальная ставки
    • Тренды для каждого полученного варианта

Возможности

  • Поддержка авторизации по логин-паролю или через подстановку кук и заголовков
  • Определение степени точности $volume - точное/округленное значение
  • Поддерживается пакетный режим, подробнее в разделе Запросы
  • Поддержка мультиаккаунтов (для выбора нужного аккаунта обязательно должен быть указан его ocid(uscid))
  • Парсинг данных об объемах поиска для каждого ключевого слова помесячно за указанный период ($ideas.$i.trends). Данные представлены в JSON, пример их вывода в результат на скриншоте ниже:
Спойлер: Скриншот

пример вывода трендов в результат

Шаблон:

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

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

Варианты использования

  • Парсинг списков подсказок
  • Оценка конкуренции для ключевых слов
  • Сбор среднего кол-во запросов в месяц, минимальных и максимальных ставок
  • Поиск новых ключевых слов схожей тематики

Настройка

Существует два варианта настройки парсера:

  • указать эл. почту\пароль от аккаунта Keyword Planner
  • авторизоваться в браузере и скопировать нужные значения
предупреждение

Относитесь с осторожностью к количеству потоков. Рекомендуется указывать небольшое кол-во потоков, при этом вполне возможен парсинг без прокси.

Авторизация через почту и пароль

Нужно переопределить опции E-mail и Password, указав данные от вашего аккаунта Keyword Planner. На аккаунте обязательно должна быть создана кампания.

Спойлер: (Решение) Login failed TypeError: Cannot read property '1' of null

В случае возникновения данной ошибки вам нужно удалить свой аккаунт Google из браузера и залогиниться заново.

решение ошибки авторизации

Авторизация в браузере и подстановка заголовков в парсер

Необходимо авторизоваться в браузере по ссылке https://ads.google.com/aw/keywordplanner/home, создать первую кампанию, если ранее не было, взять следующие данные и указать их в настройках парсера:

Куки можно указать двумя способами:

  • Указать все куки в опцию All cookies
  • Указать значения из куки для опций __Secure-3PSID, __Secure-3PSIDTS (__Secure-3PSIDTS нужно указать в случае если authuser на аккаунте равен 0)

Остальные заголовки:

  • Значение заголовка x-framework-xsrf-token
  • Значение параметра ocid или uscid из урла
  • Значение параметра authuser из урла
Спойлер: Как найти необходимые параметры

где искать параметры для авторизации 1

где искать параметры для авторизации 1

Запросы

В зависимости от значения параметра Query type запросы могут иметь разный вид. Ниже перечислены возможные варианты, показаны примеры и описаны особенности получаемых результатов.

Keyword

Запросы должны быть в виде ключевых слов, по одному КС на строку. Пример запросов:

test
парсер
Windows 11
как вырастить дерево

Поддерживается пакетный режим, который активируется опцией Bulk (packet) mode. В этом режиме парсер в запросе к сервису будет отправлять пакеты по 20 КС, из-за чего меняется логика заполнения результатов:

  • $volume будут заполнены для каждого КС
  • $ideas и $suggests будут заполнены только для первого КС, но в этих массивах будут все результаты суммарно для всех КС, используемых в данном пакете

Site + keyword

Запросы должны быть в виде сайта и через пробел ключевого слова. Пример запросов:

speedtest.com Network speed
a-parser.com parser

Также поддерживается пакетный режим, для его использования нужно перечислить ключевые слова через запятую, пример:

4pda.to android,ios,прошивка
google.com google,ads,реклама,поиск сайтов в интернете
  • $volume для данного типа запросов в пакетном режиме не парсится

Entire site

В качестве запросов нужно указывать домены, по одному на строку. Например:

apple.com
microsoft.com
  • $volume для данного типа запросов не парсятся

URL

В качестве запросов нужно указывать ссылки, по одной на строку. Например:

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 для данного типа запросов не парсятся

Подстановки запросов

Вы можете использовать встроенные макросы для автоматической подстановки подзапросов из файлов, например мы хотим к кажому запросу добавить какой-то список других слов, укажем несколько основных запросов:

fantasy
tower defense
rpg

В формате запросов укажем макрос подстановки дополнительных слов из файла keywords.txt, данный метод позволяет увеличить вариативность запросов многократно:

{subs:keywords} $query 

Данный макрос создаст столько же дополнительных запросов сколько их находится в файле на каждый исходный поисковый запрос, что в сумме даст [количество исходных запросов] х [количество запросов в файле Keywords] = [общее количество запросов] в результате работы макроса.

Например, если в файл keywords.txt будет содержать:

free
online

В итоге макрос подстановок превратит 3 основных запроса в 6:

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

Варианты вывода результатов

A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структуированной, например CSV или JSON

Вывод по умолчанию

Формат результата:

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

Пример результата:

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

Вывод в таблицу CSV

Формат результата:

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

Имя файла:

$datefile.format().csv

Начальный текст:

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

подсказка

В Формате результатов применяется шаблонизатор Template Toolkit для вывода массива $ideas в цикле FOREACH.

В имени файла результатов нужно просто изменить разрешение файла на csv.

Чтобы опция "Начальный текст" была доступна в Редакторе заданий, нужно активировать "Больше опций". В "Начальный текст" записываем названия столбцов через запятую и второй строку делаем пустой.

Сохранение в формате SQL

Формат результата:

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

Пример результата:

INSERT INTO ideas VALUES('духи', '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')

Дамп результатов в JSON

Общий формат результата:

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

Пример результата:

[{"keyword":"духи","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"}]
подсказка

Детальнее о выводе результатов в JSON описано в этой статье.

Возможные настройки

ПараметрЗначение по умолчаниюОписание
All cookiesУказание всех кук
Cookie "__Secure-3PSID"Кука "__Secure-3PSID"
Cookie "__Secure-3PSIDTS"Кука "__Secure-3PSIDTS"
Header "x-framework-xsrf-token"Заголовок "x-framework-xsrf-token"
Url parameter "ocid"("uscid")Параметр "ocid"("uscid")
Url parameter "authuser"0Параметр "authuser"
E-mailE-mail для авторизации в Keyword Planner
PasswordПароль для авторизации в Keyword Planner
Recovery e-mailE-mail для восстановления доступа
Browser headless (debug auth)Режим headless для браузера, используемого для авторизации через логин-пароль
Log Login Screenshot (debug auth)Создание скриншота страницы авторизации и вывод его в лог задания
Date fromLast 12 monthsДата от
Date toLast 12 monthsДата до
LanguageEnglishЯзык
Search networksGoogleПоисковая сеть
CurrencyUSDВалюта
Location codeЛокация (здесь нужно указывать id локации, взять можно из первого столбика этой таблицы (копия))
Query typeKeywordТип запроса
Exclude brand names in resultsФильтр брендов
Exclude adult ideasФильтр контента для взрослых
Bulk (packet) modeВключение пакетного режима