Действия

Документация

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

Версия от 14:16, 26 декабря 2017; Root (обсуждение | вклад) (Скачивание лендингов из раздела Мои Кампании)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Отправка лидов

Установка на лендинге спец. кода

При подключении оффера можно получить специальный код который генерирует форму заказа. Для этого в панеле управления перейдите по ссылке "Все офферы" и на нужном Вам оффере нажмите кнопку "Подключить". После заполенения формы с настройками для будущей кампании, внизу страницы, откройте пункт "У меня есть свои лендинги и прелендинги" и скопируйте сгенерированный код. Разместите код у себя на лендинге.

Пример использования спец. кода

Следующий код является тестовым. Актуальный код генерируется при подключении оффера
<!-- 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 часа от момента создания, после чего автоматически удаляется.