# Общая информация

# О лендингах

Лендинги являются первыми страницами, которые видят пользователи на своем пути к офферу. Иногда такие лендинг-страницы называют прелендингами. В тоже время, лендинги могут быть конечными страницами и даже отправлять лиды в трекер. Поддержка разных типов лендингов позволяет подключать как свою лендинг страницу c HTML файлом, так и внешний сервис.

# Создание лендинга

# Название

Название вашего лендинга.

# Группа

К какой группе принадлежит лендинг.

# Способ показа

  • "Локальный" (Рекомендуемый) — возможность подгрузить архив вашего лендинга, который автоматически распакуется в корень трекера и будет работать без редиректа. Для корректной загрузки упакуйте файлы своего лендинга в архив zip.
  • "Редирект" — переход на лендинг осуществляется редиректом;
  • "Предварительно загружать" — лендинг скачивается и отображается сразу по адресу кампаний. Редирект при этом не используется. При этом способе можно использовать макросы в коде лендинга.
  • "Действие" — переход на лендинг осуществляется редиректом с выполнением определенного действия;

# Адрес лендинга (URL)

Полный адрес до вашего лендинга, например http://site.ru/page1.html. К адресу вы можете дописать параметры и макросы.

# Типы лендингов

# Локальный лендинг

Лендинг этого типа открывается быстрее, чем с предзагрузкой и без использования редиректов.

Для создания требуется архив со всеми файлами лендинг-страницы. В архиве обязательно должен присутствовать файл index.html или index.php (если разрешен в настройках). Именно этот файл будет открываться при запуске лендинга.

Требования к лендингам:

  • Пути в атрибутах src и href должны быть относительные. Неправильно: <img src="/home.png"/>. Правильно: < src="home.png"/>.
  • Не должно быть внутренних js-редиректов. Пример внутреннего редиректа window.location = 'index.html'.
  • Не должно быть js-скриптов, использующих якоря. Например, плавный скролл < a class="slow-scroll" href="#form2">order</a> - работать не будет.

Дополнительные требования к лендингам на PHP:

  • В коде лендинга не должны использоваться функции header(), exec(), system(), job_start(), eval().
  • Загрузка дополнительных скриптов в include() и require() должны быть по абсолютным путям. Пример, require_once dirname(__FILE__) . ‘/lib.php’;.

# Лендинг с предзагрузкой

Лендинг этого типа может располагаться на любом сервере. Keitaro загружает его сам и выводит содержимое пользователю. Если лендинг содержит ссылки на другие страницы, то они будут открываться с оригинального адреса.

# Лендинг с редиректом

При срабатывании такого лендинга пользователь будет отправлен редиректом на его URL. В адресе автоматически добавляются параметры _subid и _token. Они нужны для работы постбеков и ссылок на офферы.

# Лендинг, выполняющий действие

Когда в потоке задан такой лендинг, то будет выполняться заданное действие. Например, если выбрано действие "Показать HTML", то пользователь увидит HTML страницу.

# Лендинг на WordPress

Смотрите страницу WordPress plugin.

# Подключение оффера на лендинге

Чтобы на сайте работали переходы на оффер, необходимо добавить специальный код в каждую ссылку сайта. Чтобы ссылка оффера работала, должен сработать поток, где будут выбраны нужные офферы. Ниже описание того, как подключаются офферы в зависимости от типа лендинга.

# Подключение оффера на локальном лендинге и с предзагрузкой

Чтобы создать ссылку на оффер, достаточно использовать макрос {offer}. Пример кнопки: <a class="btn btn-success" href="{offer}">Ссылка</a>

Также, читайте статьи:

Локальный лендинг: форма заказа и отправка лидов в трекер. Часть 1

Локальный лендинг: кнопка перехода на оффер. Часть 2

# Подключение нескольких офферов на локальном лендинге и с предзагрузкой

Если у вас несколько офферов, то можно делать уточнение какой оффер должен открываться:

<a class="btn btn-success" href="{offer:1}">Ссылка</a>
<a class="btn btn-success" href="{offer:2}">Ссылка</a>

1 и 2 — это примеры ID офферов.

# Подключение оффера на двухстраничном локальном лендинге

Предположим, что у нас 2 страницы:

  • индексная index.html
  • и с оффером page2.php

В index.html обновите ссылки на page2.php, добавив передачу _token : <a href="page2.php?_token={token}">Link to Page2</a>

На странице page2.php ссылка оффера создается таким образом: <a href="//<?php echo $_SERVER['HTTP_HOST'] . '/?_lp=true&_token=' . urlencode($_GET['_token']) ?>">Offer</a>

Для мультиофферного лендинга:

<a href="//<?php echo $_SERVER['HTTP_HOST'] . '/?_lp=true&_token=' . urlencode($_GET['_token']) ?>&offer_id=1">Offer 1</a>
<a href="//<?php echo $_SERVER['HTTP_HOST'] . '/?_lp=true&_token=' . urlencode($_GET['_token']) ?>&offer_id=2">Offer 2</a>
<a href="//<?php echo $_SERVER['HTTP_HOST'] . '/?_lp=true&_token=' . urlencode($_GET['_token']) ?>&offer_id=3">Offer 3</a>

# Подключение оффера на лендинге с редиректом

При использовании редиректа, к адресу лендинга добавляется два обязательных параметра _token и _subid. Чтобы создать нужную ссылку оффера, лучше всего взять готовый код из блока, что видите при создании и редактировании лендинга.

# Подключение нескольких офферов на лендинге с редиректом

К ссылкам нужно добавлять параметр offer_id. Пример:

<a href="http://tracker.com/?_lp=true&_token=<?php echo urlencode($_GET['_token'])?>&offer_id=1">Offer link 1</a>
<a href="http://tracker.com/?_lp=true&_token=<?php echo urlencode($_GET['_token'])?>&offer_id=2">Offer link 2</a>

# Подключение оффера как действие в лендинге

В действиях можете использовать макрос {offer}. Например, в действии "Показать HTML" можно поставлять ссылку оффера прямо в код.

# Использование формы заказа на локальном лендинге

Если вы отправляете лиды через скрипт, то вам необходимо в лидах передавать еще и subid клика. В локальных лендингах с предзагрузкой можно подставить subid макросом {subid}: <input type="hidden" name="subid" value="{subid}" />

Потом в обработчике формы ловите в параметре $_POST['subid'] (если форма передается через post метод).

# Настройка формы на двухстраничном локальном лендинге

Предположим, что у нас есть две страницы:

  • Индексная страница, index.html (или index.php)
  • Страница с формой заказа, order.php

На индексной странице нужно изменить ссылки, добавив ?_subid={subid}: <a href="order.php?_subid={subid}">BUY</a>

Теперь в коде order.php, нужно добавить в самое начало:

session_start();
if (isset($_GET['_subid'])) {
    $_SESSION['_subid'] = $_GET['_subid'];
}

Этот код будет принимать параметр _subid и сохранять в сессию.

Теперь вы можете в коде отправки данных с формы подставлять этот параметр из сессии. Пример:

$params = array(
    'name'          => $post['name'],
    'phone'         => $post['phone'],
    'country'       => $post['country'],
    'sub1'            => $_SESSION['_subid'],        //       ←
);

# Подключение внешнего сайта через KClient PHP

Этот способ позволяет принимать трафик напрямую на сайт и передавать данные по KClient PHP в Keitaro.

Рассмотрим пример подключения с использованием готовой библиотеки KClient PHP:

  • Создайте кампанию;
  • Создайте лендинг с адресом вашего сайта;
  • Создайте поток со схемой "Лендинг и офферы". Выберие лендинг (сайт) и офферы;
  • Перейдите на страницу "Интеграция" (Дополнительно > Интеграция);
  • Выберите "KClient PHP";
  • Подключите код к вашему лендингу согласно инструкции.

# Подключение офферов к сайту, работающему через KClient PHP

  • Удалите в коде строку $client->execute(). Она вызывает моментальный редирект на оффер;
  • Такой код выведет ссылку на оффер <a href="<?php echo $client->getOffer()?>">Offer Link</a>;
  • Проверьте работу лендинга.

# Подключение нескольких офферов к сайту, работающему через KClient PHP

Аналогично использованию оффера, добавляется только параметр offer_id

<a href="<?php echo $client->getOffer(array('offer_id' => 1))?>">Offer link 1</a>
<a href="<?php echo $client->getOffer(array('offer_id' => 2))?>">Offer link 2</a>

# Подключение внешнего сайта через скрипт отслеживания

Этот способ подходит для сайтов на CMS. Код установки скрипта отслеживания берется на странице кампании, во вкладке Интеграции.

Подробнее о скрипте отслеживания читайте на странице Скрипт отслеживания.

# Подключение оффера к сайту, который работает через скрипт отслеживания

Разметите в коде сайта ссылку с макросом {offer}. Пример: <a href="{offer}">Offer link</a>

Чтобы ссылка работала, потоки кампании должны быть с офферами.

Подробнее о скрипте отслеживания читайте на странице Скрипт отслеживания.

# Подключение нескольких офферов к сайту, который работает через скрипт отслеживания

Вы можете указывать ID оффера в ссылках:

<a href="{offer}&offer_id=1">Offer link 1</a>
<a href="{offer}&offer_id=2">Offer link 2</a>

# Отправка постбеков

Способы отправки постбеков отличаются от того, какой тип лендинга используется.

# Отправка постбеков с локального лендинга (форма)

Если на лендинге есть форма, то нужно добавить дополнительный input:

<form action="send.php" method="post">
<input type="hidden" name="subid" value="{subid}" />
</form>

Теперь можно отправлять в скрипте send.php:

$url = 'http://POSTBACK_URL?payout=100&status=sale&subid=' . urlencode($_POST['subid']);
file_get_contents($url);

Более подробная настройка описана в статье Локальный лендинг: форма заказа и отправка лидов в трекер.

# Отправка постбеков с локального лендинга (кнопка)

Если просто кнопка, то добавляется subid так: <a class="btn btn-success" href="thanks.php?subid={subid}">BUY</a>

Теперь можно отправлять в скрипте thanks.php:

$url = 'http://POSTBACK_URL?payout=100&status=sale&subid=' . urlencode($_GET['subid']);
file_get_contents($url);

Читайте также статью Сбор конверсий формы скриптом отслеживания.

# Отправка постбеков с лендинга после редиректа

Смотрите страницу Отправка постбека с сайта в Keitaro.

# Отправка постбеков с сайта, где стоит KClient PHP

Смотрите страницу KClient PHP.

# Отправка постбеков с сайта, где стоит скрипт отслеживания

Смотрите страницу Отправка конверсий.

# Обновление параметров клика с лендинга

Параметры можно обновлять несколькими способами:

  • В постбеке. Смотрите страницу Прием постбеков;
  • В ссылке оффера. Например, {offer}&sub_id_1=123;
  • Через специальный адрес update_tokens. Примеры ниже.

# Обновление параметров клика из браузерной строки

Обновление параметров клика можно вызывать из браузера, через конструкцию: http://domnain.com/?_update_tokens=1&sub_id=REPLACE&sub_id_1=REPLACE&sub_id_2

# Обновление параметров клика на JS

<script type="text/javascript">
kUrl='http://keitaro_url/';
function update_tokens(subId, param, value) {
  var img = document.createElement("img");
  img.src= kUrl + '?_update_tokens=1&sub_id=' + subId + '&'+ param + '=' + value + '&return=img';
  img.height=0;
  img.width=0;
  document.getElementsByTagName("body")[0].appendChild(img);
}
</script>

Теперь можете вызвать: update_tokens('{subid}', 'sub_id_8', 'test')

Здесь {subid} - это subid текущего клика. Если выполнять в html коде локального лендинга, значение будет автоматически подставляться. При тестировании вставляйте значение вручную.

# Пример update_tokens через скрипт отслеживания

Этот метод работает, только если на сайте стоит скрипт отслеживания: KTracking.update({sub_id_8: 'test'})

# Пример вызова update_tokens на PHP

session_start();
function updateParams($subId, $params) {
   $kUrl = 'TRACKER_URL';
   $url = $kUrl . '?_update_tokens=1&sub_id=' . urlencode($subId) . '&' . http_build_query($params);
   $result = file_get_contents($url);
   // echo $result;
}

Замените TRACKER_URL на адрес вашего трекера.

Теперь можете вызвать updateParams('sub_id', [params]);. Пример: updateParams($_SESSION['sub_id'], array('sub_id_1' => 'info@gmail.com'))