Push-сообщения API myTarget позволяют на порядок сократить количество запросов к API. Как пользоваться, какие преимущества и ограничения - в презентации.
2. Синхронизация с myTarget
• Запрос к user.json
• Запрос к campaigns.json/banners.json
• Запрос к remarketing_*.json (все ремаркетинговые списки)
• Запрос к remarketings.json
• Запрос к sharing_keys
6. Новая синхронизация с myTarget
• Запрос к user.json
• Запрос к campaigns.json/banners.json
• Запрос к remarketing_*.json (все ремаркетинговые списки)
• Запрос к remarketings.json
• Запрос к sharing_keys
• Подписка на PUSH-уведомления на изменения кампаний и баннеров
7. Работа с PUSH-подписками
Создание
POST /api/v2/subscriptions.json
BODY EXAMPLE: {"callback_url": "https://mysuperhost.com/callback", "resource": "CAMPAIGN"}
BODY EXAMPLE: {"callback_url": "https://mysuperhost.com/callback", "resource": "BANNER"}
Текущие подписки
GET /api/v2/subscriptions.json
RESPONSE EXAMPLE: [{"resource": "BANNER", "resource_id": null, "created": "2016-09-20 13:41:34", "user": {"agency": null,
"id": 1111111}, "callback_url": "https://mysuperhost.com/callback", "id": 11111}, {"resource": "CAMPAIGN", "resource_id": null,
"created": "2016-09-20 13:41:35", "user": {"agency": null, "id": 2222222}, "callback_url": " https://mysuperhost.com/callback ",
"id": 22222}]
Удаление подписки
DELETE /api/v2/subscriptions/ID.json
10. Применение PUSH-уведомлений
• Получение подробной информации об изменениях в кампаниях и баннерах в течение нескольких
секунд (например, можно настроить мгновенные оповещения о результатах модерации)
• Полный лог создания/изменения по всем кампаниям и баннерам
• Использование информации из PUSH-уведомлений для отладки проблем с МТ
• Снижение количества GET-запросов к /api/v1/campaigns.json и /api/v1/banners.json практически
до нуля (снижение нагрузки на свои сервера и сервера МТ)
11. PULL-модель. 1000 аккаунтов MT
При синхронизации каждые 5 минут в час будет генерироваться примерно 24000 GET-запросов
в /api/v1/campaigns.json и /api/v1/banners.json.
12. PUSH-модель. 1000 аккаунтов MT
Все изменения приходят по мере их возникновения. Ничего лишнего.
Количество GET-запросов можно сократить до 2000 в час (если синхронизировать каждый час).
14. Итого
При наличии 1000 активных аккаунтов количество GET-запросов можно сократить примерно в 10 раз.
Более 40% изменений – это ставка статус.
15. Подводные камни
• Доходит не 100% PUSH-уведомлений, а всего лишь (sarcasm) 99.7%. Приходится иногда
использовать /api/v1/campaigns.json и /api/v1/banners.json
• Применение изменений из диффа не всегда является тривиальной задачей (например, в случае
изменений в regions и user_geo)
• В случае поломки PUSH-уведомлений надо включать «старый» способ синхронизации
• Надо настроить демон, который готов к некоторому количеству входящего трафика PUSH-
уведомлений
16. ПожеланияМечты
• Более подробная документация
• 100% доставка PUSH-уведомлений
• PUSH-уведомления об изменениях в аудиториях, ремаркетинговых группах, приложениях,
списках, …
• PUSH-уведомления об изменениях баланса аккаунта
• Информация об источнике изменения (интерфейс МТ, боты МТ, API)