This section lists codes and descriptions of errors and warnings in response messages from the Yandex Direct API version 5.
- Errors
- Warnings
Error code | Message | Comments and possible reasons |
Server errors | ||
---|---|---|
52 | Authorization server temporarily unavailable | The Yandex.Direct API server is temporarily unable to get information from the Yandex.OAuth service. Try calling the method again later. |
1000 | Server temporarily unavailable | Internal error on the Yandex.Direct API server. Try calling the method again later. If the error persists, contact the support service. |
1001 | Service initialization error | |
1002 | Operation error | |
1003 | Couldn’t create a Yandex user account | An error occurred when creating the account. Try calling the method again later. |
1004 | Couldn’t create client | An error occurred when creating a client in Yandex.Direct. Try calling the method again later. Use a different username to repeat the request. |
1020 | Internal server error | The list of available currencies isn’t defined. Contact the support service. |
Authentication error | ||
53 | Authorization error |
Invalid OAuth token. The reasons why a token becomes invalid are listed in the Revoking tokens section in the Yandex OAuth guide. |
Incomplete app registration | ||
58 | Incomplete registration | You must submit a request for API access and wait for it to be approved. |
Permission errors | ||
54 | No rights |
|
513 | Your username is not enabled in Yandex Direct | The request is on behalf of a user who doesn’t have a Yandex.Direct account. To register an account, create an advertising campaign in this user’s name in the web interface. See also Access and authorization. |
3000 | No API access |
|
3001 | No access to the method |
Access to the AgencyClients.add method is granted on request. |
Restrictions, points | ||
152 | Not enough Yandex units | |
506 | Exceeded limit on number of connections | You have reached the maximum number of simultaneous connections to the Yandex.Direct server. |
Unsupported fields, objects, and operations | ||
3500 | Not supported | Attempt to add bid adjustment is not compatible with the campaign type. |
3600 | Limited functionality | Attempt to use the PAY_FOR_CONVERSION or PAY_FOR_CONVERSION_PER_CAMPAIGN strategy. |
Invalid request parameters | ||
4000 | Invalid request parameters |
|
4001 | Invalid SelectionCriteria filter parameters |
|
4002 | Invalid page settings | Invalid value for the Limit or Offset parameter. |
4003 | All required parameters were omitted | The request must contain at least one parameter from the set, but none of them were specified. |
4004 | More than one parameter was passed | Mutually exclusive parameters were specified. Only one of them can be present in the request. |
4005 | A single type of Id must be used within a request | Bids are set with IDs of heterogeneous objects (for example, one Bids structure has CampaignId, but the other structure has AdGroupId). |
4006 | Incompatible operations are entered in the same request | To edit ad callouts, either use the ADD and REMOVE operations, or use the SET operation. |
Invalid field value | ||
5000 | Required field | A required field is empty, or the value consists of spaces. |
5001 | Exceeded allowed length |
|
5002 | Forbidden symbols used |
|
5003 | Empty value specified | There is an empty string, for example, in the Href parameter in an ad. |
5004 | Invalid format |
Incorrect value for an object field, such as:
|
5005 | Field set incorrectly |
Incorrect value for an object field, such as:
|
5006 | Invalid use of field |
|
5007 | Duplicated element | Sitelink texts are duplicates, or they link to the same webpage. |
5008 | All required fields were omitted | The object must have at least one field specified from the set, but none of them are specified. |
5009 | More than one field was passed | The object has mutually exclusive fields specified. |
5100 | Incorrect template use | Incorrect use of templates (##) in the ad title and text. |
5120 | Geotargeting set incorrectly |
|
5140 | Keyword contains too many words | Exceeded the number of words in a keyword. |
5141 | Incorrect use of stop words | A keyword consists exclusively of stop words. |
5142 | Exceeded the maximum word length in a keyword | |
5160 | Negative keyword can’t be a phrase | Attempt to use a negative keyword with a space in it. |
5161 | Incorrect use of negative keywords |
|
5162 | Exceed the maximum length of a negative keyword | |
5181 | You cannot change the advertised application | |
5200 | Login already in use | Attempt to create a client with a login name that is already used by another Yandex account. |
Inconsistent object | ||
6000 | Inconsistent object state |
|
6001 | Wrong object type specified |
|
6100 | The display region doesn’t match the ad text (title, text, sitelinks) | When trying to change the display region in a group, the ad language was not appropriate for the new region (for example, the ad has Kazakh letters, but geotargeting is being changed to Russia) |
6101 | Language doesn’t match geotargeting | When adding or modifying ads, display region compatibility was violated (for example, an ad was created in Ukrainian but geotargeting is set to Russia) |
Object restrictions | ||
7000 | Number of allowed elements exceeded or equal to zero |
|
7001 | Reached the maximum number of objects |
|
7002 | This tracking system domain isn’t supported | |
Request parsing errors | ||
55 | Operation not found | Invalid value specified for the method key in a JSON request. |
8000 | Invalid request |
|
Can’t perform operation | ||
8300 | Invalid object status |
|
8301 | Can’t delete object |
|
8302 | Displays can’t be suspended | Attempt to suspend the only active keyword in a group (if there are no audience targets). |
8303 | Object can’t be archived |
|
8304 | Object can’t be unarchived |
|
8305 | Can’t perform action | Attempt to change the daily budget amount more than 3 times during the same day. |
8312 | Can’t build a report in online mode | A report with the specified parameters can only be generated in offline mode. Change processingMode in the HTTP request header. See the section Online and offline reports. |
8600 | Error enabling the shared account | |
Object not found | ||
8800 | Object not found |
|
Limits on the number of objects in operations in a single request | ||
9300 | Exceeded the limit on the number of objects in operations in a single request | Exceeded the maximum number of objects in the method’s input array |
9301 | Selection condition is too broad | Exceeded the maximum number of selected adjustments. The total of the Limit and Offset values must not exceed 120,000. |
Dependency of bids on strategies | ||
9600 | The field does not correspond to the set strategy | The request does not have a field that is required in certain conditions (for example, Bid in the Bids.Set method for manual display strategies). |
9601 | Bid can’t be changed |
|
Duplicated objects | ||
9800 | An object can’t be in the request more than once | A single call of the update, set, or delete method contains multiple objects with the same ID |
9801 | An object with the specified characteristics already exists | Attempt to add an adjustment that already exists (for example, repeatedly adding a mobile adjustment or an adjustment for the same target audience). |
9802 | An item can’t be in the list more than once |
|
Warning code | Message |
---|---|
10000 | The object is in the request more than once |
10020 | The object is already suspended. |
10021 | The object is not suspended. |
10022 | The object is already archived. |
10025 | The object is already marked as deleted |
10100 | The specified vCard duplicates a previously created vCard |
10120 | The specified set of sitelinks duplicates a previously created set |
10140 | Keyword already exists |
10141 | New keyword created as the result of updating |
10160 | Bid won’t be applied |
10161 | Priority won’t be applied |
10163 | Setting won’t be changed |
10165 | Parameter won’t be applied |
10200 | Ad already paused |
10201 | Ad not paused |
10202 | Ad already archived |
10203 | Ad not archived |
10240 | Keyword already stopped |
10241 | Keyword not stopped |
10242 | Dynamic text ad target is already stopped |
10243 | Dynamic text ad target is not stopped |
API Яндекс.Директа – это интерфейс рекламной системы для разработчиков программ. Он позволяет автоматизировать работу с Яндекс.Директ и использовать все его функции – от получения статистики до создания рекламных кампаний с нуля. И всё абсолютно бесплатно.
Результат работы с API – ваше приложение по управлению контекстной рекламой в Яндекс.Директ с собственными настройками и алгоритмами. Кстати, для этого совсем не обязательно быть профи в программировании – достаточно базовых знаний PHP или Python.
Как всё это применять и что нужно, чтобы начать работу – смотрите в этой статье.
Для чего нужен API Яндекс.Директ
API Директа дает возможность разрабатывать и внедрять алгоритмы для управления рекламными кампаниями под ваши нужды. Это пригодится как агентствам, так и крупным рекламодателям, которые запускают и ведут масштабные кампании. Их деятельность предполагает множество рутинных действий, например:
- Массовое создание и редактирование кампаний, объявлений и ключевых фраз;
- Управление ставками;
- Получение статистики по показам и кликам;
- Прогноз бюджета.
Инструмент API позволяет создать приложение, в котором все нужные вам однотипные операции выполняются автоматически и в котором можно создавать удобные инструменты для просмотра и редактирования кампаний. Автоматизировать можно практически всё, даже обновление цены за клик по заданному вами алгоритму.
Вы разрабатываете что-то наподобие Директ Коммандера. Эта программа – готовое решение Яндекса на основе API Яндекс.Директа. Как её применять, смотрите руководство по старой и новой версиям.
Приложения, созданные по API Яндекс.Директа, рассчитаны на пользователей, у которых есть аккаунт в Директе. Это прямые рекламодатели, агентства и их клиенты с доступом только на чтение (могут только получать и просматривать данные) или на редактирование (они получают в API все те же самые функции, что в интерфейсе).
Структура API
По сути API Директа – это набор сервисов, каждый из которых привязан к конкретному классу объектов и имеет отдельный URL. Объекты API взаимосвязаны между собой, как показано на скриншоте:
Изображение из руководства Яндекса для разработчиков
Сервисы верхнего уровня – Campaign и AdGroup. Первый содержит настройки рекламной кампании, второй нужен для работы с группами объявлений.
На следующем уровне – сервисы Ad (параметры объявления), Keyword (ключевые фразы), Audience Target (условия нацеливания на аудиторию) и DynamicTextAdTarget (условия нацеливания для динамических объявлений).
Далее идут сервисы для работы с элементами объявления: AdImage (изображениями), VCard (виртуальной визиткой), SitelinksSet (блоком быстрых ссылок), AdExtension (расширением к объявлению).
Для управления условиями ретаргетинга и подбора аудитории есть специальный сервис – RetargetingList.
У каждого сервиса свой набор методов для выполнения операций с его объектами. Основные методы, которые доступны для всех объектов – это добавление (add), изменение параметров (update), удаление (delete) и получение параметров (get).
Есть также специфические методы, которые поддерживают определенные объекты. Например, отправление объявлений на модерацию (moderate) – метод для сервиса Ads. Весь список доступных методов по областям применения смотрите в документации API.
Итак, с чего начать, чтобы разработать собственное приложение для работы с контекстной рекламой в Яндекс.Директе? Во-первых, нужен доступ к API. Далее рассмотрим пошагово, как его получить.
Шаг 1: создание и регистрация приложения на Яндекс.OAuth
Авторизуйтесь в Яндекс.Директе. Используйте для этого аккаунт разработчика – именно от этого имени ваше приложение будет выполнять запросы и управлять данными.
Перейдите по ссылке oauth.yandex.ru. Нажмите кнопку «Зарегистрировать новое приложение»:
В правой части страницы – ссылки на справочные материалы для разработчиков.
Далее вы попадаете на форму «Создание приложения», где нужно указать все его необходимые параметры:
Обязательные опции помечены звездочкой, это «Название» и «Доступы». Но чем больше информации о приложении вы укажете, тем более прозрачно оно будет для пользователей. Они будут знать, какой именно программе разрешают доступ к своему аккаунту.
В блоке «Платформы» отметьте галочкой «Веб-сервисы»:
Появится поле адреса. В нем вы указываете, куда направлять пользователя после того, как он разрешил или отказал приложению в доступе. Адресов Callback URI может быть несколько, например, для тестового и боевого режима.
На этапе создания приложения нажмите ссылку «Подставить URL для разработки».
В поле появится тестовый адрес, который позволит получать отладочные токены вручную. Они нужны для проверки работы приложения, подробнее об этом далее в статье.
В блоке «Доступы» выберите «Яндекс.Директ» и отметьте «Использование API Яндекс.Директа»:
Завершите создание приложения:
На этом регистрация закончена. При этом OAuth-сервер Яндекса сразу же генерирует и показывает на странице идентификатор и пароль приложения.
Они понадобятся вам далее.
Шаг 2: создание заявки на доступ
В аккаунте Яндекс.Директа долистайте до нижнего меню и перейдите по ссылке «API»:
Далее нажмите «Получить доступ к API»:
Вы попадете на страницу настроек API. Чтобы она была доступна, нужно выполнить формальное требование: в интерфейсе Яндекс.Директа должна быть минимум одна рекламная кампания с одним объявлением и одной ключевой фразой.
При первом входе нужно принять пользовательское соглашение:
На странице «Настройки API» перейдите на вкладку «Мои заявки», чтобы создать и отправить заявку на доступ к API. Нажмите кнопку «Новая заявка» и выберите её тип.
Тестовый доступ – это ограниченный доступ к API, то есть только к Песочнице – тестовой среде для отладки приложений. Она имитирует работающие рекламные кампании, их достаточно для того, чтобы протестировать и отладить приложение. Полный доступ (боевой) дает возможность управлять реальными рекламными кампаниями клиентов.
Так как приложение еще не разработано, создайте заявку на тестовый доступ. Для этого:
1) Из выпадающего списка выберите идентификатор, который получили после регистрации приложения на OAuth-сервере:
2) Укажите email для связи со службой поддержки;
3) Заполните остальные данные о приложении по максимуму – укажите, для чего оно предназначено, его основные функции и возможности и т.д.:
4) Подтвердите согласие с пользовательским соглашением и отправьте заявку.
Статус заявки отслеживайте здесь же – на вкладке «Мои заявки» в настройках. Дождитесь её одобрения – это может занять до 7 дней. Только после этого можно начинать разрабатывать приложение. В случае отклонения – узнайте причины и исправьте ошибки.
На стадии рассмотрения можно преобразовывать заявку на ограниченный доступ в заявку на полный доступ. После внесения любых изменений она автоматически отправляется на повторное рассмотрение.
На вкладке «Мои приложения» можно увидеть, какие приложения уже имеют доступ к аккаунту Яндекс.Директ через API. В том числе, если вы использовали Директ.Коммандер, он появится в этом списке:
Шаг 3: создание тестового пользователя и тестовых данных для него
1) Зарегистрируйте аккаунт тестового пользователя в Яндекс.Директе;
2) Создайте от его имени рекламную кампанию в интерфейсе Яндекс.Директа – достаточно одного объявления с одним ключевиком, чтобы получить доступ к API;
3) В разделе API интерфейса Директа нажмите ссылку «Получить доступ к API» и примите пользовательское соглашение;
4) Включите песочницу – среду для отладки приложения, где можно управлять тестовыми кампаниями без реальных показов и внесения средств.
Для этого откройте вкладку «Песочница» на странице настроек API и начните ею пользоваться:
В следующем окне задайте параметры песочницы:
Поставьте галочку «Создать тестовые кампании». Если вы выбрали роль «Клиент» создаются три кампании. Для роли «Агентство» – 3 клиента с 3 кампаниями, их логины формируются автоматически. На одну кампанию каждого клиента зачисляется некоторая сумма.
Включение флажка «Общий счет» создает клиента с подключенным общим счетом. Для агентства опция недоступна.
Нажмите «Продолжить», чтобы начать управлять песочницей.
Внимание! Если сменить параметры, все данные удаляются. Нужно создавать песочницу заново.
5) От имени тестового пользователя получите отладочный токен. С помощью него можно проверять работу приложений.
Когда пользователь авторизуется в Яндекс.Директе и нажимает кнопку «Подтвердить», то есть дает доступ к своим данным приложения, сервер Яндекса генерирует токен и передает его приложению.
Как всё происходит:
- Приложение направляет пользователя на страницу Яндекс.OAuth;
- На этой странице пользователь разрешает доступ к своим данным приложению;
- Яндекс.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL. Код подтверждения или описание ошибки передается в параметре URL перенаправления;
- Приложение получает адрес перенаправления и извлекает код подтверждения;
- Приложение отправляет POST-запрос с этим кодом;
- Яндекс.OAuth возвращает токен в теле ответа.
Если объяснять с технической стороны, запрос к API выполняется по протоколу HTTPS методом POST (отправление данных). В этом запросе содержится HTTP-заголовок с токеном пользователя, от имени которого осуществляется запрос. Ответ содержит заголовок RequestId – это уникальный идентификатор запроса.
Некоторые приложения (например, консольные или установленные на телевизорах Smart TV) не могут получить код подтверждения из URL. В этом случае пользователь самостоятельно его получает от Яндекс.OAuth и вводит в приложении или на странице авторизации.
Полученный токен используется для запросов к API до истечения времени его жизни. Он должен быть доступен только вашему приложению, поэтому лучше не сохранять его в куках браузера.
Далее вы выполняйте запросы к песочнице. Вот пример запроса:
Практика использования API Яндекс.Директ
В инструменте API множество методов для разных объектов, многие из них дорабатываются и улучшаются со временем. Рассмотрим подробно, как их применять на практике.
Для примера возьмем создание отчета по поисковым запросам, прогноз бюджета и ретаргетинг. Этому действию соответствует метод CreateNewWordstatReport. Он запускает на сервере формирование отчета о статистике поисковых запросов. Это занимает не больше минуты.
Отчет содержит ту же статистику, которая доступна в сервисе Яндекс Wordstat за прошедший месяц.
Ограничения:
- За сутки можно получить статистику для тысячи фраз;
- На сервере хранится максимум 5 отчетов по всем кампаниям;
- Отчеты хранятся на сервере в течение 5 часов, а затем автоматически удаляются.
Так выглядит структура входных данных в формате JSON:
{
«method»: «CreateNewWordstatReport»,
«param»: {
/* NewWordstatReportInfo */
«Phrases«: [
(string)
…
],
«GeoID«: [
(int)
…
]
}
}
Phrases – это массив ключевых фраз, по которым нужно получить статистику поисковых запросов (добавить можно не более 10). минус-фразы из нескольких слов пишите в скобках, например: холодильник -морозильник -(морозильная камера) -ремонт.
GeoID – идентификаторы регионов, по которым нужно получить статистику поисковых запросов. Можно исключить регион, поставив минус. Если вы не указали этот параметр, либо указали только минус-регионы, либо минус-регионы совпадают c плюс-регионами, статистика выдается по всем регионам.
Вообще в API Яндекс.Директа можно решать самые разнообразные задачи, например:
— Интегрировать функции Яндекс.Директ и данные из собственной базы.
Примеры применения: автоматическое добавление в ключевые фразы названий брендов или моделей товаров, остановка / возобновление показов объявлений в зависимости от наличия товаров на складе, обновление текстов объявлений при изменении прайс-листа. И многое другое, в зависимости от данных, которые у вас есть;
— A/B-тестирование объявлений.
Принцип тот же, что в интерфейсе: в самом начале все варианты из группы объявлений показываются равномерно. По мере накопления статистики система выбирает объявление с самым высоким CTR (самое привлекательное по мнению целевой аудитории) и показывает его чаще;
— Мониторинг и анализ эффективности рекламных кампаний.
Можно настроить автоматическое получение сводной и детальной статистики по показам, кликам, конверсиям и другим показателям и выгрузку её в сторонние программы (системы поддержки принятия решений, системы финансового учета и т.д.)
Все примеры использования API смотрите в меню «Практика использования» по ссылке.
Важное преимущество программы на основе API – при просмотре и редактировании кампаний, рекламных групп, объявлений и ключевых фраз не нужно ждать загрузки страниц, как в интерфейсе Яндекс.Директа. И конечно, это экономит время специалистов по настройке контекстной рекламы.
Хотите тоже написать статью для читателей Yagla? Если вам есть что рассказать про маркетинг, аналитику, бизнес, управление, карьеру для новичков, маркетологов и предпринимателей. Тогда заведите себе блог на Yagla прямо сейчас и пишите статьи. Это бесплатно и просто
Сегодня мы подробно разберем процесс получения OAuth-токена для доступа к Яндекс.Директ API. Впервые сталкиваясь с процессом получения токена, будь-то API от Google или Яндекса, я по-началу терялся в заявках, регистрациях и прочей бюрократической вакханалии. Поэтому я, буквально, за руку проведу тебя к заветному апи-токену, который мы сразу и проверим.
Как следует из справки Яндекс.Директ API, вся процедура делится на два этапа:
- Регистрация на сервисе Яндекс.OAuth
- Создание заявки на доступ к API
Авторизуемся из под аккаунта с кабинетом Яндекс.Директ, данные которого нас интересуют. Переходим на страницу oauth.yandex.ru, и жмем на желтую кнопку «Зарегистрировать новое приложение». И заполняем поля, согласно плану:
- Название приложения*: DirectDataDealer
- Описание приложения: Необязательное. Но я всё таки напишу: Приложение для проброса данных в системы сквозной аналитики
- Иконка приложения: Необязательное.
- Ссылка на сайт приложения: Необязательное.
- Платформы: Веб-сервисы и в поле Callback Url жмем Подставить URL для разработки.
- Доступы*: Яндекс.Директ -> Использование API Яндекс.Директа
Отлично, приложение создано, на выходе получится что-то похожее на это:
Отлично, пол дела сделано, осталось запросить доступ к API.
Создаем заявку на доступ к Яндекс.Директ API
Теперь создадим заявку, тут всё довольно просто. Идём сюда и создаем заявку на доступ. Начинаем заполнять:
- Введите application_id или выберите из списка*: В дропменю выбираем наше приложение в моём случае это DirectDataDealer.
- Укажите один или несколько контактов, по которым с вами быстро сможет связаться служба поддержки*: Пишем ваш мейл.
- Данные о компании: Скорее всего у вас или у вашего клиента уже есть сайт, в моем случае Akulshin.ru и https://akulshin.ru/
- Выберите утверждение, которое лучше всего описывает специфику вашей работы. Вы:* Я прямой рекламодатель, а вы?
- Технические данные о приложении: Язык программирования — Python, протокол — Json, версия библиотек — 3.8. В примерах из моих статьей используются именно эти версии.
- Для примера успешной работы приложения, укажите один или несколько логинов в Директе, для которых оно используется*: Абсурд, если вы регистрируете своё первое приложение, то просто укажите текущий логин в Яндексе.
- Для чего предназначено приложение*: В моем случае это — Синхронизировать рекламные материалы с данными внутренних систем (товары, деньги, отчетность)
- Основные функции приложения*: Получение статистики и отчетов
- Какие новые возможности работы с Директом дает ваше приложение пользователям?*: Я написал, что «Агрегирую данные в сквозной аналитике и предикторе. Получение статистики Яндекс.Директ и её дальнейшая обработка.»
- Опишите схему взаимодействия вашего приложения с Директом*: Программа запускается автоматически 2 раза в сутки, в основном используем метод «AccountManagement» и сервис Campaign для получения статистики, далее передаем в базу, где обрабатываем.
- Спецификации, скриншоты интерфейса*: Либо нарисуйте блок-схему обработки данных, либо как я заскриньте IDE, пусть какому-нибудь модеру из Яндекса станет за вас стыдно.
- По возможности предоставьте нам демо-доступ к программе: Игнорируем этот пункт
Бум! Всё готово, отправляем на рассмотрение. После прохождения, в итоге получим такую картину:
Получаем OAuth-токен Яндекс.Директ:
Существует 2 способа получения API-токена: Ручной и Автоматический
Так как мы не пишем приложение, которое будут использовать десятки авторизованных пользователей, то нам хватит и ручного получения токена. Теперь дело за малым, делаем запрос на выдачу «API-ключа», который мы будем использовать в нашем приложении. Для этого:
- Открываем новую вкладку в браузере и вводим в адресную строку https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения> Идентификатор приложения берем отсюда:
- Переходим по ссылке https://oauth.yandex.ru/
- Жмем на наше приложение, DirectoDataDealer, в моем случае.
- И копируем из поля ID: 78d2c09*************efbc6a64f6e
- Вставляем ID вместе <идентификатор приложения>, жмем Enter
- О чудо, перед нами явился наш Auth-токен
Ну что, всё готово для тестового запроса, поехали?
Тестовый запрос для проверки работы Яндекс.Директ API:
Давайте запросим список текущих рекламных кампаний в кабинете?
Код примера:
import requests def get_campaigns(login, token): # адрес для отправки json-запросов url = 'https://api.direct.yandex.com/json/v5/campaigns' # заголовки headers = {"Authorization": "Bearer " + token, # OAuth-токен. Использование слова Bearer обязательно "Client-Login": login, # Логин клиента рекламного агентства "Accept-Language": "ru", # Язык ответных сообщений } # тело запроса body = {"method": "get", # Используемый метод. "params": {"SelectionCriteria": {}, # Критерий отбора кампаний. Для получения всех кампаний должен быть пустым "FieldNames": ["Id", "Name"] # Имена параметров, которые требуется получить. }} # выполнить запрос response = requests.post(url, json=body, headers=headers) # Вытаскиваем список кампаний campaigns = response.json()['result']['Campaigns'] # принтим for campaign in campaigns: print(campaign) # Вызываем функцию и получаем список кампаний, не забудьте поменять вводные get_campaigns('ВАШ ЛОГИН', 'ТОКЕН')
Полезные материалы для изучения:
- Регистрация приложения Яндекс.Директ API: https://yandex.ru/dev/direct/doc/dg/concepts/register.html
- Заявка на доступ к API: https://yandex.ru/dev/direct/doc/dg/concepts/register.html#request
Мой код
url = 'https://api.direct.yandex.ru/v4/json/'
# OAuth-токен пользователя, от имени которого будут выполняться запросы
token = 'Wufdgdft1lMU-7dfdgdgfDFdsfsdfsdmkfdgdfz_5I3zgzizYk'
# Логин клиента рекламного агентства
# Обязательный параметр, если запросы выполняются от имени рекламного агентства
# clientLogin = 'ЛОГИН_КЛИЕНТА'
# --- Подготовка, выполнение и обработка запроса ---
# Создание HTTP-заголовков запроса
headers = {"Authorization": "Bearer " + token, # OAuth-токен. Использование слова Bearer обязательно
"Accept-Language": "ru", # Язык ответных сообщений
}
# Создание тела запроса
body = {"method": "CreateNewWordstatReport", # Используемый метод.
"params": { 'Phrases': [u'пух -винни',u'синтепон'],
'GeoID': [213]
}}
result = requests.post(CampaignsURL, jsonBody, headers=headers)
print(result.json())
Выдает ошибку
{"error_code": 53, "error_str": "Authorization error", "error_detail": ""}
Это очень странная ошибка авторизации, т.к. тот же токен отлично работает в тестовом примере https://tech.yandex.ru/direct/doc/examples-v5/python3-requests-campaigns-docpage/
Яндекс.Директ иногда может выдать предупреждение и всё. Ни сохранить, ни включить, ни выключить. И бывает это не так уж редко. Однако без опыта эту проблему не решить, а новичкам поисковик предлагает отличные завирусившиеся статьи в духе «100 и 1 способ настройки Директа».
Но что делать с таким багом?
1. Предъявите документы
Возникает техническая ошибка: Директ не пропускает объявление и требует предъявить документы. Это зависит от вида продукции. Например, модерация может решить, что услуги рекламодателя требуют медицинской лицензии.
Если можно доказать, что это не так, проблема будет решена в течение пары часов. Нужно написать/позвонить в техподдержку и сообщить, что продвигается услуга, для которой не нужны документы.
2. Сегмент Яндекс.Аудиторий не найден, и реклама остановлена
Яндекс не нашел людей и выдал техническую ошибку. Нет, это не роботы захватили мир, просто возникла проблема с аудиторией. Когда такая проблема появляется, реклама будет поставлена на стоп.
Почему так получилось? Если к аккаунту имеет доступ кто-то еще – этот кто-то мог полностью удалить аудиторию или поменять настройки так, что сегмент, по которому показывалась реклама, теперь оказался недоступен.
Если не получается запустить рекламу на выбранный сегмент, нужно разобраться, есть ли вообще доступ к этому сегменту аудитории.
3. Появляется заглушка, и переход на вредоносный сайт заблокирован
Если при попытке зайти в Директ или запустить кампанию, пользователь видит предупреждение о том, что переход на сайт заблокирован, поскольку страница является вредоносной – необходим полный стоп. Антивирус Яндекса проверил сайт и посчитал его вредоносным – далее делаем такие шаги:
1. Рекламу отключить, поскольку клики считаются, но переходов нет.
2. Проверить сайт на вирусы и как можно скорее.
4. Ваш лимит исчерпан
Когда создается объявление, в его заголовке, описании и линке должно быть ограниченное количество символов.
◆ Заголовок не должен превышать 56 символов (пробелы считаются).
◆ Одно слово не должно превышать 22 символа
◆ Дополнительный заголовок – 30 символов
◆ В тексте всего 81 знак
◆ Знаков препинания не более 15
Все нужно исправить вручную. Если ошибка уже вылезла, стоит исправить ее следующим образом: занести все в любую удобную таблицу и выставить там проверку по формуле «Длина строки» (пишем ее как =ДЛСТР и адрес ячейки).
5. Сайта просто нет?
Яндекс сообщает, что если ссылка попадет в объявление, то будет ошибка 404. Это наверняка связано с проблемой непродленного доменного имени – в большинстве случаев. Есть еще возможность, что страница, на которую ссылаются, еще не создана, ошибка в ссылке. В любом случае, следует проверить, работает ли сайт и эта конкретная ссылка.
6. Минусованные фразы не сохраняются в Директе
Куда делись фразы и слова, которые собирались отминусовать? Кросс-минусация в Директе нужна обязательна, поскольку она помогает отсортировать аудиторию точнее, позволяет убрать возможные пересечения ключей и не дает объявлениям подавлять друг друга.
Обычно минусуют через Директ.Коммандер или другие приложения. Иногда бывает так, что форматирование сбивается и фразы в Директе отсутствуют. В этом случае фразы нужно повторно перенести в Excel, а оттуда уже заново в Яндекс.Директ.
Другие ошибки
Что делать, если предупреждение Директа не касается всех перечисленных случаев? Поддержка Яндекса все еще не написала FAQ по всем этим проблемам, так что придется решать самим. Что же делать, куда бежать?
1. Внимательно перечитать справку Яндекса. Возможно, ответ там уже есть.
2. Связаться с техподдержкой Директа. Опыт показывает, что позвонить будет удобнее – отвечают быстро, решают тоже.
Написать сотруднику можно в чате или в форме, которая находится в справке Яндекс. Директ, там же приведенкруглосуточный телефон поддержки – 8 800 234 24 80.
👍🏻 Инфа была полезной? Ставь лайк!
Блог партнерской программы RocketProfit – международная товарная CPA-сеть с разнообразными ГЕО (Европа, Азия, ЛАТАМ и Африка), эксклюзивными авторскими офферами (физ.товары и нутра), высокими ставками до 50$ и отзывчивыми менеджерами, которые 24/7 готовы помочь.