| | Вопросы и ответыВ начале Использование API Как спросить В начале- Что такое API Яндекс.Директа, и в каких целях его можно использовать?
API к сервису Яндекс.Директ дает возможность разработчикам создавать приложения, напрямую с ним взаимодействующие.
С помощью таких приложений рекламодатели, и, в первую очередь, рекламные агентства, смогут более гибко и эффективно управлять сложными и масштабными рекламными кампаниями, точнее прогнозировать бюджеты и своевременно получать статистические отчеты по каждой кампании.
Среди наиболее вероятных вариантов использования API: -
составление статистических отчетов по рекламным кампаниям;
-
использование полученных из Яндекс.Директа данных в качестве входной информации для существующих бизнес-приложений, в том числе и интеграция со статистическими базами данных вашей компании или предприятия;
-
разработка более сложных приложений по управлению разветвленными рекламными кампаниями в сети Интернет.
- Как подключиться к API?
Для того чтобы подключиться к API, необходимо выполнить следующие шаги: -
Зайдите в раздел «API» в интерфейсе Яндекс.Директа и примите Пользовательское Соглашение.
-
Создайте сертификат API одним из доступных способов (см. Получение доступа к API).
Прим.: Сертификат можно создать сроком от одного до трех месяцев.
В вашем скрипте необходимо явно указать путь к файлам с сертификатом, private-ключу и файлу cacert.pem.
Внимание! Для взаимодействия между серверами по протоколу HTTPS рекомендуется воспользоваться следующими сторонними модулями: - Как я могу получить сертификат?
Получив доступ к API, вы можете создать сертификат для своего аккаунта, воспользовавшись одним из следующих способов: -
Получить готовый сертификат от Яндекс.Директа.
-
Сформировать секретный ключ самостоятельно, а затем подтвердить сертификат на сервере Директа.
Использование API- Для скольких кампаний я могу использовать API-сертификат?
API-сертификат выписывается на логин. То есть, вы можете управлять всеми кампаниями, находящимися под этим логином с помощью одного API сертификата.
- Какие есть ограничения на использование API?
В API действуют несколько типов ограничений.
Технические ограничения
Ограничения накладываются на количество вызовов в течение суток того или иного метода:
При превышении разрешенного количества вызовов любого из методов вступает в действие следующее ограничение: до начала новых суток каждый метод может вызываться не чаще одного раза в 10 минут.
Также ограничения накладываются на количество кампаний, объявлений или фраз в методах:
Ограничения накладываются на количество клиентов в методах:
Ограничения накладываются на количество одновременно выполняющихся запросов. Разрешается отправлять не более пяти одновременных запросов на одну учетную запись.
Балльные ограничения
API Яндекс.Директа предоставляется бесплатно, но количество и характер доступных операций, которые вы можете произвести в течение суток, зависят от количества баллов на вашем аккаунте. Баллы API пересчитываются и начисляются один раз в сутки.
На количество доступных для использования баллов влияет множество факторов, в частности: -
количество отклоненных на модерации объявлений;
-
количество фраз, отключенных за низкий CTR;
-
средний CTR рекламной кампании;
-
средний бюджет рекламной кампании.
Стоимость операций, имеющих балльные ограничения: -
добавление объявления - 12 баллов;
-
редактирование объявления - 4 балла;
-
добавление новой фразы - 2 балла;
-
редактирование фразы - 1 балл;
-
получение подсказок к ключевым словам - 3 балла за запрос;
-
получение статистики запросов ― 10 баллов за фразу.
После совершения операции ее стоимость и остаток баллов можно узнать из ответа сервера.
Ограничения доступа к API
По умолчанию доступ к API запрещен пользователям «Легкого» интерфейса и клиентам агентств. Если вы являетесь пользователем «Легкого» интерфейса, для получения доступа к API Директа необходимо переключиться на «Профессиональный».
Доступ к API может быть ограничен по IP-адресу пользователя для обеспечения дополнительной безопасности. Чтобы запретить работу со своими рекламными кампаниями пользователям с любыми IP-адресами, кроме своего, напишите письмо в службу поддержки по адресу: api@direct.yandex.ru.
Пользователям, которые не имеют доступа к API, сервис возвращает ошибку с кодом 510 (Access denied).
- Как я могу увеличить количество доступных мне баллов?
Вы можете увеличить количество доступных вам баллов, оптимизируя ваши рекламные кампании: добавляя и уточняя ключевые слова, работая с текстом объявления с целью увеличения его CTR, а также увеличивая минимальные ставки. Баллы пересчитываются и начисляются раз в сутки.
- Есть ли разница в управлении рекламной кампанией через API и через веб-интерфейс?
API Яндекс.Директа дает возможность управлять той же функциональностью Яндекс.Директа, которая доступна через веб-интерфейс. Все изменения, сделанные через API, отражаются в ваших рекламных кампаниях.
- Приведите примеры кода клиентов на Perl, Python и PHP для входа в аккаунт на Яндекс.Директе?
Для Perl:
use strict;
use SOAP::Lite;
use LWP::Simple;
use Crypt::SSLeay;
# Директория, где хранятся файлы с сертификатами
$ENV{HTTPS_CA_DIR} = '/path_to_certs/';
# файл, содержащий сертификат пользователя
$ENV{HTTPS_CERT_FILE} = $ENV{HTTPS_CA_DIR} . 'cert.crt';
# файл, содержащий секретный ключ
$ENV{HTTPS_KEY_FILE} = $ENV{HTTPS_CA_DIR} . 'private.key';
# файл, содержащий корневой сертификат
$ENV{HTTPS_CA_FILE} = $ENV{HTTPS_CA_DIR} . 'cacert.pem';
# Создание объекта для подключения к SOAP
my $client = SOAP::Lite
-> proxy('https://soap.direct.yandex.ru/api/v3/')
-> uri('API');
# вызов метода (заменить на необходимый)
$result = $client->PingAPI();
Для Python:
import sys
from datetime import date
import SOAPpy
# файл, содержащий сертификат пользователя
CERT_FILE = '/path_to_certs/cert.crt'
# файл, содержащий секретный ключ
PKEY_FILE = '/path_to_certs/private.key'
# Создание объекта для подключения к SOAP-сервису
url = 'http://soap.direct.yandex.ru/wsdl/v3/';
config = SOAPpy.Config
config.debug = 0 # 1 - для вывода запросов и ответов сервера
config.SSL.key_file = PKEY_FILE
config.SSL.cert_file = CERT_FILE
proxy = SOAPpy.WSDL.Proxy(url, config)
# вызов метода (заменить на необходимый)
result = proxy.PingAPI()
Для PHP:
require_once('nusoap073/lib/nusoap.php');
$proxyhost = '';
$proxyport = '';
$proxyusername = '';
$proxypassword = '';
$wsdlurl = "http://soap.direct.yandex.ru/wsdl/v3/";
$client = new nusoap_client($wsdlurl, 'wsdl', $proxyhost, $proxyport, $proxyusername, $proxypassword);
$client->authtype = 'certificate';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';
$client->certRequest['sslcertfile'] = '/path_to_certs/cert.crt';
$client->certRequest['sslkeyfile'] = '/path_to_certs/private.key';
$client->certRequest['cainfofile'] = '/path_to_certs/cacert.pem';
# вызов метода (заменить на необходимый)
$result = $client->call('PingAPI', array());
- Как скачать файл отчета?
Информацию о доступных отчетах можно узнать с помощью метода GetReportList. Скрипт для загрузки готового отчета можно создать на основе примера, приведенного в «Документации». Пример написан на языке PHP с использованием библиотеки cURL, иллюстрирует подключение к сервису Яндекс.Директ и получение файла по протоколу https.
- Как можно вывести XML код запроса и ответа сервера?
В целях обнаружения ошибок и отладки иногда требуется вывести SOAP-запрос клиента и SOAP-ответ сервера.
Для Perl:
my $client = SOAP::Lite->service($client->on_debug(sub {print @_}));
Для Python:
- Какие технологии поддерживаются в API?
В API Яндекс.Директа используется SOAP-протокол версии 1.1 и язык WSDL как способ обмена информацией между приложениями. Наряду с взаимодействием по протоколу SOAP возможен обмен данными с сервисом в формате JSON.
Поддерживаемые на данный момент языки: Perl, PHP, Python, Java.
- С какой частотой можно вызывать методы GetReportList и GetForecastList?
- С какой частотой можно обновлять ставки?
Менять ставки ключевых фраз имеет смысл не чаще чем 1 раз в 20-30 минут.
Как спросить- Куда можно обратиться за помощью в случае возникновения проблем при использовании API?
Если в «Документации» не нашлось исчерпывающего ответа на ваш вопрос, то пишите в службу поддержки API Яндекс.Директа по адресу: api@direct.yandex.ru.
В письме укажите следующие данные: -
логин пользователя, от имени которого выполняется обращение к сервису;
-
точное время запроса;
-
название метода и код вызова метода;
-
ответ сервера и код ответа;
-
пояснение к возникшей проблеме.
| |