API Directadvert — техническое описание

API Directadvert представляет собой обычный REST-протокол, запросы возможны как GET, так и POST. Запросы GET передаются по стандарту (url-encode), запросы POST точно так же кодируются в application/form-url-encoded виде. Ответ от сервера для всех запросов ожидается в json формате. Обязательное поле success указывает, насколько успешно обработан запрос.

Адрес сервера API:

https://api.directadvert.ru

Пример:

https://api.directadvert.ru/auth.json?name=username&password=userpassword

Представление данных:

<STRING>
– строковое представление
<INT>
– целочисленное представление (4 байта)
<FLOAT>
– представление в формате числа с плавающей точкой
<ARRAY>
– представление в виде массива в запросах (&var[]=value1&var[]=value2)
<JSON_ARRAY>
– представление в формате json массива
<JSON_OBJECT>
– представление в формате json объекта

Формат ответа от сервера

Положительный ответ от сервера:

{
    "success" : true,
    ...
}

Ответ в случае возникновения ошибки:

{
    "success" : false,
    "error_code" : <INT>,
    "error_message" : <STRING>
}
error_code
– код ошибки
error_message
– текстовое описание ошибки
/auth.json

Параметры:

name
<STRING>
Имя пользователя
password
<STRING>
Пароль

Формат выходных данных:

{
    "success" : true,
    "token" : <STRING>,
    "account_data" : {
        "email" : <STRING>,
        "id" : <INT>,
        "stats_min_date" : <DATE>,
        "advertiser" : <ACCOUNT_ITEM>,
        "partner" : <ACCOUNT_ITEM>,
        "balance" : <FLOAT> (кроме обменных аккаунтов),
        "currency" : <STRING> (кроме обменных аккаунтов),
        "min_price_buy" : <FLOAT>,
        "max_price_buy" : <FLOAT>,
        "registration_type" : <STRING>
    }
}
ACCOUNT_ITEM
{
    "statistics" : {
        "current" : {
            "shows" : <INT>,
            "clicks" : <INT>,
            "actions" : <INT>,   (для рекламодателя)
            "ctr" : <FLOAT>,
            "expense" : <FLOAT>, (для рекламодателя)
            "profit" : <FLOAT>, (для паблишера)
            "cpc" : <FLOAT>,
            "cpm" : <FLOAT>  (для паблишера)
        },
        "delta" : {
            "shows" : <INT>,
            "clicks" : <INT>,
            "actions" : <INT>,   (для рекламодателя)
            "ctr" : <FLOAT>,
            "expense" : <FLOAT>, (для рекламодателя)
            "profit" : <FLOAT>, (для паблишера)
            "cpc" : <FLOAT>,
            "cpm" : <FLOAT>  (для паблишера)
        }
    }
}
                
token
<STRING>
- Токен, который будет в дальнейшем использоваться в запросах для получения данных, связанных с аккаунтом
account_data
<JSON_OBJECT>
- Данные аккаунта
/create_ad.json

Параметры:

token
<STRING>
Токен авторизации
group_id
<INT>
Идентификатор кампании, для которой создается объявление (необязательный)
title
<STRING>
Заголовок
announce
<STRING>
Анонс (необязательный)
url
<STRING>
URL перехода
price
<FLOAT>
Цена за переход
image
<STRING>
Изображение, кодированное в base64

Формат выходных данных:

{
    "success" : true,
    "id": <INT>
}
/create_ad_group.json

Параметры:

token
<STRING>
Токен авторизации
name
<STRING>
Имя кампании

Формат выходных данных:

{ 
    "success" : true 
}
/edit_ad.json

Параметры:

token
<STRING>
Токен авторизации
id
<INT>
Идентификатор объявления
group_id
<INT>
Идентификатор кампании, для которой создается объявление (необязательный)
title
<STRING>
Заголовок (необязательный)
announce
<STRING>
Анонс (необязательный)
url
<STRING>
URL перехода (необязательный)
price
<FLOAT>
Цена за переход (необязательный)
image
<STRING>
Изображение, кодированное в base64 (необязательный)

Формат выходных данных:

{
    "success" : true
}
/delete_ad.json

Параметры:

token
<STRING>
Токен авторизации
ids
<ARRAY>
Список идентификаторов объявлений

Формат выходных данных:

{
    "success" : true
}
/edit_ad_group.json

Параметры:

token
<STRING>
Токен авторизации
id
<INT>
Идентификатор кампании
max_clicks_workday
<INT>
Максимум кликов в будни (необязательный, -1 - отмена ограничения)
max_clicks_weekend
<INT>
Максимум кликов в выходные (необязательный, -1 - отмена ограничения)
max_clicks
<INT>
Общий максимум кликов (необязательный, -1 - отмена ограничения)
time_targeting
<ARRAY>
Таргетинг по времени (необязательный)
device_targeting
<ARRAY>
Таргетинг по типу устройства (необязательный)
netop_targeting
<ARRAY>
Таргетинг по оператору связи (необязательный)
geo_targeting
<ARRAY>
Таргетинг по регионам (необязательный)
max_expense
<FLOAT>
Общий расход (необязательный, -1 - отмена ограничения)
max_expense_workday
<FLOAT>
Расход в рабочие дни (необязательный, -1 - отмена ограничения)
max_expense_weekend
<FLOAT>
Расход в выходные (необязательный, -1 - отмена ограничения)
campaign_start
<DATE>
Начало трансляции кампании (необязательный)
campaign_finish
<DATE>
Конец трансляции кампании (необязательный)
is_campaign_inherit
<BOOLEAN>
Наследование периода трансляции кампании (необязательный)

Примеры:

Для установки таргетинга по времени с 6 до 10 часов:

https://api.directadvert.ru/edit_ad_group.json?token=65b9c9dbe411bbfc8eba82b59db766b4&id=12345&time_targeting[]=6&time_targeting[]=7&time_targeting[]=8&time_targeting[]=9

Для установки таргетинга по регионам (Россия, Тбилиси и Северо-Казахстанская область):
https://api.directadvert.ru/edit_ad_group.json?token=65b9c9dbe411bbfc8eba82b59db766b4&id=12345&geo_targeting[]=RU&geo_targeting[]=GE.Tbilisi&geo_targeting[]=KZ.NorthKazakhstan

Полный список идентификаторов регионов доступен при вызове метода /get_regions.json в элементах name значений полученного массива.


Для установки таргетинга по типам устройств (стационарные и Android-устройства):

https://api.directadvert.ru/edit_ad_group.json?token=65b9c9dbe411bbfc8eba82b59db766b4&id=12345&device_targeting[]=Fixed&device_targeting[]=Mobile.Android

Полный список идентификаторов устройств доступен при вызове метода /get_devices.json в элементах name значений полученного массива.


Для установки таргетинга по операторам связи (МТС и широкополосный интернет):

https://api.directadvert.ru/edit_ad_group.json?token=65b9c9dbe411bbfc8eba82b59db766b4&id=12345&netop_targeting[]=Mts&netop_targeting[]=Broadband

Полный список операторов связи доступен при вызове метода /get_netops.json в элементах name значений полученного массива.

Формат выходных данных:

{
    "success" : true
}
/get_account_info.json

Параметры:

token
<STRING>
Токен авторизации
date
<DATE>
Если установлен этот параметр, то статистика будет выводиться за указанную дату (необязательный)

Формат выходных данных:

{
    "success" : true,
    "account_data" : {
        "email" : <STRING>,
        "balance" : <FLOAT>,
        "currency" : <STRING>, (кроме обменных аккаунтов)
        "advertiser" : {
            "statistics" : {
                "current" : <ACCOUNT_STATISTICS>,
                "delta" : <ACCOUNT_STATISTICS>,
            }
        },
        "partner" : {
            "statistics" : {
                "current" : <ACCOUNT_STATISTICS>,
                "delta" : <ACCOUNT_STATISTICS>,
            }
        },
        "min_price_buy" : <FLOAT>,
        "max_price_buy" : <FLOAT>,
        "registration_type" : <STRING>,
        "region_target" : <ARRAY>,
        "device_target" : <ARRAY>
    }
}
ACCOUNT_STATISTICS
{
    "shows" : <INT>,
    "clicks" : <INT>,
    "actions" : <INT>,   (для рекламодателя)
    "ctr" : <FLOAT>,
    "expense" : <FLOAT>, (для рекламодателя)
    "profit" : <FLOAT>,  (для паблишера)
    "cpc" : <FLOAT>,
    "cpm" : <FLOAT>      (для паблишера)
}
/get_account_details.json

Параметры:

token
<STRING>
Токен авторизации
date
<DATE>
Если установлен этот параметр, то статистика будет выводиться за указанную дату (необязательный)
date_end
<DATE>
Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную (необязательный)
with_archived
<INT>
Если установлен этот параметр, то в конец списка групп будут добавлены архивные

Формат выходных данных:

{
    "success" : true,
    "account_details" : [
        <ACCOUNT_GROUP_ITEM>,
        <ACCOUNT_GROUP_ITEM>,
        ...
    ],
    "summary" : <GROUP_STATISTICS>
}
ACCOUNT_GROUP_ITEM
{
    "group_id" : <INT>,
    "title" : <STRING>,
    "created" : <STRING>,
    "max_clicks_workday" : <INT>,
    "max_clicks_weekend" : <INT>,
    "time_targeting" : [
        "value" : <ARRAY>,
        "inherits_from_account" : <INT>
    ],
    "geo_targeting" : [
        "value" : <ARRAY>,
        "inherits_from_account" : <INT>
    ],
    "device_targeting" : [
        "value" : <ARRAY>,
        "inherits_from_account" : <INT>
    ],
    "campaign_start" : <DATE>,
    "campaign_finish" : <DATE>,
    "is_campaign_inherit" : <BOOLEAN>,
    "all_count" : <INT>,
    "active_count" : <INT>,
    "status" : <STRING>,
    "statistics" : {
        "current" : <GROUP_STATISTICS>,
        "delta" : <GROUP_STATISTICS>,
        "period" : { (При установленных одновременно *date* и *date_end*)
            <DATE> : <GROUP_STATISTICS>,
            <DATE> : <GROUP_STATISTICS>,
            ...
        }
    }
}
GROUP_STATISTICS
{
    "shows" : <INT>,
    "clicks" : <INT>,
    "actions" : <INT>,
    "ctr" : <FLOAT>,
    "expense" : <FLOAT>, (для рекламодателя)
    "cpc" : <FLOAT> (для рекламодателя)
}
/get_advertiser_stats.json

Параметры:

token
<STRING>
Токен авторизации
group_id
<INT>
Идентификатор кампании (необязательный). Если не установлен этот параметр, то статистика будет выводиться для всего аккаунта.
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную.

Формат выходных данных:

{
    "success" : true,
    "group_id" : <INT> or null,
    "statistics" : [
        "period" : [
            <DATE> : <ADVERTISER_STATISTICS>,
            <DATE> : <ADVERTISER_STATISTICS>,
            ...
        ],
        "total" : < >
    ]
}
/get_sites_info.json

Параметры:

token
<STRING>
Токен авторизации
getcount
<BOOLEAN>
Получить только количество сайтов (необязательный). Требуется для установки параметра page.
page
<INT>
Страница (необязательный, от 0). Список выводится порциями по 200 сайтов.
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную.

При установленных одновременно date и date_end статистика выводится в параметре period, в остальных случаях - в параметрах current и delta.

Формат выходных данных:

{
    "success" : true,
    "sites_count" : <INT>,
    "pages_count" : <INT>,
    "site_data" : [
        SITE_ITEM,
        SITE_ITEM,
        ...
    ],
    "site_data_page_total" : <PARTNER_STATISTICS>
}
SITE_ITEM
{
    "site_id" : <INT>,
    "title" : <STRING>,
    "status" : <STRING>,
    "min_teaser_rating" : <INT>,
    "statistics" : {
        "current" : <PARTNER_STATISTICS>,
        "delta" : <PARTNER_STATISTICS>,
        "period"  : { (При установленных одновременно *date* и *date_end*)
            <DATE> : <PARTNER_STATISTICS>,
            <DATE> : <PARTNER_STATISTICS>,
            ...
        }
    }
}
PARTNER_STATISTICS
{
    "shows"  : <INT>,
    "clicks" : <INT>,
    "profit" : <FLOAT>,
    "ctr"    : <FLOAT>,
    "cpc"    : <FLOAT>,
    "cpm"    : <FLOAT>
}
/get_site_details.json

Параметры:

token
<STRING>
Токен авторизации
site_id
<INT>
Идентификатор сайта
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную.

При установленных одновременно date и date_end статистика выводится в параметре period, в остальных случаях - в параметрах current и delta.

Формат выходных данных:

{
    "success" : true,
    "site_details" : [
        SITE_ADVERT_BLOCK_ITEM,
        SITE_ADVERT_BLOCK_ITEM,
        ...
    ]
}
SITE_ADVERT_BLOCK_ITEM 
{
    "adp_id" : <INT>,
    "title" : <STRING>,
    "statistics" : {
        "current" : <PARTNER_STATISTICS>,
        "delta" : <PARTNER_STATISTICS>,
        "period" : { (При установленных одновременно date и date_end)
            <DATE> : <PARTNER_STATISTICS>,
            <DATE> :<PARTNER_STATISTICS>,
            ...
        }
    }
}
PARTNER_STATISTICS
{
    "shows"  : <INT>,
    "clicks" : <INT>,
    "profit" : <FLOAT>,
    "ctr"    : <FLOAT>,
    "cpc"    : <FLOAT>,
    "cpm"    : <FLOAT>
}
/set_adverts_status.json

Параметры:

token
<STRING>
Токен авторизации
adverts_id
<ARRAY>
Массив ID объявлений
status
<STRING>
Желаемое действие (active|paused)

Формат выходных данных:

{
    "success" : true
}
/get_group_details.json

Параметры:

token
<STRING>
Токен авторизации
group_id
<INT>
Идентификатор кампании
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную.

Формат выходных данных:

{
    "success" : true,
    "group_details" : [
        <GROUP_ADVERT_ITEM>,
        <GROUP_ADVERT_ITEM>,
        ...
    ]
}
GROUP_ADVERT_ITEM
{
    "ad_id" : <INT>,
    "title" : <STRING>,
    "created" : <STRING>,
    "url" : <STRING>,
    "image_url" : <STRING>,
    "status" : <STRING>,
    "status_extended" : <STRING>,
    "statistics" : {
        "current" : <ADVERTISER_STATISTICS>,
        "delta" : <ADVERTISER_STATISTICS>,
        "period" : {
            <DATE> : <ADVERTISER_STATISTICS>,
            <DATE> :<ADVERTISER_STATISTICS>,
            ...
        }
    }
}
/get_group_teasers.json

Параметры:

token
<STRING>
Токен авторизации
group_id
<INT>
Идентификатор кампании

Формат выходных данных:

{
    "success" : true,
    "group_teasers" : [
        <GROUP_ADVERT_ITEM>,
        <GROUP_ADVERT_ITEM>,
        ...
    ]
}
GROUP_ADVERT_ITEM
{
    "ad_id" : <INT>,
    "group_id" : <INT>,
    "status" : <STRING>,
    "status_extended" : <STRING>,
    "title" : <STRING>,
    "announce" : <STRING>,
    "is_banner" : <INT>,
    "url" : <STRING>,
    "image_url" : <STRING>,
    "image_string" : <STRING>,
    "action_url" : <STRING>, (для необменных пользователей)
    "buy_price" : <FLOAT>, (для необменных пользователей)
    "action_price" : <FLOAT> (для необменных пользователей)
}
/get_teaser_info.json

Параметры:

token
<STRING>
Токен авторизации
id
<INT>
Идентификатор объявления
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.

Формат выходных данных:

{
    "success" : true,
    "teaser_info" : <ADVERT_ITEM>
}
ADVERT_ITEM
{
    "ad_id" : <INT>,
    "title" : <STRING>,
    "url" : <STRING>,
    "image_url" : <STRING>,
    "status" : <STRING>,
    "statistics" : {
        "current" : <ADVERTISER_STATISTICS>,
        "delta" : <ADVERTISER_STATISTICS>,
        "period"  : { (При установленных одновременно date и date_end)
            <DATE> : <ADVERTISER_STATISTICS>,
            <DATE> : <ADVERTISER_STATISTICS>,
            ...
        }
    }
}
/set_groups_status.json

Параметры:

token
<STRING>
Токен авторизации
groups_id
<ARRAY>
Массив идентификаторов кампаний
status
<STRING>
Устанавливаемый статус

Возможные значения статуса кампаний:

active
Активно
paused
Остановлено
archived
Архивирование кампании

Пример:

Установка статуса "Остановлено" кампаниям с id 123, 234, 345.

https://api.directadvert.ru/set_groups_status.json?token=65b9c9dbe411bbfc8eba82b59db766b4&groups_id[]=123&groups_id[]=234&groups_id[]=345&status=paused

Формат выходных данных:

{
    "success" : true
}
/delete_ad_group.json

Параметры:

token
<STRING>
Токен авторизации
ids
<ARRAY>
Список идентификаторов кампаний

Формат выходных данных:

{
    "success" : true
}
/agent/auth.json

Параметры:

name
<STRING>
Имя пользователя
password
<STRING>
Пароль

Формат выходных данных:

{
    "success" : true,
    "agent_token" : <STRING> Токен, который будет в дальнейшем использоваться в запросах для получения данных, связанных с агентским аккаунтом
}
/agent/create_client.json

Параметры:

agent_token
<STRING>
Токен авторизации агента
email
<STRING>
E-mail пользователя
passwd
<STRING>
Пароль пользователя

Формат выходных данных:

{
    "success" : true,
    "user_id" : <INT> Идентификатор созданного пользователя
}
/agent/get_clients.json

Параметры:

agent_token
<STRING>
Токен авторизации агента

Формат выходных данных:

{
    "success" : true,
    "clients" : [
        <CLIENT_INFO>,
        <CLIENT_INFO>,
        ...
    ]
}
CLIENT_INFO
{
    "id" : <INT>,
    "email" : <STRING>,
    "balance" : <FLOAT>,
    "currency" : <STRING>
}
/agent/get_client_info.json

Параметры:

agent_token
<STRING>
Токен авторизации
id
<INT>
ID пользователя

Формат выходных данных:

{
    "success" : true,
    "account_data" : {
        "email" : <STRING>,
        "balance" : <FLOAT>,
        "currency" : <STRING>,
        "advertiser" : {
            "statistics" : {
                "current" : <ADVERTISER_STATISTICS>,
                "delta" : <ADVERTISER_STATISTICS>,
            }
        }
    }
}
ADVERTISER_STATISTICS
{
    "shows" : <INT>,
    "clicks" : <INT>,
    "actions" : <INT>,
    "expense" : <FLOAT>,
    "ctr" : <FLOAT>,
    "cpc" : <FLOAT>
}
/agent/get_client_stats.json

Параметры:

agent_token
<STRING>
Токен авторизации
id
<INT>
ID пользователя
date_start
<DATE>
Дата в формате YYYY-MM-DD (необязательный).
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный).
by_day
<BOOLEAN>
Включать отдельную статистику по дням (необязательный).

При установленных одновременно date_start и date_end статистика выводится за указанный период, в остальных случаях - за последние 30 дней

Формат выходных данных:

{
    "success" : true,
    "client_stats" : {
        "daily_stats" : [ (При включенной опции by_day)
            <DAILY_STATS>,
            <DAILY_STATS>,
            ...
        ]
        "client_expense" : <FLOAT>,
        "agent_profit" : <FLOAT>
    }
}
DAILY_STATS
{
    "day" : <DATE>,
    "client_expense" : <FLOAT>,
    "agent_profit" : <FLOAT>
}
/agent/add_client_credit.json

Параметры:

agent_token
<STRING>
Токен авторизации агента
id
<INT>
Идентификатор пользователя
amount
<FLOAT>
Сумма увеличения кредитного лимита пользователя

Формат выходных данных:

{
    "success" : true,
    "operation_id" : <INT> Идентификатор операции изменения лимита
}
/ban_ip.json

Параметры:

token
<STRING>
Токен авторизации
ip
<ARRAY>
Список IP-адресов

Пример:

Блокировка посетителей, пришедших c IP-адресов "212.64.65.66" и "135.12.34.56"

https://api.directadvert.ru/ban_ip.json?token=65b9c9dbe411bbfc8eba82b59db766b4&ip[]=212.64.65.66&ip[]=135.12.34.56

Формат выходных данных:

{
    "success" : true
}
/unban_ip.json

Параметры:

token
<STRING>
Токен авторизации
ip
<ARRAY>
Список IP-адресов

Пример:

Разблокировка посетителей, пришедших c IP-адресов "212.64.65.66" и "135.12.34.56"

https://api.directadvert.ru/unban_ip.json?token=65b9c9dbe411bbfc8eba82b59db766b4&ip[]=212.64.65.66&ip[]=135.12.34.56

Формат выходных данных:

{
    "success" : true
}
/get_banned_ip_list.json

Параметры:

token
<STRING>
Токен авторизации

Формат выходных данных:

{
    "success" : true,
    "banned_ip_list" : <JSON_ARRAY>
}
/get_regions.json

Не требует авторизации

Формат выходных данных:

{
    "success" : true,
    "regions" : 
        <REGION>,
        <REGION>,
        ...
}
REGION
{
    "name"   : <STRING>, Идентификатор региона
    "runame" : <STRING>  Наименование региона
}
/get_group_sources.json

Параметры:

token
<STRING>
Токен авторизации
group_id
<INT>
Id кампании
date
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за указанную дату.
date_end
<DATE>
Дата в формате YYYY-MM-DD (необязательный). Если установлен этот параметр, то статистика будет выводиться за период с даты date по указанную.

Формат выходных данных:

{
    "success" : true,
    "sources" : [
        [
            "id" : <INT>,
            "name" : <STRING>,
            "blocked" : <BOOLEAN>,
            "clicks" : <INT>,
            "actions" : <INT>,
            "conversion_pc" : <FLOAT>,
            "expense" : <FLOAT>,
            "cpc" : <FLOAT>,
            "cpc_ratio" : <FLOAT>,
            "cpa" : <FLOAT>
        ],
        ...
    ]
}
/set_filter_source.json

Параметры:

token
<STRING>
Токен авторизации
src_id
<INT>
Идентификатор источника.
group_id
<INT>
Идентификатор кампании.
blocked
<BOOLEAN>
Установка статуса блокировки.

Формат выходных данных:

{
    "success" : true
}
/set_filter_source_ratio.json

Параметры:

token
<STRING>
Токен авторизации
src_id
<INT>
Идентификатор источника.
group_id
<INT>
Идентификатор кампании.
cpc_ratio
<FLOAT>
Коэффициент интенсивности источника

Формат выходных данных:

{
    "success" : true
}