Короткие ссылки и UTM метки

Примеры

Здесь приведены примеры решения основных задач при работе с модулем, при его испольвзовании при автоматизации процессов.

Подключение модуля

\Bitrix\Main\Loader::includeModule('bxmaker.shortlink');

$oManager = \Bxmaker\ShortLink\Manager::getInstance();

Генерация короткой ссылки

Для генерации ссылки, необходимо использвоать метод addLink() передав адрес конецной страницы, для которой и формируем короткий аналог. Если используются UTM метки, то ссылка должна быть передана уже с добавлеными метками.

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

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

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

Получение ссылки по коду короткой ссылки

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

Если определение схемы происходит не верно, вместо https возвращается http, то нужно в файле /bitrix/.settings.php добавить настройки схемы для сайта. Подробнее в пункте - "Частые ошибки"

$code = 'DfjOl';
$url = $oManager->prepareShortLink($code); // https://bxmaker.ru/DfjOl

Получение статистики

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

// идентификатор ссылки, для которой получаем статистику
$linkId = 1; 

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

/* получение статистики напрямую */
$dbrStat = $oStatTable->getList(array(
   'select' => array('*'),
    'filter' => array('LINK_ID' => $linkId)
));
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; // ID  короткойссылки
$bUniq = true; // переход уникальный, человек переходит по ссылке первый раз

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