Документация
Материал из CPA Trafa Red
Отправка лидов
I. Установка на лендинге спец. кода
II. Пример использования спец. кода
Postback ссылка
Работа с API
I. Общая информация
II. Получение списка доступных Офферов
III. Получение информации о заказах
IV. Пример ответа
V. Отправка заказов
Парковка доменов
III. Получение информации о заказах
Метод для получения информации о заказах: getOrdersInfo.
Реализовано несколько фильтров для получения информации (поле filter_by)
- date - Для фильтрации по дате
- date_range - Для фильтрации по диапазону дат
- ids - Для фильтрации по списку ID заказов
- campaign - Для фильтрации по имени кампании
Для фильтрации по дате нужно дополнительно передать аттрибут date в формате Y-m-d.
Для фильтрации по диапазону дат указать date_from и date_to в формате Y-m-d.
Для фильтрации по ID нужно дополнительно передать аттрибут ids ids с массивом натуральных чисел больше нуля.
Для фильтрации по имени кампании нужно дополнительно передать аттрибут campaign с именем кампании.
Фильтрация по дате:
$uid = ""; // Ваш UID $key = ""; // Ваш ключь $post = array( "filter_by" => "date", "date" => "2017-06-23" ); $url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache')); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true));
Фильтрация по диапазону дат:
$uid = ""; // Ваш UID $key = ""; // Ваш ключь $post = array( "filter_by" => "date_range", "date_from" => "2017-06-16", "date_to" => "2017-06-23" ); $url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache')); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true));
Фильтрация по ID
$uid = ""; // Ваш UID $key = ""; // Ваш ключь $post = array( "filter_by" => "ids", "ids" => array(1, 2, 3, 4) ); $url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache')); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true));
Фильтрация по имени кампании:
$uid = ""; // Ваш UID $key = ""; // Ваш ключь $post = array( "filter_by" => "campaign", "campaign" => "esH9fgrp" ); $url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache')); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true));
Дополнительно в POST можно передать атрибут limit для ограничения количества возвращаемых результатов. Допустимое значение от 1 до 1000.
Внимание! Во измбежание нагрузки, системой ограничено максимальное количество возвращаемых результатов! <br>Количество результатов всегда будет не больше 1000.
IV. Пример ответа
Пример ответа об ошибке:
Array ( [success] => FALSE [msg] => The filter_by field must be one of: date,date_range,ids,campaign. )
Пример ответа с пустым результатом:
Array ( [success] => TRUE [msg] => No results found [data] => Array ( ) )
Пример ответа об успешном выполнении запроса:
Array ( [success] => TRUE [msg] => OK [data] => Array ( [100009] => Array ( [order_id] => 100009 [client_country] => ua [client_fio] => Test Order 1 [client_phone] => 12345*7 [client_address] => [order_offer] => medical_braslet [order_count] => [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=1 [system_status] => -1 [send_status] => 1 [payment_status] => 0 [payment_status_msg] => Не выплачено [description] => Incorrect phone number 1234567 [campaign] => jWC6fN1h [system_status_msg] => Ошибка [send_status_msg] => --- ) [100010] => Array ( [order_id] => 100010 [client_country] => ua [client_fio] => Test Order 2 [client_phone] => 12345*7 [client_address] => [order_offer] => medical_braslet [order_count] => [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=2 [system_status] => -1 [send_status] => 1 [payment_status] => 0 [payment_status_msg] => Не выплачено [description] => Incorrect phone number 1234567 [campaign] => jWC6fN1h [system_status_msg] => Ошибка [send_status_msg] => --- ) [100011] => Array ( [order_id] => 100011 [client_country] => ua [client_fio] => Test Order 3 [client_phone] => 12345*7 [client_address] => [order_offer] => medical_braslet [order_count] => [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=3 [system_status] => -1 [send_status] => 1 [payment_status] => 0 [payment_status_msg] => Не выплачено [description] => Incorrect phone number 1234567 [campaign] => jWC6fN1h [system_status_msg] => Ошибка [send_status_msg] => --- ) ) )
V. Отправка заказов
URL = http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXX
где uid и key можно найти у себя в профайле, после регистрации на cpa.trafa.red
На указаный адрес отправлять запросы методом POST. Все ответы будут в формате json.
Можно отправлять от 1 до 100 заказов за один раз. Если больше, - они просто не будут отрабатыватся.
Поля закаказа:
- country - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре (*обязательное)
- fio - ФИО (*)
- phone - Номер телефона (*)
- offer - Техническое название оффера. Например: brown_liquid. Список доступных офферов можно взять отсюда /Api/getOffers (*)
- campaign - Название кампании, генерируется на стороне трафареда (*)
- address - Адрес
- price - Цена
- count - Количество
- offer_attribute - Свойство оффера "аттрибут"
- offer_color - Свойство оффера "цвет"
- offer_size - Свойство оффера "размер"
- offer_type - Свойство оффера "тип"
- offer_vendor - Свойство оффера "бренд"
- utm_campaign - Метка utm_campaign
- utm_content - Метка utm_content
- utm_source - Метка utm_source
- utm_medium - Метка utm_medium
- utm_term - Метка utm_term
- sub_id - Метка sub_id
- landing_url - Полный URL страницы заказа
- time - Время оформления заказа. Формат: Y-m-d H:i:s
- ip - IP клиента
Масивы с даными заказа оберывается в глобальный масив orders.
Пример запроса на php :
$post = array( 'orders' => array( array( 'country' => "ua", 'fio' => "FIO 1", 'phone' => "0941234567", 'offer' => "free_fuel_econom", 'campaign' => "6RZd82qsF", 'utm_campaign' => "", 'utm_content' => "", 'utm_source' => "", 'utm_medium' => "", 'utm_term' => "", 'sub_id' => "", 'landing_url' => "", 'time' => "", 'ip' => "", 'offer_vendor' => "", 'offer_type' => "", 'offer_size' => "", 'offer_color' => "", 'offer_attribute' => "", 'count' => "", 'price' => "", 'address' => "", ), array( 'country' => "kg", 'fio' => "FIO 2", 'phone' => "0941234567", 'offer' => "free_fuel_econom", 'campaign' => "6RZd82qsF", 'address' => "", 'price' => "", 'count' => "", 'offer_attribute' => "", 'offer_color' => "", 'offer_size' => "", 'offer_type' => "", 'offer_vendor' => "", 'utm_campaign' => "", 'utm_content' => "", 'utm_source' => "", 'utm_medium' => "", 'utm_term' => "", 'sub_id' => "", 'landing_url' => "", 'time' => "", 'ip' => "", ), ) ); $postFields = http_build_query($post); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXXX', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $postFields )); $resp = curl_exec($curl); curl_close($curl);
Варианты ответа
Если всё прошло гладко:
[{"success":true,"id":191776,"msg":1},{"success":true,"id":191777,"msg":1}]
Если есть ошибка:
[{"success":false,"id":false,"msg":"Wrong Offer name. Must be > 3 chars AND must exist"},{"success":false,"id":false,"msg":"Unknown country code"}
Идёт проверка по каждому обязательному полю.