SlideShare a Scribd company logo
КАК ПОВЫСИТЬ ЭФФЕКТИВНОСТЬ
УПРАВЛЕНИЯ РЕКЛАМОЙ ПРИ ПОМОЩИ
API V.2
Дмитрий Школьников
Работа с лимитами
• Лимиты на RPS
• Часовые лимиты
• Суточные лимиты
• Лимиты на количество активных объектов
• Лимиты в интерфейсе
2 из 20
Что совсем нового?
• Авторизация OAuth2
• Асинхронный API
• Новые фичи недоступны при старой
авторизации ;-)
3 из 20
Авторизация OAuth2
• Разделение на пользователей и
приложения
• Возможность давать разным приложениям
разные права на управление аккаунтом
4 из 20
Авторизация OAuth2
Для пользователей:
GET /api/v2/campaigns.json HTTP/1.1
Host: target.mail.ru
Authorization: Bearer {access_token}
5 из 20
Авторизация OAuth2
Для приложений:
Клиент перенаправляет пользователя на специальную
страницу https://target.mail.ru/oauth2/authorize, указав
параметры `response_type` (со значением `code`), `state`
(сгенерированный на стороне клиента токен, используется
для предотвращения CSRF), свой `client_id` и список прав
доступа `scope`:
GET
/oauth2/authorize?response_type=code&client_id={client_i
d}&state={state}&scope={scopes} HTTP/1.1
Host: target.mail.ru
6 из 20
Авторизация OAuth2
7 из 20
Пользователь на странице соглашается дать доступ и сервис
перенаправляет его по адресу, заданному параметром
redirect_uri при регистрации клиента, передавая параметры
`code` (специальный токен со сроком жизни в один час) и `state`
(переданный в первоначальном запросе):
GET {redirect_uri:path}?code={code}&state={state} HTTP/1.1
Hosts: <redirect_uri:host>
Авторизация OAuth2
8 из 20
Получив параметр `code`, клиент может запросить
`access_token` для дальнейшей работы с API от имени
пользователя. Для этого нужно послать запрос на
`/api/v2/oauth2/token.json`, передав параметры `grant_type`
(со значением `authorization_code`), `code` (полученный при
обратном редиректе на `redirect_uri` токен):
POST /api/v2/oauth2/token.json HTTP/1.1
Host: target.mail.ru
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code={code}&client_id={cl
ient_id}
Авторизация OAuth2
9 из 20
Ответ:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"access_token": "{access_token}",
"token_type": "bearer",
"scope": "{scope}"
}
Асинхронный API
• На асинхронные запросы нет жёстких
лимитов троттлинга. Все корректные
запросы будут выполнены.
• Возможность узнать о выполнении запроса
при помощи PUSH-уведомления.
10 из 20
Асинхронный API
11 из 20
Для того, чтобы отправить асинхронный запрос к
API, достаточно всего лишь заменить в URL-адресе
вызова `/api/` на `/async_api/`:
POST /async_api/v2/campaigns.json HTTP/1.1
Host: target.mail.ru
Authorization: Bearer {oauth2_access_token}
X-Callback-Location: http://client.com/callback
Асинхронный API
12 из 20
Ответ будет таким:
HTTP/1.1 202 Accepted
Location:
/async_api/v2/requests/{id}.json
Асинхронный API
13 из 20
GET /async_api/v2/requests/{id}.json HTTP/1.1
Authorization: Bearer {oauth2_access_token}
Host: target.mail.ru
• `enqueued` — запрос поставлен в очередь;
• `started` — запрос отправлен, но ответ ещё не получен;
• `done` — запрос выполнен;
• `unknown` — такой статус выставляется запросу в том
случае, если после отправки запроса произошла авария и
асинхронный API не успел обработать ответ от API — все
такие случаи необходимо разбирать в ручном режиме.
Нет никакой магии!
14 из 20
Медиапланирование в API
Теперь ползун и прогнозатор обсчитываются
на бэкэнде.
/api/v2/projection.json
POST-запрос с солянкой из пакета и
таргетингов для создания новой РК или же
просто с id кампании для контроля за
работающей РК.
15 из 20
Медиапланирование в API
• В ответе гистограмма охвата по ставкам.
• Вы можете реализовать стратегию
«удержание охвата».
• И ещё кое-что, о чём расскажу чуть-чуть
попозже ;-)
16 из 20
Статистики
• Быстрая статистика (GET
/api/v1/statistics/faststat/{object_type}/{obje
ct_id}.json)
• Статистика по клиентам (/v2/clients.json)
• Отчёт по клиентам (beta)
https://target.mail.ru/api/v2/agency/clients/st
atistics/?date_from=01.10.2013&date_to=23.
04.2014&cid=N1&cid=N2&…&cid=NX
17 из 20
Что дальше?
• batch-задачи в формате Odata – лето 2014
• PUSH на все изменения объектов – лето
2014
• PUSH на появление статистики
• Закрытие старой авторизации – осень 2014.
18 из 20
2009 — 2010
Дмитрий Школьников,
руководитель проектов сервиса
Таргет@Mail.Ru
Мою презентацию вы сможете найти в нашем
блоге http://corp.mail.ru/blog уже сегодня!
Спасибо за внимание!
Вопросы?
Контактная информация
• Служба поддержки и модерации:
target.help@corp.mail.ru
• Финансовые вопросы (заключение
договоров, оплата счетов и т.п.):
target.finance@corp.mail.ru

More Related Content

PPTX
Обзор существующих средств для автоматизации продвижения в Интернете
PDF
Мобильность облачных решений для корпоративного сектора
PPT
Как готовить аудиторные сегменты: все смешать, но не взбалтывать!
PDF
Массовый сервис для благотворительности: особенности развития
PDF
Лояльность и продажи в социальных сетях
PDF
Мобильный интернет в России
PDF
Как достичь Хабрапригодности
PDF
Поведенческие факторы как обратная связь для веб-мастера
Обзор существующих средств для автоматизации продвижения в Интернете
Мобильность облачных решений для корпоративного сектора
Как готовить аудиторные сегменты: все смешать, но не взбалтывать!
Массовый сервис для благотворительности: особенности развития
Лояльность и продажи в социальных сетях
Мобильный интернет в России
Как достичь Хабрапригодности
Поведенческие факторы как обратная связь для веб-мастера

Viewers also liked (10)

PDF
Таргетированная реклама
PDF
Как россияне используют смартфоны
PDF
Пользовательские исследования мобильных приложений
PPTX
Защита конечного пользователя
PDF
Возможности социальной сети Мой Мир: сегодня и завтра
PPT
«Онлайн-саппорт: Отвечаем пользователям – улучшаем репутацию»
PDF
краудсорсинг для благотворительности
PDF
Тестовое задание от Таргета Mail.Ru
PDF
Каналы продвижения для E-commerce»
PDF
Глобальный взгляд на мобильный мир
Таргетированная реклама
Как россияне используют смартфоны
Пользовательские исследования мобильных приложений
Защита конечного пользователя
Возможности социальной сети Мой Мир: сегодня и завтра
«Онлайн-саппорт: Отвечаем пользователям – улучшаем репутацию»
краудсорсинг для благотворительности
Тестовое задание от Таргета Mail.Ru
Каналы продвижения для E-commerce»
Глобальный взгляд на мобильный мир
Ad

Similar to Как повысить эффективность управления рекламой при помощи API (15)

PDF
Target mail.ru API v2
PDF
Target.Mail.Ru API v2
PPTX
ITmozg, Даниил Павлючков
PPTX
Stas Sultanov "REST again? Oh, come on!"
PDF
OAuth 2.0 refresher (russian)
PPT
API: взгляд потребителя
PPTX
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
PDF
Rate limits and performance (russian)
PDF
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
PPT
RESTful Architechture (Highload++ 2008)
PPT
!2hl++2008 Restful Architechture
PPTX
Postman тестирование api v1.0 (1)
PDF
Алексей Андросов "HTML5 в Я.Почте"
PDF
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
PPTX
RESTful API: Best practices, versioning, design documentation
Target mail.ru API v2
Target.Mail.Ru API v2
ITmozg, Даниил Павлючков
Stas Sultanov "REST again? Oh, come on!"
OAuth 2.0 refresher (russian)
API: взгляд потребителя
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Rate limits and performance (russian)
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
RESTful Architechture (Highload++ 2008)
!2hl++2008 Restful Architechture
Postman тестирование api v1.0 (1)
Алексей Андросов "HTML5 в Я.Почте"
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
RESTful API: Best practices, versioning, design documentation
Ad

More from Mail.ru Group (20)

PDF
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
PDF
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
PDF
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
PDF
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
PDF
Управление инцидентами в Почте Mail.ru, Антон Викторов
PDF
DAST в CI/CD, Ольга Свиридова
PDF
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
PDF
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
PDF
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
PDF
WebAuthn в реальной жизни, Анатолий Остапенко
PDF
AMP для электронной почты, Сергей Пешков
PDF
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
PDF
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
PDF
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
PDF
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
PDF
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
PDF
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
PDF
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
PDF
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
PDF
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Управление инцидентами в Почте Mail.ru, Антон Викторов
DAST в CI/CD, Ольга Свиридова
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
WebAuthn в реальной жизни, Анатолий Остапенко
AMP для электронной почты, Сергей Пешков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()

Как повысить эффективность управления рекламой при помощи API

  • 1. КАК ПОВЫСИТЬ ЭФФЕКТИВНОСТЬ УПРАВЛЕНИЯ РЕКЛАМОЙ ПРИ ПОМОЩИ API V.2 Дмитрий Школьников
  • 2. Работа с лимитами • Лимиты на RPS • Часовые лимиты • Суточные лимиты • Лимиты на количество активных объектов • Лимиты в интерфейсе 2 из 20
  • 3. Что совсем нового? • Авторизация OAuth2 • Асинхронный API • Новые фичи недоступны при старой авторизации ;-) 3 из 20
  • 4. Авторизация OAuth2 • Разделение на пользователей и приложения • Возможность давать разным приложениям разные права на управление аккаунтом 4 из 20
  • 5. Авторизация OAuth2 Для пользователей: GET /api/v2/campaigns.json HTTP/1.1 Host: target.mail.ru Authorization: Bearer {access_token} 5 из 20
  • 6. Авторизация OAuth2 Для приложений: Клиент перенаправляет пользователя на специальную страницу https://target.mail.ru/oauth2/authorize, указав параметры `response_type` (со значением `code`), `state` (сгенерированный на стороне клиента токен, используется для предотвращения CSRF), свой `client_id` и список прав доступа `scope`: GET /oauth2/authorize?response_type=code&client_id={client_i d}&state={state}&scope={scopes} HTTP/1.1 Host: target.mail.ru 6 из 20
  • 7. Авторизация OAuth2 7 из 20 Пользователь на странице соглашается дать доступ и сервис перенаправляет его по адресу, заданному параметром redirect_uri при регистрации клиента, передавая параметры `code` (специальный токен со сроком жизни в один час) и `state` (переданный в первоначальном запросе): GET {redirect_uri:path}?code={code}&state={state} HTTP/1.1 Hosts: <redirect_uri:host>
  • 8. Авторизация OAuth2 8 из 20 Получив параметр `code`, клиент может запросить `access_token` для дальнейшей работы с API от имени пользователя. Для этого нужно послать запрос на `/api/v2/oauth2/token.json`, передав параметры `grant_type` (со значением `authorization_code`), `code` (полученный при обратном редиректе на `redirect_uri` токен): POST /api/v2/oauth2/token.json HTTP/1.1 Host: target.mail.ru Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code={code}&client_id={cl ient_id}
  • 9. Авторизация OAuth2 9 из 20 Ответ: HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 { "access_token": "{access_token}", "token_type": "bearer", "scope": "{scope}" }
  • 10. Асинхронный API • На асинхронные запросы нет жёстких лимитов троттлинга. Все корректные запросы будут выполнены. • Возможность узнать о выполнении запроса при помощи PUSH-уведомления. 10 из 20
  • 11. Асинхронный API 11 из 20 Для того, чтобы отправить асинхронный запрос к API, достаточно всего лишь заменить в URL-адресе вызова `/api/` на `/async_api/`: POST /async_api/v2/campaigns.json HTTP/1.1 Host: target.mail.ru Authorization: Bearer {oauth2_access_token} X-Callback-Location: http://client.com/callback
  • 12. Асинхронный API 12 из 20 Ответ будет таким: HTTP/1.1 202 Accepted Location: /async_api/v2/requests/{id}.json
  • 13. Асинхронный API 13 из 20 GET /async_api/v2/requests/{id}.json HTTP/1.1 Authorization: Bearer {oauth2_access_token} Host: target.mail.ru • `enqueued` — запрос поставлен в очередь; • `started` — запрос отправлен, но ответ ещё не получен; • `done` — запрос выполнен; • `unknown` — такой статус выставляется запросу в том случае, если после отправки запроса произошла авария и асинхронный API не успел обработать ответ от API — все такие случаи необходимо разбирать в ручном режиме.
  • 15. Медиапланирование в API Теперь ползун и прогнозатор обсчитываются на бэкэнде. /api/v2/projection.json POST-запрос с солянкой из пакета и таргетингов для создания новой РК или же просто с id кампании для контроля за работающей РК. 15 из 20
  • 16. Медиапланирование в API • В ответе гистограмма охвата по ставкам. • Вы можете реализовать стратегию «удержание охвата». • И ещё кое-что, о чём расскажу чуть-чуть попозже ;-) 16 из 20
  • 17. Статистики • Быстрая статистика (GET /api/v1/statistics/faststat/{object_type}/{obje ct_id}.json) • Статистика по клиентам (/v2/clients.json) • Отчёт по клиентам (beta) https://target.mail.ru/api/v2/agency/clients/st atistics/?date_from=01.10.2013&date_to=23. 04.2014&cid=N1&cid=N2&…&cid=NX 17 из 20
  • 18. Что дальше? • batch-задачи в формате Odata – лето 2014 • PUSH на все изменения объектов – лето 2014 • PUSH на появление статистики • Закрытие старой авторизации – осень 2014. 18 из 20
  • 19. 2009 — 2010 Дмитрий Школьников, руководитель проектов сервиса Таргет@Mail.Ru Мою презентацию вы сможете найти в нашем блоге http://corp.mail.ru/blog уже сегодня! Спасибо за внимание! Вопросы?
  • 20. Контактная информация • Служба поддержки и модерации: target.help@corp.mail.ru • Финансовые вопросы (заключение договоров, оплата счетов и т.п.): target.finance@corp.mail.ru