Подключение модуля Коротких ссылок и UTM меток

Как происходит подключение?

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

Если же требуется использование модуля в своих каких-то разработках, под определенные задачи, то  модуль можно подключить и использовать так:

/* подключение модуля */
\Bitrix\Main\Loader::includeModule('bxmaker.shortlink');

/* получение объекта класса для работы c ссылками */
$oManager = \Bxmaker\ShortLink\Manager::getInstance();

Как получить короткую ссылку?

Чтобы получить короткую ссылку, необходимо добавить в базу данных ссылку, на которую необходимо перенаправить пользователя с короткой ссылки используя метод addLink(). В результате выполнения вы получите код короткой ссылки.

/* ссылка на которую должна вести короткая ссылка */
$url = 'https://bxmaker.ru/promo_stranica/?utm-source=bxmaker.ru&utm-compaign=promo';

/* получение кода короткой ссылки */
$code = $oManager->addLink($url); 

/* получение ссылки */
if($code)
{
   /* $code = DfjOl, $short_link = https://bxmaker.ru/DfjOl, http или https и домен берутся из  текущего адреса страницы */
    $short_link = $oManager->prepareShortLink($code);
}
else
{
   /* Ошибок в принципе быть не может,  
   в случае повторного добавления ссылки,
   будет возвращен ранее созданный код этой ссылки.
   Если что-то пошло не так, $code == '' */
   
}

Как работают короткие ссылки на битркис?

При переходе по короткой ссылке,  в момент  наступления события OnPageStart главного модуля, текущий адрес страницы разбирается и если он подходит под шаблон короткой ссылки, то извлекается код короткой ссылки и идет поиск соответствия в базе данных. Если ссылка найдена, то пользователь будет переадресован с 301 статусом заголовка. Если ссылка не найдена,  то  далее все пройдет по стандартной схеме отображения страницы.

Как получить статистику по переходам по короткой ссылке?

Для работы со статистикой существует отдельный класс \Bxmaker\ShortLink\StatTable(). Для получения данных необходимо использовать метод  getList();

/* инициализация объекта класса для работы со статистикой в базе данных */
$oStatTable = new \Bxmaker\ShortLink\StatTable();

/* получение статистики напрямую */
$dbrStat = $oStatTable->getList(array(
   'select' => array('*'),
    'filter' => array('LINK_ID' => 1)
));
if($arStat = $dbrStat->fetch())
{
   echo '<pre>';
   print_r($arStat);
   echo '</pre>';
}

/* или получение статистики по короткой ссылке, но в таком случае будет возвращена информация о переходах за все периоды */
$dbrLink = $oManager->getTable()->getList(array(
    'select' => array('*', 'AMOUNT' => 'STAT.AMOUNT', 'AMOUNT_UNIQ' => 'STAT.AMOUNT_UNIQ'),
    'filter' => array('FROM' => 'DfjOl')
));
if($arLink = $dbrLink->fetch())
{
   echo '<pre>';
   print_r($arLink);
   echo '</pre>';   
}

Как зафиксировать переход по ссылке?

Для фиксирования перехода по короткой ссылки служит метод setView().

$oStat = new \Bxmaker\ShortLink\Stat();
$linkId = 1; /* идентификатор короткой ссылки, получить можно используя \Bxmaker\ShortLink\Manager::getIntance()->GetList() */
$bUniq = true; /* переход уникальный, первый раз человек переходит по ссылке */

$oStat->setView($linkId, $bUniq);