Действия

Документация — различия между версиями

Материал из CPA Trafa Red

(III. Получение информации о заказах)
(Скачивание лендингов из раздела Мои Кампании)
 
(не показано 175 промежуточных версий этого же участника)
Строка 1: Строка 1:
Отправка лидов
+
=<u>Отправка лидов</u>=
<br>I. Установка на лендинге спец. кода
 
<br>II. Пример использования спец. кода
 
<br>Postback ссылка
 
<br>Работа с API
 
<br>I. Общая информация
 
<br>II. Получение списка доступных Офферов
 
<br>III. Получение информации о заказах
 
<br>IV. Пример ответа
 
<br>V. Отправка заказов
 
Парковка доменов
 
===III. Получение информации о заказах===
 
  
 +
===Установка на лендинге спец. кода===
 +
При подключении оффера можно получить специальный код который генерирует форму заказа. Для этого в панеле управления перейдите по ссылке "Все офферы" и на нужном Вам оффере нажмите кнопку "Подключить". После заполенения формы с настройками для будущей кампании, внизу страницы, откройте пункт "У меня есть свои лендинги и прелендинги" и скопируйте сгенерированный код. Разместите код у себя на лендинге.
 +
 +
===Пример использования спец. кода===
 +
 +
:<font color="red">Следующий код является тестовым. Актуальный код генерируется при [http://cpa.trafa.red/offers подключении оффера]</font>
 +
<blockquote><pre>
 +
<!-- 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></pre></blockquote>
 +
:Простой пример как выглядит ленгинд после вставки кода:
 +
 +
<blockquote><pre>
 +
<!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></pre></blockquote>
 +
:В результате будет загружена HTML форма следующего вида:
 +
<gallery>
 +
wiki23.png|
 +
</gallery>
 +
Каждый элемент формы имеет свой атрибут <font color="red">class</font>. Это позволит оформить форму абсолютно под любой дизайн!
 +
 +
----
 +
 +
=<u>Postback ссылка</u>=
 +
'''Postback ссылка''' - Ссылка, которая вызывается после оформления заказа. С помощью переменных-подстановки в ссылке можно передать дополнительную информацию о заказе.
 +
Можно использовать следующие переменные:
 +
*<font color="red">{utm_campaign}</font> - Генерируется системой при подключении кампании
 +
*<font color="red">{utm_source}</font> - Указывается при подключении кампании
 +
*<font color="red">{utm_content}</font> - Указывается при подключении кампании
 +
*<font color="red">{sub_id}</font> - Указывается при подключении кампании
 +
*<font color="red">{time}</font> - Время оформления заказа. Формат: Y-m-d H:i:s
 +
*<font color="red">{offer}</font> - Техническое название оффера. Например: brown_liquid
 +
*<font color="red">{order_id}</font> - ID заказа
 +
*<font color="red">{country}</font> - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре
 +
*<font color="red">{params}</font> - Остальные GET параметры которые были переданы при оформлении заказа
 +
*<font color="red">{payout}</font> - Выплата за заказ
 +
<blockquote><pre>
 +
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} </pre></blockquote>
 +
 +
----
 +
 +
=<u>Работа с API</u>=
 +
===Общая информация===
 +
Для работы с API Вам понадобится <font color="red">uid</font> и <font color="red">key</font>  (их можно узнать на странице "Настройки" Вашего профиля).
 +
Все запросы принимаются на  <font color="red">URL http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}&lang={lang}</font>
 +
*<font color="red">{method}</font> - Название метода. Строка состоящая из цифр и латинских букв.
 +
*<font color="red">{uid}</font> - Идентификатор пользователя API. Натуральное число больше нуля.
 +
*<font color="red">{key}</font> - Ключь доступа к API. Строка из 32-х символов содержащая цифры и латинскии буквы.
 +
*<font color="red">{lang}</font> - Язык сообщений. не объязательный атрибут. Доступные значения: en, ru. По умолчанию: en.
 +
Данные принимаются методом POST в кодировке UTF-8
 +
Ответом на запрос будет JSON строка в которой объязательно присутствуют аттрибуты <font color="red">success, msg</font> и возможно дополнительный атрибут <font color="red">data</font>
 +
 +
===Получение списка доступных офферов===
 +
Метод для получения списка офферов:  <font color="red">getOffersInfo</font>
 +
<br>'''Пример''':
 +
<blockquote><pre>
 +
$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);
 +
</pre></blockquote>
 +
 +
===Получение информации о заказах===
 
<br>Метод для получения информации о заказах: <font color="red">getOrdersInfo</font>.
 
<br>Метод для получения информации о заказах: <font color="red">getOrdersInfo</font>.
 
<br>Реализовано несколько фильтров для получения информации (поле <font color="red">filter_by</font>)
 
<br>Реализовано несколько фильтров для получения информации (поле <font color="red">filter_by</font>)
Строка 22: Строка 124:
 
<br>Для фильтрации по ID нужно дополнительно передать аттрибут  <font color="red">ids</font> ids с массивом натуральных чисел больше нуля.
 
<br>Для фильтрации по ID нужно дополнительно передать аттрибут  <font color="red">ids</font> ids с массивом натуральных чисел больше нуля.
 
<br>Для фильтрации по имени кампании нужно дополнительно передать аттрибут <font color="red">campaign</font> с именем кампании.
 
<br>Для фильтрации по имени кампании нужно дополнительно передать аттрибут <font color="red">campaign</font> с именем кампании.
----  
+
----
 
'''Фильтрация по дате:'''
 
'''Фильтрация по дате:'''
<pre>$uid = ""; // Ваш UID
+
<blockquote><pre>$uid = ""; // Ваш UID
 
$key = ""; // Ваш ключь
 
$key = ""; // Ваш ключь
  
Строка 45: Строка 147:
  
 
var_dump(json_decode($result, true));
 
var_dump(json_decode($result, true));
</pre>
+
</pre></blockquote>
 +
----
 +
'''Фильтрация по диапазону дат:'''
 +
<blockquote><pre>
 +
$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));
 +
</pre></blockquote>
 +
----
 +
'''Фильтрация по ID'''
 +
<blockquote><pre>
 +
$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));
  
===IV. Пример ответа===
+
</pre></blockquote>
 +
'''Фильтрация по имени кампании:'''
 +
<blockquote><pre>
 +
$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));
 +
 
 +
</pre></blockquote>
 +
Дополнительно в POST можно передать атрибут  <font color="red">limit</font> для ограничения количества возвращаемых результатов. Допустимое значение от 1 до 1000.
 +
<br>'''<font color="red">Внимание! Во избежание нагрузки, системой ограничено максимальное количество возвращаемых результатов! Количество результатов всегда будет не больше 1000.</font>'''
 +
 
 +
===Пример ответа===
 
----
 
----
 
'''Пример ответа об ошибке''':
 
'''Пример ответа об ошибке''':
<pre>Array (
+
<blockquote><pre>Array (
 
     [success] => FALSE
 
     [success] => FALSE
 
     [msg] => The filter_by field must be one of: date,date_range,ids,campaign.
 
     [msg] => The filter_by field must be one of: date,date_range,ids,campaign.
</pre>
+
)</pre></blockquote>
 
----
 
----
 
'''Пример ответа с пустым результатом:'''
 
'''Пример ответа с пустым результатом:'''
<pre>Array (
+
<blockquote><pre>Array (
 
     [success] => TRUE
 
     [success] => TRUE
 
     [msg] => No results found
 
     [msg] => No results found
Строка 62: Строка 243:
 
         )
 
         )
 
)
 
)
</pre>
+
</pre></blockquote>
 
----
 
----
 
'''Пример ответа об успешном выполнении запроса:'''
 
'''Пример ответа об успешном выполнении запроса:'''
<pre>
+
<blockquote><pre>
 
Array (
 
Array (
 
     [success] => TRUE
 
     [success] => TRUE
Строка 126: Строка 307:
 
         )
 
         )
 
)
 
)
</pre>
+
</pre></blockquote>
  
=== V. Отправка заказов ===  
+
----
 +
=== Отправка заказов ===  
  
 
<br>URL = '''http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXX'''
 
<br>URL = '''http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXX'''
Строка 137: Строка 319:
 
Можно отправлять от 1 до 100 заказов за один раз. Если больше, - они просто не будут отрабатыватся.
 
Можно отправлять от 1 до 100 заказов за один раз. Если больше, - они просто не будут отрабатыватся.
  
Поля закаказа:
+
Поля заказа:
*''country'' - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре (*обязательное)
+
*<font color="red">country</font> - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре (*обязательное)
*''fio'' - ФИО (*)
+
*<font color="red">fio</font> - ФИО (*)
*''phone'' - Номер телефона (*)
+
*<font color="red">phone</font> - Номер телефона (*)
*''offer'' - Техническое название оффера. Например: brown_liquid. Список доступных офферов можно взять отсюда /Api/getOffers (*)
+
*<font color="red">offer</font>- Техническое название оффера. Например: brown_liquid. Список доступных офферов можно взять отсюда /Api/getOffers (*)
*''campaign'' - Название кампании, генерируется на стороне трафареда (*)
+
*<font color="red">campaign</font>- Название кампании, генерируется на стороне трафареда (*)
*''address'' - Адрес
+
*<font color="red">address</font> - Адрес
*''price'' - Цена
+
*<font color="red">price</font> - Цена
*''count'' - Количество
+
*<font color="red">count</font> - Количество
*''offer_attribute'' - Свойство оффера "аттрибут"
+
*<font color="red">offer_attribute</font> - Свойство оффера "аттрибут"
*''offer_color'' - Свойство оффера "цвет"
+
*<font color="red">offer_color</font> - Свойство оффера "цвет"
*''offer_size'' - Свойство оффера "размер"
+
*<font color="red">offer_size</font> - Свойство оффера "размер"
*''offer_type'' - Свойство оффера "тип"
+
*<font color="red">offer_type</font> - Свойство оффера "тип"
*''offer_vendor'' - Свойство оффера "бренд"
+
*<font color="red">offer_vendor</font> - Свойство оффера "бренд"
*''utm_campaign'' - Метка utm_campaign
+
*<font color="red">utm_campaign</font> - Метка utm_campaign
*''utm_content'' - Метка utm_content
+
*<font color="red">utm_content</font> - Метка utm_content
*''utm_source'' - Метка utm_source
+
*<font color="red">utm_source</font> - Метка utm_source
*''utm_medium'' - Метка utm_medium
+
*<font color="red">utm_medium</font> - Метка utm_medium
*''utm_term'' - Метка utm_term
+
*<font color="red">utm_term</font> - Метка utm_term
*''sub_id'' - Метка sub_id
+
*<font color="red">sub_id</font> - Метка sub_id
*''landing_url'' - Полный URL страницы заказа
+
*<font color="red">landing_url</font> - Полный URL страницы заказа
*''time'' - Время оформления заказа. Формат: Y-m-d H:i:s
+
*<font color="red">time</font> - Время оформления заказа. Формат: Y-m-d H:i:s
*''ip'' - IP клиента
+
*<font color="red">ip</font> - IP клиента
----
+
 
Масивы с даными заказа оберывается в глобальный масив orders.
+
Масивы с даными заказа обертывается в глобальный масив orders.
 
----
 
----
 
<br>'''Пример запроса на php :
 
<br>'''Пример запроса на php :
<pre>
+
<blockquote><pre>
 
$post = array(
 
$post = array(
 
'orders' => array(
 
'orders' => array(
Строка 228: Строка 410:
 
$resp = curl_exec($curl);
 
$resp = curl_exec($curl);
 
curl_close($curl);
 
curl_close($curl);
</pre>
+
</pre></blockquote>
 
----
 
----
<br>Варианты ответа
+
<br>''Варианты ответа''
 
<br>'''Если всё прошло гладко''':
 
<br>'''Если всё прошло гладко''':
 
<br>[{"success":true,"id":191776,"msg":1},{"success":true,"id":191777,"msg":1}]  
 
<br>[{"success":true,"id":191776,"msg":1},{"success":true,"id":191777,"msg":1}]  
Строка 236: Строка 418:
 
<br>[{"success":false,"id":false,"msg":"Wrong Offer name. Must be > 3 chars AND must exist"},{"success":false,"id":false,"msg":"Unknown country code"}
 
<br>[{"success":false,"id":false,"msg":"Wrong Offer name. Must be > 3 chars AND must exist"},{"success":false,"id":false,"msg":"Unknown country code"}
 
<br>Идёт проверка по каждому обязательному полю.
 
<br>Идёт проверка по каждому обязательному полю.
 +
 +
----
 +
 +
= <u>Парковка доменов с помощью '''NS''' записи</u>=
 +
 +
Для того чтобы Ваш домен работал с нашими лендингами, укажите следующие NS:
 +
*'''NS1:''' <font color="red">josh.ns.cloudflare.com</font>
 +
*'''NS2:''' <font color="red">lady.ns.cloudflare.com</font>
 +
 +
Но, сначала нужно припарковать домен в нашей системе, а потом прописывать NS у себя!
 +
На странице создания "Кампании" в разделе "Использовать готовые лендинги и прелендинги" нажмите ссылку "парковка домена". В отобразившемся поле вводим полное доменное имя (например http://domain.com/). Выбираем понравившийся лендинг или прелендинг из списка.
 +
 +
<gallery>
 +
Svoi domenu1.png|
 +
</gallery>
 +
=<u>Список доменов</u>=
 +
*landos.info
 +
*lendos.biz
 +
*protekt.name
 +
*ekotovary.com
 +
*ekonaturali.com
 +
*natural.name
 +
*kosmetic.info
 +
*tovarvsem.com
 +
*asiatovar.com
 +
*tovar2u.com
 +
 +
----
 +
= <u>Парковка домена с помощью '''IP и A''' записи</u>=
 +
Домены внесённые в список, будут доступны для выбора при создании кампании. Все эти домены будут припаркованы в момент создания кампании, так как обязательным является лендинг который будет привязан к домену.
 +
Также для этих доменов нужно будет самим прописать '''<font color="red">IP 80.208.231.51</font>''' в '''A записи''', в панели управления доменом на сайте реестратора.
 +
В активном поле вписываем нужный домен и нажимаем на кнопку добавления, после чего желаемый домен будет добавлен в перечень Ваших.
 +
<gallery>
 +
Parkovka1.png|
 +
</gallery>
 +
После данных действий, Вы можете переходить в список офферов  -"Все офферы" и нажать на кнопку "Подключить"
 +
<gallery>
 +
Podkluchit.png|
 +
</gallery>
 +
В перечне списка "Домен лендинга", Вы увидите подраздел с названием "Свои домены", и ниже те домены что Вы добавили в систему
 +
<gallery>
 +
Svoi domenu1.png|
 +
</gallery>
 +
Все, домен добавлен, можете его использовать в работе.
 +
 +
 +
 +
= <u>Скачивание лендингов из раздела '''Мои Кампании'''</u>=
 +
Представляем Вам возможность скачивать готовые лендинги под свои нужды, используя встроенный функционал  ПП Trafa.Red.
 +
<br>Для этого, перейдите в одноименный раздел на сайте и нажмите на пиктограмму гарузки, которая находится под кнопкой удаления кампании. На почту будет отправлено сообщение содержащие в себе ссылку на скачивание архива лендинга. Ссылка актуальна 2 часа от момента создания, после чего автоматически удаляется.
 +
 +
<gallery>
 +
Wiki25.png|
 +
</gallery>

Текущая версия на 19:16, 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 записи, в панели управления доменом на сайте реестратора. В активном поле вписываем нужный домен и нажимаем на кнопку добавления, после чего желаемый домен будет добавлен в перечень Ваших.

После данных действий, Вы можете переходить в список офферов -"Все офферы" и нажать на кнопку "Подключить"

В перечне списка "Домен лендинга", Вы увидите подраздел с названием "Свои домены", и ниже те домены что Вы добавили в систему

Все, домен добавлен, можете его использовать в работе.


Скачивание лендингов из раздела Мои Кампании

Представляем Вам возможность скачивать готовые лендинги под свои нужды, используя встроенный функционал ПП Trafa.Red.
Для этого, перейдите в одноименный раздел на сайте и нажмите на пиктограмму гарузки, которая находится под кнопкой удаления кампании. На почту будет отправлено сообщение содержащие в себе ссылку на скачивание архива лендинга. Ссылка актуальна 2 часа от момента создания, после чего автоматически удаляется.