Yandex API. Свой Wordstat с блекджеком и шлюхами + Инструкция и готовый код

Что только не придумано в этой сфере, сколько подобных парсеров как платных, так и бесплатных было написано! Помимо прочего есть еще и расширения для браузера, которые позволяют собирать слова и частотность.

Решил и я побаловаться с API yandex direct'a, а именно парсить wordstat. Написал простенький сервис, который позволяет собирать семантику. В таблице список ключевых фраз, каждое слово в фразе можно отметить как минус слово, и оно добавлется в отдельную колонку (выделяется красным). После нажатия кнопки "Получить слова" мы загружаем фразу с учетом всех выбранных минус слов. Плюс этого метода заключается в том, что Яндекс сам чистит весь мусор и убирает все словоформы минус-слова. Т.е. мы сразу выполняем 2 дела: собираем и чистим ядро. Есть еще кнопка "Выгрузить в excel" -> отчет в формате csv. А снизу фраза целиком. Также можно получить точную частотность всех выбранных слов.

А теперь о минусах. Формирование отчета занимает в среднем 3-4 сек, суточное ограничение для одного аккаунта яндекса - 1000 запросов. Можно конечно заюзать 5 акков, и тогда уже ограничение будет 5000 фраз. И по нарастающей. Самый главный минус, на мой взгляд, ограничение в 300 фраз. Его никак не обойти. Т.е. при любом запросе яндекс выдает только 300 фраз. Конечно можно добавить множество минус слов, и тогда все 300 фраз будут полезным, уже очищенным ядром. Дальше вопрос только группировки. Для СЧ запросов ограничение не чувствуется.

Зачем все это, если есть кейколлектор и прочее? Ну это бесплатно :) А еще я люблю иногда что-то кодить. Это своеобразный вид творчества. Кто-то рисует картины, пишет стихи, а я кодю на ПыХыПы.

// UPDATE

Оставляем заявку в Яндекс на использование API + Рабочий Код

Прошло много времени с публикации этого поста и мне за это время поступали вопросы по поводу исходного кода, да и вообще хоть какой-то инструкции. Я решил дополнить эту запись подробным руководством, внести ясность в работу с этим инструментом и приложить исходники. Поехали!

1. Чтобы работать с директом по АПИ нужно оформить тестовый доступ, зарегистрировать свое будущее приложение. Не бойтесь, они одобряют практически всегда. Переходим по ссылке и нажимаем "Получить доступ к API", далее принимаем оферту. После чего выбираем раздел "Мои заявки" -> Кнопка "Новая заявка" -> Тестовый доступ.

2. Сначала регистрируем ваше приложение. Поэтому нажимаем справа ссылку "Регистрация нового application ID". Заполняем форму там где звездочки. Название и Доступы (выбираем Яндекс.Директ - Использование АПИ Яндекс Директа). После этого жмем "Создать приложение".

3. Далее возвращаемся в пункт 1. Снова создаем тестовую заявку. Но уже в первом поле "Введите application_id или выберите из списка" будет отмечено только что созданное ваше приложение. Далее указываем почту, указываете, что ваша специфика - разработчик, цель - получение статистики, функции - Подбор ключевых слов. В новых возможностях можете просто написать что-то типа "Анализ эффективности ключевых слов". Далее завершаем регистрацию. И ждем когда во вкладке "Мои заявки" появится рядом с вашим новым приложением отметка: статус - одобрена.

ФУНКЦИОНАЛ. Только после одобрения. Получаем статистику и радуемся!

4. Простенький код и основная функция для работы с API Yandex Direct:

function getWordstat($method, $params = false) { # Cпособ отправления JSON-запроса c OAuth-авторизацией //https://oauth.yandex.ru/authorize?response_type=token&client_id=ПОДСТАВИТЬ_ID_ПРИЛОЖЕНИЯ # формирование запроса $request = array( 'token'=> 'ТОКЕН_КОТОРЫЙ_ВЫ_ПОЛУЧИЛИ_ПО_ССЫЛКЕ_ВЫШЕ', 'method'=> $method, 'param'=> is_array($params)? utf8($params):$params, 'locale'=> 'ru', ); # преобразование в JSON-формат $request = json_encode($request); # параметры запроса $opts = array( 'http'=>array( 'header' => "Content-Type: application/x-www-form-urlencoded\r\n", 'method'=>"POST", 'content'=>$request, ) ); # создание контекста потока $context = stream_context_create($opts); # отправляем запрос и получаем ответ от сервера $result = file_get_contents('https://api-sandbox.direct.yandex.ru/v4/json/', 0, $context); # Возвращаем ответ return json_decode($result); } # перекодировка строковых данных в UTF-8 function utf8($struct) { foreach ($struct as $key => $value) { if (is_array($value)) { $struct[$key] = utf8($value); } elseif (is_string($value)) { $struct[$key] = utf8_encode($value); } } return $struct; } # Делаем запрос на получение статистики $request = getWordstat('CreateNewWordstatReport', array( 'Phrases' => array("шкафы купе"), 'GeoID' => array(1)) ); # Отчет формируется sleep(3); # Получаем ответ в виде объекта $result = getWordstat('GetWordstatReport', $request->data); # Сразу удаляем этот отчет, дабы не забивать свой аккаунт. Т.к. максимум 5 отчетов можно. getWordstat('DeleteWordstatReport', $request->data); # Обрабатываем отчет как хотим. В данный момент просто выводим на экран. echo "<pre>"; print_r($result);

Как видим, ничего сложного нет. Вписываем свой ID приложения, который указан длинным номером возле названия приложения во вкладке "Мои приложения". Переходим по ссылке в комментарии кода и получаем токен.

В данном примере мы формируем отчет с помощью специальной функции. Ждем 3 секунды. И получаем наш отчет. Все команды и их ответы представлены в документации апи.

P.s. Рабочие исходники кода - скачать.

Псс, парень, коммент будет?

Виталий

Спасибо тебе, добрый человек

Ответить

Привет, интересно Вас читать)
Как можно ознакомиться с исходниками?

Ответить

Запись дополнена

Ответить

Александр

Добрый день, не могли бы вы показать серверный код обращения к сервисам Yandex?

Ответить

Здравствуйте,
Если вам интересно я могу запилить пост с исходниками на эту тему. В комментах скидывать код php не очень.

Ответить

Александр

Интересно.=)

Ответить

Добавить комментарий