Лендинги

О лендингах

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

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

Название

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

Группа

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

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

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

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

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

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

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

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

Для создания требуется архив со всеми файлами лендинг страницы. В архиве обязательно должен присутствовать файл index.html. Именно этот файл будет открываться при запуске лендинга. Если в настройках включена поддержка PHP у лендингов, то файл может быть index.php.

Для того, чтобы загружались все картинки и стили, в код лендинга автоматически добавляется тег:

<base path="/landers/name" />

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

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

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

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

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

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

Лендинг на WordPress

Смотрите страницу WordPress плагин.

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

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

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

Чтобы создать ссылку на оффер, достаточно использовать макрос {offer}. Пример кнопки:

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

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

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

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

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

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

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

  1. индексная index.html
  2. и с оффером 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 метод).

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

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

  1. Индексная страница, index.html (или index.php)
  2. Страница с формой заказа, 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'],        //       ←
);

Подключение внешнего сайта через Click Client (PHP)

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

Рассмотрим пример подключения с использованием готовой библиотеки Click API Client.

  1. Создайте кампанию;
  2. Создайте лендинг с адресом вашего сайта;
  3. Создайте поток со схемой «Лендинг и офферы». Выберие лендинг (сайт) и офферы;
  4. Перейдите на страницу «Интеграция» (Дополнительно > Интеграция);
  5. Выберите «Click API Client»;
  6. Подключите код к вашему лендингу согласно инструкции.

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

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

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

Аналогично использованию оффера, добавляется только параметр 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);

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

Отправка постбеков с сайта, где стоит Click Client

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

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

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

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

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

Обновление параметров клика на 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')

Пример 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'))

Общие вопросы по разделу Лендинги

Как увеличить лимит загружаемых архивов с файлами локальных лендингов?

Размер архива ограничивается нескоькими директивами PHP и nginx:

  1. upload_max_filesize в php.ini
  2. post_max_size в php.ini
  3. client_max_body_size в nginx.conf

Почему скаченный с партнерки лендинг не ведет на мои офферы?

Многие лендинги содержат защитный js-скрипт, который заменяет все ссылки на оригинальные. Попробуйте сами перейти по трекинг ссылке кампании до лендинга. Наведите курсор на ссылку и убедитесь, что она ведет на трекер.

Как перебросить все параметры через лендинг?

Решение для лендингов с редиректом.

Решение на PHP:

<a href="http://domain.com/page2?id=123&<?= http_build_query($_GET) ?>">Ссылка</a>

Решение на JS:

<script>document.write('<a href="http://offer.com/?affid=123&' + window.location.search.replace('?', '') + '">Ссылка</a>'</script>

Как передать параметр, если на лендинге форма заказа?

Для локальных лендингов и с предзагрузкой:

<input type="hidden" name="sub1" value="{sub_id_1}">

Для лендинов с редиректом:

<input type="hidden" name="sub1" value="<?php echo urlencode($_GET['sub_id_1']);?>">

Как вставить subid и другую информацию на лендинге (при использовании редиректа)?

Решение работает только, если трафик сначала в Keitaro и у лендинга выбран способ загрузки «Редирект». Если используется «Предварительно загружать», читайте следующую секцию документации.

Отредактируйте настройки лендинга. Добавьте необходимые параметры и макросы к URL лендинга:

http://landing.com/page?model={device_model}&city={city:ru}&subid={subid}

На лендинге теперь можно вставить полученные параметры:

<html>
  <head>
     <script type="text/javascript">
       function getURLParameter(name) {
           return decodeURI(
               (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] || ''
           );
       }
       </script>
  </head>
<body>
  Чехлы для телефона <script>document.write(getURLParameter('model'))</script> 
  в городе <script>document.write(getURLParameter('city'))</script>
</body>
</html>

Или на PHP:

  Чехлы для телефона <?php echo htmlentities($_GET['model'])?>
  в городе <?php echo htmlentities($_GET['city'])?>

Как вставить subid и другую информацию на лендинге (при использовании предварительной загрузки?

Если у лендинга включена предварительная загрузка, то вы можете использоватьб все макросы прямо в коде лендинга. Пример использования макроса {subid}:

<script type="text/javascript"> 
var m1_product_id = 123; 
var ref = 123; 
var script = document.createElement("script"); 
script.src = "http://m1-shop.ru/send_order/?ref="+ref+"&s={subid}&w="+getC("w")+"&t="+getC("t")+"&p="+getC("p")+"&m="+getC("m")+"&product_id="+m1_product_id+'&out=1'; 
document.body.appendChild(script); 
</script>

Почему не считаются метрики LP клики, LP CTR и Время продажи?

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

Как передавать параметры в пиксель FB?

Пример добавление кода для локального лендинга и с предзагрузкой:

<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','//connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below. 
fbq('init', 'FB_PIXEL_ID');
fbq('track', 'view', {
   subid: '{subid}'   
})
</script>

Как подключить Keitaro к lpmotor.ru?

  1. Зайдите на страницу «Кампании».
  2. Создайте кампанию. Она нужна, чтобы отслеживать конверсии с лендинга.
  3. Создайте один поток с действием «Ничего не делать». Иначе клики не будут считаться.
  4. Зайдите на страницу «Лендинги».
  5. Добавьте лендинг, заполнив название и URL.
  6. Нажмите на «Инструкция».
  7. Выберите вкладку «Скрипт отслеживания».
  8. Выберите лендинг и кампанию.
  9. Найдите: Код скрипта отслеживания и Код для страницы благодарности. Они пригодятся нам позже. lpmotor_code.jpg
  10. Зайдите в настройки сайта на lpmotor.ru (Настройки > Общие).
  11. Вставьте код скрипта отслеживания.
  12. Создайте страницу благодарности. Сейчас это делается через создание еще одного сайта в lpmotor.
  13. Зайдите в Настройки > Общие. Вставьте снова код скрипта отслеживания и ниже код для страницы благодарности.
  14. Теперь отредактируйте форму.
  15. Зайдите во вкладку «Действие» и переключите на «Перейти по ссылке».
  16. Впишите адрес вашей страницы благодарности и добавьте параметры. Пример,

http://thankyou.lpmotortest.ru/?tid={id_lead}&sub_id_8={name}&sub_id_9={email}&sub_id_10={phone} В этом случае передается id_lead в качестве Tid и информацию с формы в sub_id_8, 9 и 10, чтобы видет их в отчетах.

Почему при "Показать HTML" не показываются картинки?

Keitaro показывает страницу не по тому адресу, что вы создавали страницу. Поэтому браузер не может найти картинки. Замените все адреса картинок на абсолютные: http://site.com/folder/image.png.

Как исключить прямые посещения лендинга?

Решение на PHP:

<?php
if (!isset($_GET['_subid'])) {
    header('Location: http://example.com/campaign');
}
?>

Альтернативное решение:

  1. Передавайте в URL лендинга параметр. Например, code=123 (http://landing.com/?code=123)
  2. На лендинге добавьте код в самом начале страницы:
<?php if (!isset($_GET['code']) && $_GET['code'] != '123') { die(); } ?>

Нужно ли указывать полные пути до файлов в локальном лендинге?

Достаточно указывать относительные. Пример:

<img src="images/photo.png" />

Нужно ли ставить какой-нибудь код интеграции на локальный лендинг?

Нет. Лендинг уже работает через кампании.