Справочник запросов. Партнерский API Яндекс Маркета для модели ADV. Руководство разработчика

Внимание. Маркет постепенно перестает поддерживать XML. Поэтому мы рекомендуем переходить на JSON. Сейчас XML можно использовать, если добавить в запрос Content-Type: application/xml. Без этого будут ошибки.

Базовые запросы
  • Список магазинов пользователя: GET /campaigns
  • Информация о магазине: GET /campaigns/{campaignId}
  • Список логинов, связанных с магазином: GET /campaigns/{campaignId}/logins
  • Список магазинов, доступных логину: GET /campaigns/by_login/{login}
  • Настройки магазина: GET /campaigns/{campaignId}/settings
Настройки размещения
  • Информация о регионе магазина, размещенном на Яндекс Маркете: GET /campaigns/{campaignId}/region
Отзывы
  • Новые и обновленные отзывы о магазине: GET /campaigns/{campaignId}/feedback/updates
Ассортимент
  • Предложения магазина: GET /campaigns/{campaignId}/offers
  • Все предложения магазина: GET /campaigns/{campaignId}/offers/all
  • Список прайс-листов магазина: GET /campaigns/{campaignId}/feeds
  • Информация о прайс-листе: GET /campaigns/{campaignId}/feeds/{feedId}
  • Категории прайс-листа: GET /campaigns/{campaignId}/feeds/{feedId}/categories
  • Категории магазина: GET /campaigns/{campaignId}/feeds/categories
  • Отчет по индексации прайс-листа: GET /campaigns/{campaignId}/feeds/{feedId}/index-logs
  • Изменение параметров прайс-листа: POST /campaigns/{campaignId}/feeds/{feedId}/params
  • Сообщить, что прайс-лист обновился: POST /campaigns/{campaignId}/feeds/{feedId}/refresh
Управление показом предложений
  • Информация о скрытых предложениях: GET /campaigns/{campaignId}/hidden-offers
  • Скрытие предложений и настройки скрытия: POST /campaigns/{campaignId}/hidden-offers
  • Возобновление показа предложений: DELETE /campaigns/{campaignId}/hidden-offers
Управление ценами
  • Установка цен на предложения: POST /campaigns/{campaignId}/offer-prices/updates
  • Список цен, установленных через API: GET /campaigns/{campaignId}/offer-prices

Отчеты

  • Отчет по заказам: POST /campaigns/{campaignId}/stats/orders
Модели товаров
  • Информация о модели: GET /models/{modelId}
  • Информация о моделях, удовлетворяющих заданным условиям поиска: GET /models
  • Информация о нескольких моделях: POST /models
  • Информация о предложениях, расположенных на карточке модели: GET /models/{modelId}/offers
  • Информация о предложениях, расположенных на карточках нескольких моделях: POST /models/offers
Финансы
  • Актуальный баланс магазина, а также прогноз расходования средств и рекомендации по размеру платежа
    : GET /campaigns/{campaignId}/balance
  • Информация для выставления счета: POST /campaigns/{campaignId}/invoice/paypreview
  • Выставление счета: POST /invoice
  • Квитанция по счету: GET /campaigns/{campaignId}/invoices/{invoiceId}
Статистика
  • Базовая статистика (клики и расход) по магазину: GET /campaigns/{campaignId}/stats/main
  • Базовая посуточная статистика (клики и расход) по магазину: GET /campaigns/{campaignId}/stats/main-daily
  • Базовая понедельная статистика (клики и расход) по магазину
    : GET /campaigns/{campaignId}/stats/main-weekly
  • Базовая помесячная статистика (клики и расход) по магазину: GET /campaigns/{campaignId}/stats/main-monthly
  • Статистика по предложениям: GET /campaigns/{campaignId}/stats/offers
Геобаза
  • Информация о регионе, удовлетворяющем заданным условиям поиска: GET /regions
  • Информация о регионе: GET /regions/{regionId}
  • Информация о дочерних регионах
    : GET /regions/{regionId}/children
Точки продаж
  • Создание точки продаж: POST /campaigns/{campaignId}/outlets
  • Изменение информации о точке продаж: PUT /campaigns/{campaignId}/outlets/{outletId}
  • Удаление точки продаж: DELETE /campaigns/{campaignId}/outlets/{outletId}
  • Информация о точках продаж: GET /campaigns/{campaignId}/outlets
  • Информация о точке продаж: GET /campaigns/{campaignId}/outlets/{outletId}
  • Создание и изменение лицензий для точек продаж: POST /campaigns/{campaignId}/outlets/licenses
  • Удаление лицензий для точек продаж: DELETE /campaigns/{campaignId}/outlets/licenses
  • Информация о лицензиях для точек продаж: GET /campaigns/{campaignId}/outlets/licenses
  • Справочник служб доставки: GET /delivery/services
Контроль качества
  • Информация об ошибках магазина
    : GET /campaigns/{campaignId}/quality/tickets
  • Информация об ошибке магазина: GET /campaigns/{campaignId}/quality/tickets/{ticketId}
  • Отчет по качеству: GET /campaigns/{campaignId}/quality/report
  • Сообщить, что ошибка исправлена: POST /campaigns/{campaignId}/quality/tickets/{ticketId}/fix
  • Отправить магазин на проверку: POST /campaigns/{campaignId}/quality/check

Была ли статья полезна?

О справочнике

Ограничение.

Параметр StrategyPriority скоро перестанет приниматься и возвращаться в сервисах: AudienceTargets, Bids, DynamicTextAdTargets, KeywordBids, Keywords и SmartAdTargets. Пожалуйста, обновите свои приложения до конца января 2021.

Справочник содержит описание сервисов API Яндекс Директа версии 5. Документ адресован разработчикам приложений по управлению контекстной рекламой в Директе.

Ниже перечислены сервисы и методы API:

КампанииГруппы объявленийОбъявленияКлючевые фразы и автотаргетинги

Сервис: Campaigns

Методы:

  • add
  • archive
  • delete
  • get
  • resume
  • suspend
  • unarchive
  • update

Сервис: AdGroups

Методы:

  • add
  • delete
  • get
  • update

Сервис: Ads

Методы:

  • add
  • archive
  • delete
  • get
  • moderate
  • resume
  • suspend
  • unarchive
  • update

Сервис: Keywords

Методы:

  • add
  • delete
  • get
  • resume
  • suspend
  • update
СтавкиКорректировки ставокНаборы минус-фразПредобработка ключевых фраз

Сервис: Bids

Методы:

  • get
  • set
  • setAuto

Сервис: KeywordBids

Методы:

  • get
  • set
  • setAuto

Сервис: BidModifiers

Методы:

  • add
  • delete
  • get
  • set
  • toggle

Сервис: NegativeKeywordSharedSets

Методы:

  • add
  • delete
  • get
  • update

Сервис: KeywordsResearch

Методы:

  • deduplicate
  • hasSearchVolume
ОрганизацииВизиткиИзображенияКреативы

Сервис: Businesses

Метод: get

Сервис: VCards

Методы:

  • add
  • delete
  • get

Сервис: AdImages

Методы:

  • add
  • delete
  • get

Сервис: Creatives

Методы:

  • add
  • get
ВидеоТурбо-страницыДанные из форм на Турбо-страницахБыстрые ссылки

Сервис: AdVideos

Методы:

  • add
  • get

Сервис: TurboPages

Метод: get

Сервис: Leads

Метод: get

Сервис: Sitelinks

Методы:

  • add
  • delete
  • get
РасширенияУсловия нацеливания для динамических объявлений по фидамУсловия нацеливания на аудиториюУсловия подбора аудитории

Сервис: AdExtensions

Методы:

  • add
  • delete
  • get

Сервис: DynamicFeedAdTargets

Методы:

  • add
  • delete
  • get
  • resume
  • setBids
  • suspend

Сервис: AudienceTargets

Методы:

  • add
  • delete
  • get
  • resume
  • setBids
  • suspend

Сервис: RetargetingLists

Методы:

  • add
  • delete
  • get
  • update
Условия нацеливания для смарт-баннеровУсловия нацеливания для динамических объявленийКлиентыФиды

Сервис: SmartAdTargets

Методы:

  • add
  • delete
  • get
  • resume
  • setBids
  • suspend
  • update

Сервис: DynamicTextAdTargets

Методы:

  • add
  • delete
  • get
  • resume
  • setBids
  • suspend

Сервис: Clients

Методы:

  • get
  • update

Сервис: AgencyClients

Методы:

  • add
  • get
  • update

Сервис: Feeds

Методы:

  • add
  • delete
  • get
  • update
СправочникиИзменения

Сервис: Dictionaries

Метод: get

Сервис: Changes

Методы:

  • check
  • checkCampaigns
  • checkDictionaries

Примечание.

Методы для управления общими счетами, прогноза бюджета и подбора фраз, выполнения финансовых операций доступны в API версии 4 (Live 4). См. раздел Методы документации API версии 4 (Live 4).

Была ли статья полезна?

Предыдущая

Список терминов

Следующая

AdExtensions: операции с расширениями объявлений

Структура запроса. Описание API

Внимание. Яндекс Коннект больше не поддерживается. API каталога будет закрыт с 01 марта 2023 г.

Для управления организациями, пользователями и доменами перейдите в Яндекс 360 для бизнеса.

Документация по API 360 (рус.)

Формат запроса Common Directory API:

  POST  — Создать объект."}}">|  GET  — Получить информацию об объекте или списке объектов. "}}">|  PATCH  — Изменение параметров существующего объекта. Запросы, отправленные с  Метод PATCH  изменяет только параметры, явно указанные в теле запроса."}}">|  DELETE  — Удалить объект."}}"> /\n 

Версия API каталога. Текущая версия API — v6 .

\n "}}">/\n

Тип ресурса, к которому обращается API:

\n \n "}}">/\n

Идентификатор ресурса.

\n "}}">/?\n

Некоторые запросы содержат дополнительные параметры. Эти параметры описаны в разделах, посвященных запросам API.

\n "}}">=<значение1>&<параметр2>=<значение2> HTTP/1.1

\n

Хост — Содержит адрес хоста, предоставляющего API. Значение всегда должно быть https://api.directory.yandex.net .

\n

"}}">: https://api.directory.yandex.net

\n

Авторизация — содержит токен OAuth в поле OAuth <token value> формат , например:

\n

 Авторизация: OAuth 0c4181a7c2cf4521964a72ff57a34a07 

\n

"}}">: OAuth

\n

Content-Type (только для запросов с методами POST и PATCH ) — Формат данных запроса. Значение всегда должно быть application/json; кодировка=utf-8 .

\n

"}}">: приложение/json; кодировка = utf-8

\n

Принять (только для запросов с методом GET ) — ожидаемый формат данных ответа. Значение всегда должно быть application/json .

\n

"}}">: приложение/json

\n

X-Org-ID — Код компании. Заголовок необходимо передавать только в том случае, если запрос инициирован администратором нескольких компаний.

\n

"}}">: <идентификатор компании> ... {json-объект | json-array}

Запросы к Directory API принимают один из следующих HTTP-методов:

  • GET — Получить информацию об объекте или списке объектов.

  • POST — Создать объект.

  • ПАТЧ — Изменение параметров существующего объекта. Запросы, отправленные методом PATCH , изменяют только параметры, явно указанные в теле запроса.

  • УДАЛИТЬ — Удалить объект.

Версия API каталога. Текущая версия API — v6 .

Тип ресурса, к которому обращается API:

Идентификатор ресурса.

Некоторые запросы содержат дополнительные параметры. Эти параметры описаны в разделах, посвященных запросам API.

Каждый запрос, отправляемый в Directory API, должен содержать HTTP-заголовок:

  • Хост — Содержит адрес хоста, предоставляющего API. Значение всегда должно быть https://api.directory.yandex.net .

  • Authorization — Contains an OAuth token in the OAuth format, for example:

     Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07 
  • Accept (only for requests with the GET method) — Ожидаемый формат данных ответа. Значение всегда должно быть приложение/json .

  • Content-Type (только для запросов с методами POST и PATCH ) — формат данных запроса. Значение всегда должно быть application/json; кодировка=utf-8 .

  • X-Org-ID — Код компании. Заголовок необходимо передавать только в том случае, если запрос инициирован администратором нескольких компаний.

Некоторые запросы могут иметь дополнительные заголовки. Эти заголовки описаны в разделах, посвященных запросам API.

Тело запроса содержит информацию, необходимую для создания или изменения объекта. Информация должна передаваться в формате JSON. Описание возможных полей и структуры тела можно найти в разделах, посвященных запросам API.

В ответ на некоторые запросы API создает список объектов (например, список пользователей или отделов). Для экономии ресурсов эти списки разбиты на страницы. Ответы на запросы содержат только одну страницу. Вы можете установить количество объектов на странице и их количество с помощью per_page и page параметров соответственно.

Если параметры per_page и page опущены, список разбивается на страницы по 20 элементов на странице. Ответ содержит первую страницу списка.

Запросить список сотрудников:

 GET /v6/users/?page=2&per_page=10
Хост: https://api.directory.yandex.net
Авторизация: OAuth 0c4181a7c2cf4521964a72ff57a34a07
Идентификатор X-организации: 000
Принять: приложение/json
Идентификатор X-запроса: 123456 

Была ли статья полезна?

Примеры использования API.

Описание API

Внимание. Яндекс Коннект больше не поддерживается. API каталога будет закрыт с 01 марта 2023 г.

Для управления организациями, пользователями и доменами перейдите в Яндекс 360 для бизнеса.

Документация по API 360 (на русском языке)

В этом разделе приведены примеры доступа к Directory API с помощью простых скриптов Python.

Для правильной работы этих примеров настройте среду:

  1. Зарегистрируйте свое приложение на OAuth-сервере Яндекса и получите токен доступа.

  2. Поместите токен в переменную среды TOKEN .

  3. В рабочем каталоге создайте CSV-файлы, содержащие данные отдела и сотрудника:

    отделы.csv :

     label,name,parentacc, Accounting,management, Management,sales, Sales,sales-msk, Moscow Sales , Salessales-spb, Санкт-Петербург Продажи, Salestech, IT,бэкофис, Backoffice Development, IThelpdesk, Helpdesk, IT 

    users. csv :

     псевдоним, имя, фамилия, Departmentjohn.s, John, Smith, Managementstar, Jane, Brown, Accountingpeter.g, Peter, Moore, Backoffice development 

Вы можете использовать это скрипт для создания нескольких новых отделов. Их параметры указаны в файле Departments.csv .

 #!/usr/bin/env python# coding: utf-8import osimport csvimport sysimport requestTOKEN = os.environ.get('TOKEN')USER_AGENT = 'Пример синхронизации каталога'def load_departments(filename): """Читает CSV-файл с данными отдела и возвращает итерируемый объект для включения итерации по словарям, содержащим данные отдела. ) yield from rowsdef create_department(data, уже_создано): """Создает отдел в Справочнике и возвращает его идентификатор.
    Принимает словарь в качестве входных данных: { 'label': 'краткое английское название списка рассылки', 'name': 'название отдела', 'parent': 'название родительского отдела или пустая строка', } And Dictionary {'Название отдела ': id_from_directory}, который можно использовать для поиска идентификатора родительского отдела в Каталоге.  """ имя = данные ['имя'].strip() родитель = данные ['родитель'].strip() метка = данные ['метка'].strip() если родитель: если родитель еще не создан: поднять RuntimeError ( 'Отдел {родительский} должен предшествовать ' ' {текущий} отдел в данных'.format(родитель=родитель, текущий=имя, )) parent_id = уже_создан[родительский] else: # Если родительский отдел не указан, # создать в «корневом» отделе. : USER_AGENT, } response = request.post( 'https://api.directory.yandex.net/v6/departments/', json=payload, headers=headers, timeout=10, ) # При возникновении ошибки генерировать исключение .response.raise_for_status() # Если все Хорошо, верни ID. response_data = response.json() return response_data ['id']def load_already_created(): """Извлекает данные о существующих отделах из Справочника и возвращает словарь {'Название отдела': Department_id} """ params = { 'fields' : 'name', } headers = { 'Авторизация': 'OAuth' + TOKEN, 'User-Agent': USER_AGENT, } # Для простоты игнорируем тот факт, что # может быть больше 20 отделов, # которые не все умещается в один запрос.  В реальном коде вам нужно # распарсить ключ ссылки и сделать дополнительные запросы. response = request.get( 'https://api.directory.yandex.net/v6/departments/', params=params, headers=headers, timeout=10, ) response.raise_for_status() response_data = response.json() results = response_data ['result'] results = { отдел ['имя']: отдел ['идентификатор'] для отдела в результатах } return resultsdef create_departments(filename): """Читает данные из файла и создает структуру отдела. """ отделы = load_departments(имя файла) уже_создано = load_already_created() для элемента в отделах: name = item ['name'].strip() # Отдел создается только в том случае, если # отдел с таким именем не существует, если имя не в уже_создано: dep_id = create_department(элемент, уже_создано) уже_создано[имя] = dep_idif __name__ == '__main__': if len(sys.argv) != 2: print('Использование: {0} отделов.csv'.format( sys.argv[0])) sys.exi t(1) иначе: create_departments(sys.argv[1]) 

Вы можете использовать скрипт для добавления новых сотрудников. Их параметры указаны в файле users.csv .

 #!/usr/bin/env python# coding: utf-8import osimport csvimport sysimport stringimport randomimport requestTOKEN = os.environ.get('TOKEN')USER_AGENT = 'Пример синхронизации каталога'def load_users(filename): """ Читает CSV-файл с информацией о сотрудниках и возвращает итерируемый объект, который можно использовать для перебора словарей, содержащих данные о сотрудниках. csv.DictReader(csvfile) yield from rowsdef create_user(данные, отделы): """Создает пользователя в Каталоге.
 Принимает словарь: { 'псевдоним': 'Логин сотрудника', 'первый': 'Имя', 'последний': 'Фамилия', 'отдел': 'название отдела или пустая строка', } Второй аргумент - словарь {' Название отдела':department_id}.
 Вам нужен словарь, чтобы определить идентификатор отдела, в котором вы создаете сотрудника. """ data = {ключ: value.strip() для ключа, значение в data.items() } имя_отдела = данные['отдел'] если имя_отдела: если имя_отдела не в отделах: поднять RuntimeError('Отдел "{0} " не найден'. format(department_name))department_id=departments[department_name] else: # Если отдел не указан, сотрудник # создается на высшем уровне. Department_id = 1 payload = { 'nickname': data[ 'псевдоним'], 'имя': {'первый': данные ['первый'], 'последний': данные ['последний']}, 'department_id': 'department_id', 'пароль': данные ['пароль'], } headers = { 'Авторизация': 'OAuth' + TOKEN, 'User-Agent': USER_AGENT, } response = request.post( 'https://api.directory.yandex.net/v6/users/', json= payload, headers=headers, timeout=10, ) # Если произошла ошибка, выдать исключение response.raise_for_status() # Если e все в порядке, верните удостоверение личности. response_data = response.json() return response_data['id']def get_departments(): """Извлекает данные об уже существующих отделах из Справочника и возвращает словарь {'Название отдела': Department_id} """ params = { 'fields ':'name', } headers = { 'Authorization': 'OAuth' + TOKEN, 'User-Agent': USER_AGENT, } # Для простоты игнорируем тот факт, # что отделов может быть больше 20, поэтому они выиграли не помещается # в один запрос. В реальном коде вам нужно # распарсить ключ ссылки и сделать дополнительные запросы. response = request.get( 'https://api.directory.yandex.net/v6/departments/', params=params, headers=headers, timeout=10, ) response.raise_for_status() response_data = response.json() результаты = response_data['результат'] результаты = {отдел ['имя']: отдел ['идентификатор'] для отдела в результатах } return resultsdef create_random_password (длина = 10): символы = string.ascii_letters + string.digits return". join( random.choice(symbols) for i in range(length))def load_already_created(): """Он берет данные о существующих сотрудниках из Справочника и возвращает набор логинов. """ params = { 'fields': 'nickname', } headers = { 'Authorization': 'OAuth' + TOKEN, 'User-Agent': USER_AGENT, } # Для простоты игнорируем тот факт, # что может быть больше 20 сотрудников, поэтому в # один запрос они не влезут. В реальном коде здесь нужно будет # распарсить ключ ссылок и сделать дополнительные запросы. response = request. get( 'https://api.directory .yandex.net/v6/users/', params=params, headers=headers, timeout=10, ) response.raise_for_status() response_data = response.json() results = response_data ['result'] return {user['nickname '] для пользователя в результатах}def create_users(filename, output): """Читает данные из файла и создает пользователей.
 """ # Убедимся, что выходной файл не существует, # иначе мы можем случайно # стереть пароли сотрудников, зарегистрированных # во время предыдущего запуска скрипта. {0} существует. Пожалуйста, выберите другое имя файла.') users_data = load_users(filename) Departments = get_departments() уже_created = load_already_created() # Здесь мы сохраняем имена пользователей и пароли созданных сотрудников # чтобы записать их в выходной файл позже new_users = [] для элемента в user_data: try: псевдоним = элемент['псевдоним'].strip() # Мы создадим сотрудника, только если нет # сотрудника с таким именем пользователя, если псевдоним отсутствует в уже_созданном: элемент['пароль '] = create_random_password() create_user(элемент, отделы) new_users.
Автор записи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *