Документация — различия между версиями
Материал из CPA Trafa Red
Root (обсуждение | вклад) (→Отправка заказов) |
Root (обсуждение | вклад) (→Парковка домена с помощью IP и A записи) |
||
Строка 462: | Строка 462: | ||
</gallery> | </gallery> | ||
Все, домен добавлен, можете его использовать в работе. | Все, домен добавлен, можете его использовать в работе. | ||
+ | |||
+ | |||
+ | |||
+ | = <u>Парковка домена с помощью '''IP и A''' записи</u>= |
Версия 18:44, 26 декабря 2017
Содержание
Отправка лидов
Установка на лендинге спец. кода
При подключении оффера можно получить специальный код который генерирует форму заказа. Для этого в панеле управления перейдите по ссылке "Все офферы" и на нужном Вам оффере нажмите кнопку "Подключить". После заполенения формы с настройками для будущей кампании, внизу страницы, откройте пункт "У меня есть свои лендинги и прелендинги" и скопируйте сгенерированный код. Разместите код у себя на лендинге.
Пример использования спец. кода
- Следующий код является тестовым. Актуальный код генерируется при подключении оффера
<!-- CPA script --> <script language="javascript">!function(t,e){var a=t.getElementsByTagName("head")[0],c=t.createElement("script"),n=function(){a.appendChild(c,a)},r="http://cpa.trafared.local/j2/original_parfume?data=eyJ1dG1fY2FtcGFpZ24iOiJhV1JyZmdqOCIsInV0bV9zb3VyY2UiOiIiLCJ1dG1fY29udGVudCI6IiIsInN1Yl9pZCI6IiJ9";c.type="text/javascript",c.async=!0,c.src=r+location.search,n()}(document,window);</script> <!-- Order form #1 --> <span class="cpa-form-wrapper"></span>
- Простой пример как выглядит ленгинд после вставки кода:
<!DOCTYPE html> <html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Жидкий Каштан</title> <style type="text/css"> .cpa-form-wrapper { border: solid 1px; border-radius: 5px; padding: 10px; width: 250px; display: block; } .cpa-form-wrapper form { margin: 0; } .cpa-form-wrapper .cpa-form-group { position: relative; margin: 0 0 3px 0; } .cpa-form-wrapper .cpa-control-label { width: 80px; } .cpa-form-wrapper .cpa-group-field { width: 160px; } .cpa-form-wrapper .cpa-control-label, .cpa-form-wrapper .cpa-group-field { display: inline-block; } </style> </head> <body> <!-- CPA script --> <script language="javascript">!function(t,e){var a=t.getElementsByTagName("head")[0],c=t.createElement("script"),n=function(){a.appendChild(c,a)},r="http://cpa.trafared.local/j2/original_parfume?data=eyJ1dG1fY2FtcGFpZ24iOiJhV1JyZmdqOCIsInV0bV9zb3VyY2UiOiIiLCJ1dG1fY29udGVudCI6IiIsInN1Yl9pZCI6IiJ9";c.type="text/javascript",c.async=!0,c.src=r+location.search,n()}(document,window);</script> <!-- Order form #1 --> <span class="cpa-form-wrapper"></span> </body> </html>
- В результате будет загружена HTML форма следующего вида:
Каждый элемент формы имеет свой атрибут class. Это позволит оформить форму абсолютно под любой дизайн!
Postback ссылка
Postback ссылка - Ссылка, которая вызывается после оформления заказа. С помощью переменных-подстановки в ссылке можно передать дополнительную информацию о заказе. Можно использовать следующие переменные:
- {utm_campaign} - Генерируется системой при подключении кампании
- {utm_source} - Указывается при подключении кампании
- {utm_content} - Указывается при подключении кампании
- {sub_id} - Указывается при подключении кампании
- {time} - Время оформления заказа. Формат: Y-m-d H:i:s
- {offer} - Техническое название оффера. Например: brown_liquid
- {order_id} - ID заказа
- {country} - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре
- {params} - Остальные GET параметры которые были переданы при оформлении заказа
- {payout} - Выплата за заказ
http://example.com/postback.php?utm_campaign={utm_campaign}&utm_source={utm_source}&utm_content={utm_content}&sub_id={sub_id}&time={time}&offer={offer}&order_id={order_id}&country={country}&{params}
Работа с API
Общая информация
Для работы с API Вам понадобится uid и key (их можно узнать на странице "Настройки" Вашего профиля). Все запросы принимаются на URL http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}&lang={lang}
- {method} - Название метода. Строка состоящая из цифр и латинских букв.
- {uid} - Идентификатор пользователя API. Натуральное число больше нуля.
- {key} - Ключь доступа к API. Строка из 32-х символов содержащая цифры и латинскии буквы.
- {lang} - Язык сообщений. не объязательный атрибут. Доступные значения: en, ru. По умолчанию: en.
Данные принимаются методом POST в кодировке UTF-8 Ответом на запрос будет JSON строка в которой объязательно присутствуют аттрибуты success, msg и возможно дополнительный атрибут data
Получение списка доступных офферов
Метод для получения списка офферов: getOffersInfo
Пример:
$uid = ""; // Ваш UID $key = ""; // Ваш ключь $url = str_replace(array("{method}", "{uid}", "{key}"), array("getOffersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}"); $offers = file_get_contents($url); $offers = json_decode($offers, true); var_dump($offers);
Получение информации о заказах
Метод для получения информации о заказах: 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.
Внимание! Во избежание нагрузки, системой ограничено максимальное количество возвращаемых результатов! Количество результатов всегда будет не больше 1000.
Пример ответа
Пример ответа об ошибке:
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] => --- ) ) )
Отправка заказов
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"}
Идёт проверка по каждому обязательному полю.
Парковка доменов с помощью NS записи
Для того чтобы Ваш домен работал с нашими лендингами, укажите следующие NS:
- NS1: josh.ns.cloudflare.com
- NS2: lady.ns.cloudflare.com
Но, сначала нужно припарковать домен в нашей системе, а потом прописывать NS у себя! На странице создания "Кампании" в разделе "Использовать готовые лендинги и прелендинги" нажмите ссылку "парковка домена". В отобразившемся поле вводим полное доменное имя (например http://domain.com/). Выбираем понравившийся лендинг или прелендинг из списка.
Список доменов
- landos.info
- lendos.biz
- protekt.name
- ekotovary.com
- ekonaturali.com
- natural.name
- kosmetic.info
- tovarvsem.com
- asiatovar.com
- tovar2u.com
Парковка домена с помощью IP и A записи
Домены внесённые в список, будут доступны для выбора при создании кампании. Все эти домены будут припаркованы в момент создания кампании, так как обязательным является лендинг который будет привязан к домену. Также для этих доменов нужно будет самим прописать IP 80.208.231.51 в A записи, в панели управления доменом на сайте реестратора. В активном поле вписываем нужный домен и нажимаем на кнопку добавления, после чего желаемый домен будет добавлен в перечень Ваших.
После данных действий, Вы можете переходить в список офферов -"Все офферы" и нажать на кнопку "Подключить"
В перечне списка "Домен лендинга", Вы увидите подраздел с названием "Свои домены", и ниже те домены что Вы добавили в систему
Все, домен добавлен, можете его использовать в работе.