API-интерфейс

API фильтров и трекера позволяют работать с проверкой визитов, трафиком и статистикой. Чтобы получить API-токен, зайдите на страницу своего профиля в системе. Взаимодействие с сервисом осуществляется по протоколу HTTP, статус ответа всегда 200. Стандартный формат запроса - GET или "чистый" POST (form-urlencoded). При отправке в JSON не забывайте заголовок Content-type: application/json. Формат результата - JSON. Ограничений на количество запросов нет.

Далее по тексту важные параметры указаны в фигурных скобках:

Важно! При использовании ссылок и данных фигурные скобки указывать не нужно, только сами значения!

Содержание

Фильтрация

Функции фильтрации позволяют вам максимально быстро проверять визиты на ваши сайты. Они вынесены в отдельный интерфейс, который имеет минимальное время ответа и максимальную производительность.

Проверка визита

URL: https://www.altercpa.one/fltr/{user}-{key}-{id}

В адресе функции вместо {user} и {key} укажите API ID и ключ из профиля, вместо {id} указывается идентификатор добавленного вами фильтр-сайта. Конкретный URL вы можете получить, нажав на кнопку "Инструкция" соответствующего сайта в вашем личном кабинете.

Чтобы проверить свой визит, вам необходимо отправить POST-запрос на указанный выше URL. В качестве тела запроса передайте поля своего массива $_SERVER - мы проанализируем их и покажем ответ в формате JSON. Успешный ответ включает в себя поля status, action и url. Поле status всегда содержит значение ok. Поле action ответа будет содержать allow или deny в зависимости от результатов проверки, поле url будет содержать соответствующий URL-адрес. В ошибочном ответе поле status будет содержать error, код ошибки будет указан в поле error.

POST-часть запроса должна быть в формате x-www-form-urlencoded, формат JSON не поддерживается. Мы анализируем следующие поля из массива $_SERVER:

HTTP_USER_AGENT, HTTP_ACCEPT, HTTP_ACCEPT_CHARSET, HTTP_ACCEPT_ENCODING, HTTP_ACCEPT_LANGUAGE, HTTP_AUTHORIZATION, HTTP_CACHE_CONTROL, HTTP_CONNECTION, HTTP_CONTENT_DISPOSITION, HTTP_DATE, HTTP_EXPECT, HTTP_FROM, HTTP_HOST, HTTP_IF_MATCH, HTTP_IF_MODIFIED_SINCE, HTTP_IF_NONE_MATCH, HTTP_IF_RANGE, HTTP_IF_UNMODIFIED_SINCE, HTTP_MAX_FORWARDS, HTTP_PRAGMA, HTTP_PROXY_AUTHORIZATION, HTTP_RANGE, HTTP_REFERER, HTTP_TE, HTTP_TRAILER, HTTP_TRANSFER_ENCODING, HTTP_UPGRADE, HTTP_VIA, HTTP_X_FORWARDED_FOR, REMOTE_ADDR, REMOTE_PORT, REQUEST_METHOD, REQUEST_URI, QUERY_STRING, HTTP_CF_CONNECTING_IP, HTTP_CLIENT_IP, HTTP_X_REAL_IP, HTTP_X_PURPOSE, HTTP_X_FB_HTTP_ENGINE

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
action Требуемое действие по результатам проверки:
  • allow - визит легитимный, показать целевой сайт
  • deny - визит подозрительный, показать сайт-заглушку
result Реальный результат проверки трафика, который не зависит от включенного режима обучения:
  • allow - визит легитимный, показать целевой сайт
  • deny - визит подозрительный, показать сайт-заглушку
В режиме обучения значение result может отличаться от значения action.
url URL сайта для запроса, зависит от результатов проверки.
target URL целевого сайта, при наличии показывается всегда независимо от результатов проверки.
dummy URL сайта-заглушки, при наличии показывается всегда независимо от результатов проверки.
error Идентификатор ошибки: access-denied при отсутствии доступа к системе проверки, bad-request в случе ошибочного указания адреса URL проверки, bad-site если указанный сайт не найден.

Пример реализации отправки запроса:

$curl = curl_init( 'https://www.altercpa.one/fltr/123-abcd-45' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $_SERVER );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $curl );
curl_close( $curl );
$result = $result ? json_decode( $result, true ) : [];
if ( isset( $result['action'] && $result['action'] == 'allow' ) {
    include( 'target-index.php' );
} else include( 'dummy-index.php' );

Пример успешного ответа сервера:

{
    "status": "ok",
    "action": "allow",
    "url": "http://black.site/url"
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "access-denied"
}

Настройка кампании

URL: https://www.altercpa.one/api/filter/set.json?id={token}&domain={host}

Функция изменяет параметры кампании фильтрации или создаёт новую кампанию. Если передан идентификатор кампании в поле uid, функция будет изменять существующую кампанию по этому идентификатору. Если идентификатор не передан, но передан домен кампании в поле domain, функция попытается найти кампанию с указанным доменом, а если её нет - создаст новую.

Функция может принимать на вход следующие параметры:

Поле Описание
uid Идентификатор кампании фильтрации (рекомендуется).
domain Домен или название кампании фильтрации (используйте уникальные имена).
mode Режим работы кампании:
  • 0 - Автоматика: фильтр включен (по умолчанию)
  • 1 - Пауза: всегда показывать сайт-заглушку
  • 2 - Выключен: всегда показывать целевой сайт
  • 3 - Обучение: всегда показывать сайт-заглушку
  • 4 - Обучение: всегда показывать целевой сайт
geo Список двухбуквенных ISO-кодов стран, в которых работает фильтр. Указывается массивом или строкой через запятую, например: ru,kz,by
mblack
mwhite
Режим работы целевого сайта (mblack) и сайта-заглушки (mwhite), вариант из списка:
  • 0 - Перенаправить по ссылке (302)
  • 5 - Перенаправить и склеить домен (301)
  • 6 - Перенаправить через отдельную страницу (meta)
  • 9 - Перенаправить скриптом (JS)
  • 1 - Открыть файл с таким названием
  • 2 - Показать эту ссылку во фрейме
  • 7 - Показать контент по ссылке (curl)
  • 3 - Показать контент по ссылке без изменений
  • 4 - Встроить в WordPress
  • 8 - Показать пустую страницу
black Целевой сайт: ссылка или название файла.
white Сайт-заглушка: ссылка или название файла.
trash Количество мусорных визитов, целое число, по умолчанию - 0.
proto Версия IP-протокола:
  • 0 - Принимать трафик любого протокола (по умолчанию)
  • 1 - Принимать только трафик IPv4
  • 2 - Принимать только трафик IPv6
mobile Вид допустимого трафика:
  • 0 - Любой трафик (по умолчанию)
  • 1 - Только мобильный трафик
  • 2 - Только десктоп-трафик
  • 3 - Мобильный трафик: только iOS
  • 4 - Мобильный трафик: кроме iOS
os Допустимые операционные системы, массив или список ID через запятую:
  • 5 - Android
  • 8 - BlackBerry
  • 3 - Linux
  • 2 - MacOS
  • 7 - Symbian
  • 1 - Windows
  • 6 - Windows Mobile
  • 4 - iOS
browser Допустимые браузеры, массив или список ID через запятую:
  • 1 - Chrome
  • 6 - Edge
  • 7 - Facebook
  • 2 - Firefox
  • 8 - Instagram
  • 3 - MSIE
  • 5 - Opera
  • 4 - Safari
  • 9 - Tik-Tok
  • 10 - WebView
ignore Игнорировать домен запроса и не проверять его на совпадение с названием кампании, 0 или 1 (по умолчанию).
ipmain Проверять только основной IP-адрес запроса на попадание в чёрный список, 0 или 1 (по умолчанию).
lang Проверять язык посетителя на попадание в список разрешенных стран, 0 или 1 (по умолчанию).
adid Проверять идентификатор клика рекламной сети, 0 (по умолчанию) или 1.
list Список фильтров трафика, массив или список через запятую, по умолчанию пустой.
langs Список двухбуквенных ISO-кодов допустимых языков, массив или список через запятую, по умолчанию пустой.
nogeo Список двухбуквенных ISO-кодов стран, доступ из которых запрещён. Указывайте в случае пустого списка разрешенных стран.
uwl Белый список слов в URL, указывается текстом по одному в строке.
ubl Чёрный список слов в URL, указывается текстом по одному в строке.
wl Белый список IP-адресов, указывается текстом по одному в строке, может содержать IP-адреса и подсети.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • access - указанная кампания вам не принадлежит.
  • no-site - кампания с таким идентификатором не найдена.
  • no-domain - не указан домен или название кампании.
  • db - произошла системная ошибка работы с базой данных.
id Числовой идентификатор кампании.
api Ссылка на API-функцию проверки визитов по этой кампании.

Пример успешного ответа сервера:

{
    "status": "ok",
    "id": 4567,
    "api": "https://www.altercpa.one/fltr/123-654b807372f614e64b9-4567"
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "no-domain"
}

Список кампаний

URL: https://www.altercpa.one/api/filter/list.json?id={token}

Функция возвращает список кампаний, которые созданы в разделе фильтрации трафика. Функция не имеет дополнительных параметров.

Результатом выполнения функции является список ассоциативных массивов со следующими полями:

Поле Описание
id Идентификатор кампании фильтрации.
api Ссылка API для проверки визитов по этой кампании.
domain Название кампании фильтрации.
mode Режим работы кампании (см. настройку кампании).
stats Статистика кампании фильтрации. Ассоциативный массив с полями:
  • click - общее количество визитов.
  • black - количество целевых визитов.
  • white - количество заблокированных визитов.
  • leads - общее количество лидов.
  • approve - количество подтверждённых лидов.
  • cancel - количество отклонённых лидов.
  • cash - общая сумма заработка.
  • cr - конверсия по целевым визитам.
  • epc - заработок на целевой визит.
  • appr - процент аппрува.

Пример успешного ответа сервера:

[
    {
        "id": 4567,
        "api": "https://www.altercpa.one/fltr/123-654b807372f614e64b9-4567",
        "domain": "pretty-domain.com",
        "mode": 0,
        "stats": {
            "click": 180,
            "black": 123,
            "white": 57,
            "leads": 11,
            "approve": 6,
            "cancel": 1,
            "cash": 387.44,
            "cr": 8.94,
            "epc": 3.15,
            "appr": 54.55
        }
    },
    ...
]

Получение данных кампании

URL: https://www.altercpa.one/api/filter/get.json?id={token}&domain={host}

Функция возвращает данные кампании фильтрации. Если передан идентификатор кампании в поле uid, функция будет извлекать кампанию по этому идентификатору. Если передан домен кампании в поле domain, функция будет пытаться отыскать кампанию с указанным доменом.

Функция может принимать на вход следующие параметры:

Поле Описание
uid Идентификатор кампании фильтрации (рекомендуется).
domain Домен или название кампании фильтрации (используйте уникальные имена).

Результатом выполнения функции является ассоциативный массив со следующими полями:

Поле Описание
id Идентификатор кампании фильтрации.
api Ссылка API для проверки визитов по этой кампании.
domain Название кампании фильтрации.
mode Режим работы кампании (см. настройку кампании).
geo Список двухбуквенных ISO-кодов стран, в которых работает фильтр (массив).
mblack Режим работы целевого сайта (см. настройку кампании).
black Целевой сайт: ссылка или название файла.
mwhite Режим работы сайта-заглушки (см. настройку кампании).
white Сайт-заглушка: ссылка или название файла.
trash Количество мусорных визитов.
proto Версия IP-протокола (см. настройку кампании).
mobile Вид допустимого трафика (массив, см. настройку кампании).
os Допустимые операционные системы (массив, см. настройку кампании).
browser Допустимые браузеры (массив, см. настройку кампании).
ignore Игнорировать домен запроса и не проверять его на совпадение с названием кампании.
ipmain Проверять только основной IP-адрес запроса на попадание в чёрный список.
lang Проверять язык посетителя на попадание в список разрешенных стран.
adid Проверять идентификатор клика рекламной сети.
list Список фильтров трафика (массив).
langs Список двухбуквенных ISO-кодов допустимых языков (массив).
nogeo Список двухбуквенных ISO-кодов стран, доступ из которых запрещён (массив).
uwl Белый список слов в URL (массив).
ubl Чёрный список слов в URL (массив).
wl Белый список IP-адресов (массив).
stats Статистика кампании фильтрации. Аналогично функции списка кампаний.
postback Образцы постбеков для микро-трекера. Ассоциативный массив с полями:
  • new - новый лид.
  • approve - подтверждённый лид.
  • paid - подтверждённый лид с ценой в макросе {payout}.
  • cancel - отклонённый лид.

Пример успешного ответа сервера:

{
    "id": 4567,
    "api": "https://www.altercpa.one/fltr/123-654b807372f614e64b9-4567",
    "domain": "pretty-domain.com",
    "mode": 0,
    "geo": [ "ru", "ua", "by" ],
    "mblack": 1,
    "black": "https://my-main-page.com/",
    "mwhite": 0,
    "white": "http://natribu.org/",
    "trash": 0,
    "proto": 0,
    "mobile": 0,
    "os": [],
    "browser": [],
    "ignore": false,
    "ipmain": false,
    "lang": false,
    "adid": false,
    "list": [],
    "langs": [],
    "nogeo": [],
    "uwl": [],
    "ubl": [],
    "wl": [],
    "stats": {
        "click": 180,
        "black": 123,
        "white": 57,
        "leads": 11,
        "approve": 6,
        "cancel": 1,
        "cash": 387.44,
        "cr": 8.94,
        "epc": 3.15,
        "appr": 54.55
    },
    "postback": {
        "new": "https://www.altercpa.one/api/filter/postback.json?id=123-654b807372f614e64b9&uid=11&status=new",
        "approve": "https://www.altercpa.one/api/filter/postback.json?id=123-654b807372f614e64b9&uid=11&status=approve",
        "paid": "https://www.altercpa.one/api/filter/postback.json?id=123-654b807372f614e64b9&uid=11&status=approve&payout={payout}",
        "cancel": "https://www.altercpa.one/api/filter/postback.json?id=123-654b807372f614e64b9&uid=11&status=cancel"
    }
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "no-site"
}

Удаление кампании

URL: https://www.altercpa.one/api/filter/del.json?id={token}&domain={host}

Функция удаляет кампанию фильтрации. Если передан идентификатор кампании в поле uid, функция будет удалять кампанию по этому идентификатору. Если передан домен кампании в поле domain, функция будет пытаться отыскать кампанию с указанным доменом.

Функция может принимать на вход следующие параметры:

Поле Описание
uid Идентификатор кампании фильтрации (рекомендуется).
domain Домен или название кампании фильтрации (используйте уникальные имена).

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • access - указанная кампания вам не принадлежит.
  • no-site - кампания с таким идентификатором не найдена.
  • no-domain - не указан домен или название кампании.
  • db - произошла системная ошибка работы с базой данных.
id Числовой идентификатор кампании.

Пример успешного ответа сервера:

{
    "status": "ok",
    "id": 4567
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "no-site"
}

Скачать файл фильтрации

URL: https://www.altercpa.one/api/filter/make.json?id={token}&domain={host}

Функция скачивает готовый файл для кампании фильтрации. Если передан идентификатор кампании в поле uid, функция будет извлекать кампанию по этому идентификатору. Если передан домен кампании в поле domain, функция будет пытаться отыскать кампанию с указанным доменом. Ответом функции является файл index.php.

Функция может принимать на вход следующие параметры:

Поле Описание
uid Идентификатор кампании фильтрации (рекомендуется).
domain Домен или название кампании фильтрации (используйте уникальные имена).

Результатом выполнения функции является файл index.php в случае успеха или ассоциативный массив в случае ошибки:

Поле Описание
status Результат выполнения операции: error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • access - указанная кампания вам не принадлежит.
  • no-site - кампания с таким идентификатором не найдена.
  • no-domain - не указан домен или название кампании.

Заблокировать IP-адрес или заголовок

URL: https://www.altercpa.one/api/filter/block.json?id={token}&list={list}&ip={ip}

Функция добавляет данные в выбранный персональный чёрный список. Может блокировать как IP-адреса и диапазоны, так и заголовки. Содержимое полей и используемые идентификаторы описаны в документации по чёрным спискам.

Функция может принимать на вход следующие параметры:

Поле Описание
list Идентификатор чёрного списка (обязательный параметр).
ip IP-адрес или адрес подсети, которую необходимо заблокировать.
size Размер подсети для блокировки (рекомендуется 24 для IPv4 и 64 для IPv6).
value Содержимое заголовка для блокировки.
regex Использовать проверку по регулярному выражению вместо поиска подстроки, 0 или 1.
type Тип заголовка для блокировки (см. документацию по чёрным спискам).
comment Комментарий к заблокированной сущности (см. документацию по чёрным спискам).

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • bad-list - некорректный ID чёрного списка.
  • bad-ip - IP-адрес невалидный.
  • bad-size - некорректный размер подсети.
  • bad-value - некорректное содержимое заголовка для блокировки.
  • bad-type - некорректный тип блокируемого заголовка.
  • failed - произошла системная ошибка работы с базой данных.

Пример успешного ответа сервера:

{
    "status": "ok",
    "id": 1234567
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "bad-list"
}

Отправить постбек в мини-трекер

URL: https://www.altercpa.one/api/filter/postback.json?id={token}&uid={uid}&status={status}

Функция отвечает за обслуживание встроеного мини-трекера. Она увеличивает счётчик лидов в статусе ожидание, аппрув и отмена, а также наращивает сумму заработка. Не поддерживает какую-либо дедупликацию событий.

Функция может принимать на вход следующие параметры:

Поле Описание
uid Идентификатор кампании фильтрации (обязательный параметр).
status Статус лида (обязательный параметр):
  • Новый - lead, wait, process, hold, new
  • Подтверждён - approve, sale, approved, confirm, confirmed
  • Отклонён - cancel, trash, cancelled, reject, fake
payout Сумма выплаты для подтверждённого лида.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • no-id - не указан ID кампании фильтрации.
  • bad-id - некорректный ID кампании фильтрации.
  • bad-status - не удалось распознать статус.

Пример успешного ответа сервера:

{
    "status": "ok"
}

Пример ошибочного ответа сервера:

{
    "status": "error",
    "error": "bad-status"
}

Интеграция с трекером

Функции интеграции отвечают за подключение сторонних сервисов и передачу данных о конверсиях.

Постбек

URL: https://www.altercpa.one/api/tracker/postback.json?id={token}&click={click}

Самая главная функция взаимодействия с трекером. Создаёт новый или изменяет существующий лид по отправленным ID клика или потока. Вы можете использовать два варианта вызова:

Функция может принимать на вход следующие параметры:

Поле Описание
click Символьный идентификатор клика.
flow Символьный идентификатор потока.
uid Уникальный идентификатор лида на стороне рекламодателя.
status Статус лида, оптимально: new, hold, approve, cancel, trash.
goal Символьный идентификатор цели.
price Цена лида.
currency Трёхсимвольный ISO-код валюты лида, по умолчанию usd.
convert ISO-код валюты, в которую нужно конвертировать сумму выплаты, по умолчанию не используется.
name Имя покупателя.
phone Телефон покупателя (без валидации и коррекции).
email E-mail покупателя (без валидации и коррекции).
comment Произвольный комментарий к лиду.
meta[xxx] Произвольное поле лида с названием xxx.
utm_source Метка UTM Source на замену полученной из клика.
utm_campaign Метка UTM Campaign на замену полученной из клика.
utm_content Метка UTM Content на замену полученной из клика.
utm_term Метка UTM Term на замену полученной из клика.
utm_medium Метка UTM Medium на замену полученной из клика.
subid Метка SubID на замену полученной из клика.
adid Идентификатор рекламного перехода на замену полученному из клика.
data1 Произвольные данные 1 на замену полученных из клика.
data2 Произвольные данные 2 на замену полученных из клика.
stn Статус или список статусов, которые распознаются как новый лид.
sth Статус или список статусов, которые распознаются как лид в холде.
sta Статус или список статусов, которые распознаются как подтверждение лида.
stc Статус или список статусов, которые распознаются как отмена лида.
stt Статус или список статусов, которые распознаются как треш.
ip IP-адрес лида.
geo Двухбуквенный ISO-код страны лида.
ua User-Agent лида для определения ОС и браузера.
referer Реферер визита на замену полученному из клика.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • access - указанный клик или поток вам не принадлежит.
  • bad-click - клик с таким идентификатором не найден.
  • bad-flow - поток с таким идентификатором не найден.
  • db - произошла системная ошибка работы с базой данных.
  • no-changes - изменений не потребовалось, лид уже в нужном состоянии.
  • no-click - не указаны ID клика и потока.
id Числовой идентификатор лида, с которым выполнялись действия.
create Если был создан новый лид - true, если был изменён существующий - false.
stage Статус, в котором пребывает лид: new, hold, approve, cancel, trash.

Пример успешного ответа сервера:

{
    "status": "ok",
    "id": 1337,
    "create": true,
    "stage": "new"
}

Пример ответа сервера с ошибкой:

{
    "status": "error",
    "error": "no-changes"
}

Импорт расходов

URL: https://www.altercpa.one/api/tracker/spend.json?id={token}

Функция задаёт цену клика для трафика по указанным условиям. Позволяет использовать функционал расчёта ROI. Данные могут передаваться как в GET, так и в POST-запросе. В запросе обязательно должны присутствовать параметры cpc или cost и хотя бы одно условие (даты, поток, UTM-метки).

Функция может принимать на вход следующие параметры:

Поле Описание
cost Общая цена за все клики этого периода.
cpc Цена за один клик.
from Дата начала периода в формате ГГГГ-ММ-ДД, Unix Timestamp или любом другом, распознаваемом функцией strtotime.
to Дата конца периода в формате ГГГГ-ММ-ДД, Unix Timestamp или любом другом, распознаваемом функцией strtotime.
flow Символьный идентификатор потока. Можно передать массив идентификаторов.
way Числовой идентификатор пути внутри потока. Можно передать массив идентификаторов.
currency Трёхсимвольный ISO-код валюты цены клика, по умолчанию usd.
geo Двухбуквенный ISO-код страны клика.
domain Домен, на котором был зарегистрирован клик.
utm_source Метка UTM Source, по которой был зарегистрирован клик.
utm_campaign Метка UTM Campaign, по которой был зарегистрирован клик.
utm_content Метка UTM Content, по которой был зарегистрирован клик.
utm_term Метка UTM Term, по которой был зарегистрирован клик.
utm_medium Метка UTM Medium, по которой был зарегистрирован клик.
subid Метка SubID, по которой был зарегистрирован клик.
valid Устанавливать цену только для валидных кликов: целевых кликов, которые прошли фильтр.
unique Устанавливать цену только уникальных кликов.

Вы также можете одновременно обновлять несколько ценников одним запросом, для этого объедините все запросы в массив batch и отправьте его через POST, например:

{
    "batch": [
        {
            "flow": "face",
            "cost": 1984,
            "currency": "usd"
        },
        {
            "from": "2020-04-04 00:00:00",
            "to": "2020-04-07 23:59:59",
            "cpc": 1.337,
            "currency": "eur"
        }
    ]
}

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
error Код ошибки для статуса error со значением из списка:
  • empty - нет данных для внесения в ценники.
ok / bad Количество успешных и неудачных запросов на установку цены. Обычно, содержит ответ ok=1

Пример успешного ответа сервера:

{
    "status": "ok",
    "ok": 1,
    "bad": 0
}

Пример ответа сервера с ошибкой:

{
    "status": "error",
    "error": "empty"
}

Статистика трекера

Функции статистики предоставляют доступ к отчётам по лидам и кликам.

Список лидов

URL: https://www.altercpa.one/api/tracker/leads.json?id={token}

Функция извлекает список лидов и выдаёт его в виде ассоциативного массива в поле leads. У функции нет формальных лимитов на количество выводимых лидов, но не рекомендуется выгружать больше тысячи лидов за раз. Если вы получили ошибку 500, значит на ваш запрос не хватило памяти, нужно уменьшить период запроса.

Функция может принимать на вход следующие GET-параметры фильтрации:

Поле Описание
from Дата начала отчёта в формате ГГГГ-ММ-ДД и часовом поясе трекера.
to Дата окончания отчёта в формате ГГГГ-ММ-ДД и часовом поясе трекера.
ufrom Дата начала отчёта в формате Unix Timestamp.
uto Дата окончания отчёта в формате Unix Timestamp.
status Символьный статус лида:
  • new - новые лиды.
  • hold - лиды в холде.
  • approve - подтверждённые лиды.
  • cancel - отклонённые лиды.
  • trash - лиды в треше.
  • valid - валидные лиды (всё кроме треша).
  • wait - лиды в ожидании (новые и холд).
  • good - удачные лиды (холд и аппрув).
  • bad - неудачные лиды (отмена и треш).
geo Двухбуквенный ISO-код страны лида.
flow Символьный идентификатор потока.
way Числовой идентификатор пути.
click Символьный идентификатор клика.
site Числовой идентификатор сайта.
goal Символьный идентификатор цели.
filter Результат работы фильтров:
  • 0 - целевые визиты.
  • 1 - блокировка: бот.
  • 2 - блокировка: чёрный список.
  • 3 - блокировка: страна.
  • 4 - блокировка: язык.
  • 5 - блокировка: кампания фильтрации.
domain Домен, с которого был отправлен лид.
ip IP-адрес лида.
utm_source Значение метки UTM Source.
utm_campaign Значение метки UTM Campaign.
utm_content Значение метки UTM Content.
utm_term Значение метки UTM Term.
utm_medium Значение метки UTM Medium.
subid Значение метки SubID.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
leads Массив лидов, состав полей разобран далее.
error Код ошибки для статуса error со значением из списка:
  • access - вы пытаетесь получить доступ к данным, которые вам не принадлежат.
  • payment-required - ваша подписка истекла, продлите подписку.

Внутри поля leads лиды представлены ассоциативным массивом с полями:

Поле Описание
id Числовой идентификатор лида.
time Время поступления лида в формате UNIX Timestamp.
click Символьный идентификатор клика.
uid Уникальный идентификатор лида на стороне рекламодателя.
flow Символьный идентификатор потока.
way Числовой идентификатор пути.
site Числовой идентификатор сайта.
siteurl URL сайта.
filter Результат работы фильтров:
  • 0 - целевые визиты.
  • 1 - блокировка: бот.
  • 2 - блокировка: чёрный список.
  • 3 - блокировка: страна.
  • 4 - блокировка: язык.
  • 5 - блокировка: кампания фильтрации.
status Символьный статус лида:
  • new - новый лид.
  • hold - лид в холде.
  • approve - подтверждённый лид.
  • cancel - отклонённый лид.
  • trash - лид в треше.
custom Реальный текстовый статус лида, который был отправлен рекламодателем.
goal Символьный идентификатор цели.
price Цена лида (есть всегда независимо от статуса).
currency Валюта цены лида, по умолчанию usd.
ip IP-адрес лида.
geo Двухбуквенный ISO-код страны лида.
name Имя покупателя.
phone Телефон покупателя (без коррекции и валидации).
email Email покупателя (без коррекции и валидации).
comment Комментарий к лиду.
meta Массив дополнительных полей лида.
ua User Agent браузера.
referer Реферер, с которого был отправлен лид.
adid Идентификатор рекламного клика (fbclid, gclid, adclid, clid, adid).
data1 Произвольные данные 1.
data2 Произвольные данные 2.
domain Домен, с которого был отправлен лид.
utm_source Значение метки UTM Source.
utm_campaign Значение метки UTM Campaign.
utm_content Значение метки UTM Content.
utm_term Значение метки UTM Term.
utm_medium Значение метки UTM Medium.
subid Значение метки subid.

Пример успешного ответа сервера:

{
    "status": "ok",
    "leads": [
        {
            "id": 1,
            "time": 1691303223,
            "click": "ac13",
            "uid": "c1vvkg272m16",
            "flow": "ecb4",
            "way": 123,
            "site": 42,
            "siteurl": "https://meow.pro/c8/cfb72fe561f0/",
            "filter": 0,
            "status": "approve",
            "custom": "Confirmed",
            "goal": "paid",
            "price": 18,
            "currency": "usd",
            "ip": "12.34.56.78",
            "geo": "de",
            "name": "Hans",
            "phone": "+49 (30) 226-511-83",
            "email": "[email protected]",
            "comment": "Confirmed on sunday",
            "meta": {
                "foo": "bar",
                "bar": "foo"
            },
            "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Safari\605.1.15",
            "referer": "https://meow.pro/c8/cfb72fe561f0/?subid=purr",
            "adid": "bf9d4aa8-4979-11ee-94c6-005056aec456",
            "data1": "wj80b89eit8epaarikhe2oge",
            "data2": false,
            "utm_source": "fb",
            "utm_campaign": "1013444211662",
            "utm_content": "432211555332166",
            "utm_term": false,
            "utm_medium": false,
            "domain": "meow.pro",
            "subid": "purr"
        },
        ...
    ]
}

Пример ответа сервера с ошибкой:

{
    "status": "error",
    "error": "payment-required"
}

Статистика по кликам

URL: https://www.altercpa.one/api/tracker/stats.json?id={token}

Функция собирает общую статистику по количеству кликов и лидов с разбивкой по целям за выбранный период по указанному критерию.

Функция может принимать на вход следующие GET-параметры фильтрации:

Поле Описание
from* Дата начала отчёта в формате ГГГГ-ММ-ДД (обязательно).
to* Дата окончания отчёта в формате ГГГГ-ММ-ДД (обязательно).
item* Элемент, по которому группируется статистика (обязательно):
  • date - дата поступления клика и лида.
  • hour - час поступления клика и лида.
  • flow - поток.
  • way - путь.
  • site - сайт.
  • filter - результаты фильтрации.
  • geo - страна.
  • mobile - устройство.
  • os - операционная система.
  • browser - браузер.
  • ip - IP-адрес.
  • utmd - домен.
  • subid - метка SubID.
  • utms - метка UTM Source.
  • utmc - метка UTM Campaign.
  • utmn - метка UTM Content.
  • utmt - метка UTM Term.
  • utmm - метка UTM Medium.
geo Двухбуквенный ISO-код страны лида.
flow Символьный идентификатор потока.
way Числовой идентификатор пути.
site Числовой идентификатор сайта.
filter Результат работы фильтров:
  • 0 - целевые визиты.
  • 1 - блокировка: бот.
  • 2 - блокировка: чёрный список.
  • 3 - блокировка: страна.
  • 4 - блокировка: язык.
  • 5 - блокировка: кампания фильтрации.
hour Час поступления лида (число от 0 до 23).
mobile Тип трафика:
  • 0 - десктоп-трафик.
  • 1 - мобильный трафик.
os Операционная система:
  • 0 - Other
  • 1 - Windows
  • 2 - MacOS
  • 3 - Linux
  • 4 - iOS
  • 5 - Android
  • 6 - Windows Mobile
  • 7 - Symbian
  • 8 - BlackBerry
browser Браузер:
  • 0 - Other
  • 1 - Chrome
  • 2 - Firefox
  • 3 - MSIE
  • 4 - Safari
  • 5 - Opera
  • 6 - Edge
  • 7 - Facebook
  • 8 - Instagram
  • 9 - Tik-Tok
  • 10 - WebView
  • 11 - Bot
domain Домен, с которого был отправлен лид.
ip IP-адрес лида.
utm_source Значение метки UTM Source.
utm_campaign Значение метки UTM Campaign.
utm_content Значение метки UTM Content.
utm_term Значение метки UTM Term.
utm_medium Значение метки UTM Medium.
subid Значение метки subid.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки.
stats Массив результатов статистики, состав полей разобран далее.
total Суммарные результаты по всему запросу.
error Код ошибки для статуса error со значением из списка:
  • access - вы пытаетесь получить доступ к данным, которые вам не принадлежат.
  • no-item - не указан критерий, по которому необходимо собрать статистику.
  • no-from - не указана дата начала периода статистики.
  • no-to - не указана дата окончания периода статистики.
  • payment-required - ваша подписка истекла, продлите подписку.

Массив stats и поле total представляют собой ассоциативный массив:

Поле Описание
id Идентификатор элемента статистики.
name Название элемента статистики.
click Общее количество кликов.
unique Количество уникальных кликов.
total Общее количество лидов.
cv Количество валидных лидов.
cn Количество новых лидов.
ch Количество лидов в холде.
ca Количество подтверждённых лидов.
cc Количество отклонённых лидов.
ct Количество лидов в треше.
mt Общая сумма заработка.
mh Сумма заработка по лидам в холде.
ma Сумма заработка по подтверждённым лидам.
cr Конверсия: соотношение валидных лидов к уникальным кликам.
epc EPC: соотношение подтверждённого заработка к уникальным кликам.
appr Аппрув: соотношение подтверждённых лидов к валидным.
app Общий аппрув: соотношение подтверждённых лидов ко всем лидам.
goal Массив со статистикой по каждой отдельной цели. Содержит такие же поля, как остальная статистика, за исключением количества кликов.

Пример успешного ответа сервера:

{
    "status": "ok",
    "stats": {
        "20230805": {
            "id": 20230805,
            "name": "2023-08-05",
            "click": 44,
            "unique": 22,
            "total": 6,
            "cv": 4,
            "cn": 1,
            "ch": 1,
            "ca": 2,
            "cc": 0,
            "ct": 2,
            "mh": 20.0,
            "ma": 135.0,
            "mt": 155.0,
            "cr": 18.2,
            "epc": 6.75,
            "appr": 66.7,
            "app": 33.3
        },
        ...
    },
    "total": {
        "click": 175,
        "unique": 58,
        "total": 25,
        "cv": 23,
        "cn": 11,
        "ch": 8,
        "ca": 9,
        "cc": 0,
        "ct": 2,
        "mh": 160.0,
        "ma": 1200.0,
        "mt": 1360.0,
        "cr": 5.17,
        "epc": 12.3,
        "appr": 46.7,
        "app": 31.0
    }
}

Пример ответа сервера с ошибкой:

{
    "status": "error",
    "error": "no-item"
}