Макросы

Как использовать макросы?

Добавьте нужный макрос в URL потока. Пример:

http://landing.com/search?q={keyword}

При keyword=ключ, результатом будет:

http://landing.com/search?q=%D0%BA%D0%BB%D1%8E%D1%87

Вызов макроса без кодирования символов:

http://landing.com/search?q={_keyword}

Результат:

http://landing.com/search?q=ключ

Список макросов

  • {keyword} — ключевик;
  • {keyword:cp1251} — ключевик с передачей кодировки;
  • {ip} — IP адрес;
  • {stream_id} — номер потока;
  • {referrer} — реферер;
  • {country} — код страны ISO-3166-1;
  • {country_name:en} — название страны (доступные языки: ru, en);
  • {region} — код региона;
  • {region_name:en} — название города (доступные языки: ru, en);
  • {city:en} — название города (доступные языки: ru, en);
  • {se_referrer} — реферер от поисковика;
  • {date} — дата;
  • {date:YmdHis} — дата в определенном формате (http://php.net/manual/en/function.date.php);
  • {subid} — уникальный SubID перехода. Необходим для учета конверсии с партнерок;
  • {source} — источник трафика;
  • {from_file:filename.txt} — вставить содержимое файла filename.txt. Файлы должны храниться в директории /var/macros/;
  • {se} — поисковик;
  • {ua} — useragent;
  • {device_type} — тип устройства;
  • {device_model} — модель устройства;
  • {operator} — код оператора;
  • {operator_name:en} — имя оператора (доступные языки: ru, en);
  • {sample:value1, value2, value3} — возвращает рандомно один из значений. Можно использовать URL'ы: {_sample: http://site1.com, http://site2.com, http://site3.com}.

Макросы по GET-параметрам

Все переданные на TDS параметры оборачиваются в макросы. Например, передавались utm_source и utm_campaign, следовательно, становятся доступны макросы: {utm_source} и {utm_campaign}.

Как перекинуть метки сквозь TDS?

Добавьте все метки к URL кампании:

http://tds.com/campaign?utm_source=123&utm_term=444

В потоках значения этих меток можно подставить одноименными макросами:

http://landing.com/?utm_source={utm_source}&utm_term={utm_term}

Перечень всех меток:

utm_source={utm_source}&utm_term={utm_term}&utm_content={utm_content}&utm_medium={utm_medium}&utm_campaign={utm_campaign}

Создание макросов

Для иллюстрации, создадим новый макрос, который выводит случайное число.

Создайте новый файл /application/macros/random.php (имя файла должно быть схожим с именем класса, только без «_macros»).

Вставьте код:

<?php
use Models\Stream;
use Models\Visitor;
 
class random_macros extends BaseMacros
{
    public function process(Stream $stream, Visitor $visitor, $min, $max)
    {
        return rand($min, $max);
    }
}

Имя класса random_macros составлено из названия файла «random» с добавлением «_macros». Класс должен содержать метод process с двумя переменными $stream, $visitor. Дополнительные переменные добавляются после них.

Значения $min, $max передаются при использовании макроса:

http://landing.com/{random:100,999} $min будет равен 100, $max равен 999.

Какие данные можно взять из объектов $stream и $visitor?