Действия

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

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

(Скачивание лендингов из раздела Мои Кампании)
(Скачивание лендингов из раздела Мои Кампании)
Строка 467: Строка 467:
 
= <u>Скачивание лендингов из раздела '''Мои Кампании'''</u>=
 
= <u>Скачивание лендингов из раздела '''Мои Кампании'''</u>=
 
Представляем Вам возможность скачивать готовые ленды под свои нужды, используя встроенный функционал  ПП Trafa.Red
 
Представляем Вам возможность скачивать готовые ленды под свои нужды, используя встроенный функционал  ПП Trafa.Red
Для этого, перейдите в одноименный раздел на сайте и нажмите на пиктограмму гарузки, которая находится под кнопкой удаления кампании
+
<br>Для этого, перейдите в одноименный раздел на сайте и нажмите на пиктограмму гарузки, которая находится под кнопкой удаления кампании
  
 
<gallery>
 
<gallery>
 
Wiki25.png|
 
Wiki25.png|
 
</gallery>
 
</gallery>

Версия 14:06, 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
Для этого, перейдите в одноименный раздел на сайте и нажмите на пиктограмму гарузки, которая находится под кнопкой удаления кампании