Привет. В этой статье мы разберем способы получения остатка бюджета на рекламном аккаунте «Яндекс.Директа». Во время проведения рекламных кампаний важно, чтобы аккаунт не простаивал, поэтому для рекламных агентств контроль остатков — одна из важнейших задач.

Для чего это нужно?

Обычно рекламные агентства выстраивают систему контроля остатка средств на аккаунтах клиентов таким образом, чтобы видеть статистику по всем клиентам в рамках одного отчета в Power BI или другой системе визуализации данных. Это удобно, так как помогает контролировать сразу все текущие рекламные активности по всем проектам. Рассмотрим два способа получения данных об остатках средств:

  1. Коннектор к данным «Яндекс.Директа» от сервиса Renta

  2. Метод построения запросов напрямую к API «Яндекс.Директа»

Простой коннектор к API «Яндекс.Директа»

Сервис по сбору маркетинговых данных Renta поддерживает автоматическое получение значение остатка в рекламном аккаунте, в том числе и агентском. Остатки можно проверять с интервалом от одной минуты и выгружать результаты в хранилище данных, например в Google BigQuery. Для этого создайте интеграцию со следующими настройками:

  1. Тип интеграции: Yandex.Direct

  2. Report Type: Account Balance Report

  3. После чего укажите необходимые параметры.

Например: login, accountId, amount и currency:

Где:

  • login — логин рекламного кабинета,

  • accountId — идентификатор рекламного кабинета,

  • amount — остаток на балансе,

  • Currency — валюта аккаунта

В результате в Google BigQuery создается таблица c запрашиваемые данными:

Данные из Google BigQuery подтягиваются в Power BI, Tableau или любую другую BI-систему. Вместо Google BigQuery можно использовать и другие хранилища данных: ClickHouse, SQL Server и Amazon Redshift. Стоимость коннектора к API «Яндекс.Директа» от сервиса по сбору маркетинговых данных Renta — 39$/mo.

Метод построения запросов к API

Разберем пример запроса, который необходимо отправить к API «Яндекс.Директа» для получения остатка на рекламном счету.

  • Метод API: AccountManagement

  • Формат запроса: json

1https://api.direct.yandex.ru/live/v4/json/
2{
3   "method": "AccountManagement",
4   "token": "your_token",
5   "param": {
6      "Action": "Get",
7      "SelectionCriteria": {
8         "Logins": [],
9         "AccountIDS": [17112490]
10      }
11   }
12}

Пример запроса выше используется для обычных аккаунтов. Если у вас агентский аккаунт, тогда:

  • Logins — должен содержать логин агентского аккаунта

  • AccountIDs — может оставаться пустым.

В этом случае, вы получите данные по всем рекламодателям в вашем агентском аккаунте. Если задать определенные идентификаторы, тогда данные вы получите только по ним. То есть, AccountIds выполняет задачу фильтрации. Если выполнить запрос выше, то в результате API Директа вернет ответ:

1{
2    "data": {
3        "Accounts": [
4            {
5                "AmountAvailableForTransfer": "869.47",
6                "SmsNotification": {
7                    "SmsTimeTo": "23:00",
8                    "SmsTimeFrom": "08:00",
9                    "PausedByDayBudgetSms": "Yes",
10                    "MoneyInSms": "Yes",
11                    "MoneyOutSms": "Yes"
12                },
13                "Amount": "1085.7",
14                "EmailNotification": {
15                    "Email": "yadirect@renta.im",
16                    "MoneyWarningValue": 20,
17                    "PausedByDayBudget": "Yes",
18                    "SendWarn": null
19                },
20                "Currency": "EUR",
21                "Login": "renta",
22                "Discount": 0,
23                "AgencyName": null,
24                "AccountID": 17112490
25            }
26        ],
27        "ActionsResult": []
28    }
29}

В итоге остается только распарсить ответ и положить результаты в нужное хранилище данных.

Несколько полезных ссылок: 

  1. Регистрация в Ренте для создание интеграции, процесс настройки займет не более 5 минут. Действует триальный период 7 дней.

  2. Документация по OAuth-авторизации. Необходима для получения токена, который используется в запросе к API.

Если у вас остались вопросы — пишите в комментарии. Мы с удовольствием на них ответим!