JS-редирект в CPATracker (добавляем возможность)

Привет! Сразу скажу, что речь идёт о версии cpatracker, которая ставится на свой хостинг.

Итак, чтобы сделать javascript-редирект в cpa tracker, надо каждый день…

Читать далее JS-редирект в CPATracker (добавляем возможность)

Повышаем конверт при сплит-тесте лендингов или офферов – часть 2

Часть 1 ВКонтакте

Теперь поговорим о технической реализации. Сам скрипт ищи в конце поста. Про использование куки для определения того, куда редиректить, я уже писал в посте «Редирект новых и старых посетителей в разные места, редирект по номеру посещения«.

Для определения псевдослучайного числа от 1 до 100 на основе ip-адреса напишем функцию:

function getIPNum() {
  $ip = ip2long($_SERVER["REMOTE_ADDR"]);
  $sto = pow($ip + 57, 0.7)%100 + 1;
  return $sto;
}

Адреса лендингов будем передавать в массиве со значениями. Каждой ссылке присвоим вероятность выпадания в процентах (а если точнее – умножим на сто).

Например,

$arr = array(
 "http://google.com" => 30,
 "http://yandex.ru" => 30,
 "http://mail.ru" => 40);

Тут гугл откроется в 30% случаев, яндекс тоже в 30, а мэйл в 40 процентах. Скажу сразу, значение у последней ссылки может быть любым, и если сумма чисел будет меньше сотни, переход всё равно осуществится по последней ссылке. Ну и ссылок сколько угодно можно с разными вероятностями. Удобно?

Теперь функция выбора лендинга на основе числа от 1 до 100:

function chooseLink($arr, $num) {
 $rate = 0;
 while (($item = current($arr))!== FALSE) {
   $rate += $item;
   if ($num <= $rate) return key($arr);
   next($arr);
 }
 return key($arr);
}

Итак, уже получаем адрес для ленда на основе ip:

$arr = array(
 "http://google.com" => 30,
 "http://yandex.ru" => 30,
 "http://mail.ru" => 40);
 
function getIPNum() {
 $ip = ip2long($_SERVER["REMOTE_ADDR"]);
 $sto = pow($ip + 57, 0.7)%100;
 return $sto;
}

function chooseLink($arr, $num) {
 $rate = 0;
 while (($item = current($arr))!== FALSE) {
 $rate += $item;
 if ($num <= $rate) return key($arr);
 next($arr);
 }
 return key($arr);
}
$link = chooseLink($arr, getIPNum());

Хорошо, сделали. Но! Как мы помним из первой части, всё же сначала при посещении проверяем куки.

Что храним в куки? А давайте сразу ссылку туда зафигачим!

Итого,

if (isset($_COOKIE['keks']))
 $link=$_COOKIE['keks'];
else {
  $link = chooseLink($arr, getIPNum());
  SetCookie("keks",$link,time()+3600*24*365*10);
}

Ну и в самом контенте ссылки на лендинг делать уже как <a href="<?php echo $link; ?>">йа ссылко</a>

Итак, при заходе посетителя

  1. При отсутствии куки (=новый посетитель) получаем значение функции chooseLink на основе IP-адреса посетителя.
  2. При наличии куки просто берём ссылку из него.
  3. Используем ссылку, полученную в пункте 1 либо в пункте 2.

Весь код для выбора ссылки:

 30,
   "http://yandex.ru" => 30,
   "http://mail.ru" => 40);
 
  function getIPNum() {
   $ip = ip2long($_SERVER["REMOTE_ADDR"]);
   $sto = pow($ip + 57, 0.7)%100;
   return $sto;
  }

  function chooseLink($arr, $num) {
    $rate = 0;
    while (($item = current($arr))!== FALSE) {
      $rate += $item;
      if ($num <= $rate) return key($arr);
      next($arr);
    }
    return key($arr);
  }
  if (isset($_COOKIE['keks']))
    $link=$_COOKIE['keks'];
  else {
    $link = chooseLink($arr, getIPNum());
    SetCookie("keks",$link,time()+3600*24*365*10);
  }
?>
Ололо

Йа текст лендинга
А йа ссылко
...

Точное и быстрое определение страны на PHP

Привет.

Если тебе говорят, что лучший вариант определять гео это JavaScript (допустим, через API Яндекса), – не верь. Да, это может быть немного точнее, но в скорости и наличии определённого процента несрабатываний ты проиграешь. Читать далее Точное и быстрое определение страны на PHP

Редирект по IP-диапазонам на PHP

Йоу.

Нужно определить, принадлежит ли IP посетителя к определённому списку диапазонов, и направить в нужное место в зависимости от этого?

Поехали. Читать далее Редирект по IP-диапазонам на PHP

Дописываем метки ко всем ссылкам на странице с помощью JavaScript

Недавно мы добавляли все метки в редирект на php.

Сейчас сделаем то же самое на JavaScript, при этом метки добавим к абсолютно всем ссылкам на странице. Читать далее Дописываем метки ко всем ссылкам на странице с помощью JavaScript

Редирект новых и старых посетителей в разные места, редирект по номеру посещения

Раз уж начал про редиректы…

Цель. Написать скрипт, который будет:

  1. Отправлять новых посетителей по одному адресу, а повторных посетителей – по другому;
  2. Отправлять по конкретному адресу в зависимости от порядка посещения.

Что делаем? Ставим пользователю куки при каждом новом посещении.

Назовём наш куки keks. Просто так. Итак,

if (isset($_COOKIE['keks']))
 $i=$_COOKIE['keks']+1;
else $i=1;
SetCookie("keks",$i,time()+3600*24*365*10);

В переменную $i записываем существующее значение куки плюс один. Если такого куки нет (первый заход) – то прописываем единицу. Следующей строчкой ставим/обновляем куки. В данном примере – на 10 лет, то есть фактически навсегда. Читать далее Редирект новых и старых посетителей в разные места, редирект по номеру посещения

Передаём метки через редирект в первозданном виде

Итак, допустим, у нас есть скрипт http://site.ru/script.php. Он должен отправлять посетителей на http://site2.ru – конечный лендинг/партнёрскую ссылку/что угодно.

Мы хотим лить трафик с различными параметрами на скрипт. Пишем в нём стандартный редирект:

<?php
  header("location: http://site2.ru");
 ?>

Редирект идёт, но метки не передаются. Т.е. при переходе на http://site.ru/script.php?utm_source=marketgid мы теряем параметр utm_source. Читать далее Передаём метки через редирект в первозданном виде

Разделяем мобильный и десктопный трафик

Итак, есть два хороших варианта: с помощью .htaccess и с помощью php.
Читать далее Разделяем мобильный и десктопный трафик