JavaScript API
JavaScript-SDK PRMOnline (track.js) позволяет собирать данные о реферальном трафике и конверсиях на любой странице.
Библиотека добавляет в глобальную область функцию prmo(), которую вызывают короткими командами.
Вызовы, сделанные до загрузки основного скрипта, автоматически ставятся в очередь и выполняются после загрузки.
Подключение скрипта
Подробнее о том, где взять ваш персональный скрипт и как его подключить, читайте в разделе про JS-скрипт.
Пример установки скрипта:
<script>
!function(w,d,t){
w.prmo = w.prmo || function(){ (w.prmo.q=w.prmo.q||[]).push(arguments); };
var s = d.createElement(t); s.async = true;
s.src = "https://c1.prmonline.ru/js/track_v1712.js"; // замените на ваш персональный URL
var x = d.getElementsByTagName(t)[0]; x.parentNode.insertBefore(s,x);
}(window, document, "script");
prmo('config', 'TTL', 30);
prmo('init', 'XDdHbxkNJMsJ');
prmo('track', 'FOLLOW');
</script>
Описание методов
-
Изменение конфигурации
Изменение параметров запуска скрипта. Вызывается до
init.Вызов
prmo('config', param, value)Возможные параметры
Параметр Возможные значения Назначение TTLint > 0, дней Срок жизни cookies (по умолчанию 60 дней; если задано некорректно — будет использовано 60) FORMSfalseОтключить авто-добавление скрытых полей в <form>(refLinkId/userId)refLinkParamstring Альтернативное имя параметра реф-ссылки вместо reflinkid/rl(используется при изменении шаблона формирования ссылки)ATTR'lastclick'/ (по умолчанию firstclick)Атрибуция по первому клику включена по умолчанию. lastclickотключает “закрепление” первого клика и позволяет перезаписывать атрибуциюUTM_redirecttrueВключить режим “проталкивания” реф-метки через UTM (эмуляции UTM-меток). Полезно для CRM/коллтрекинга/форм, которые пробрасывают только utm_*.UTM_mapobject Карта соответствия UTM-параметров для переодпределения базового поведения UTM_redirect. Поддерживает плейсхолдеры: {refLinkId},{userId},{partnerId}. По умолчанию:utm_source=prm,utm_campaign={refLinkId},utm_content={userId}.Примеры
// TTL cookies prmo('config', 'TTL', 90); // Кастомное имя параметра реф-ссылки (например ?ref=XXX) prmo('config', 'refLinkParam', 'ref'); // Включить UTM-редирект с дефолтной картой prmo('config', 'UTM_redirect', true); // Своя карта UTM (важно: лучше задавать ДО включения UTM_redirect) prmo('config', 'UTM_map', { utm_source : 'prm', utm_medium : 'partner', utm_campaign: '{refLinkId}', utm_content : '{userId}' }); prmo('config', 'UTM_redirect', true);Как работает UTM_redirect
- Скрипт ищет реф-параметр в URL по ключам:
reflinkid,rlили поrefLinkParam(если задан). - Параметр может находиться как в query (
?rl=...), так и в hash-query (#/page?rl=...). - Затем формуруется новый URL с использованием UTM_меток, а старый параметр будет удален. Если не задано переопределение
UTM_map, то используется дефолтная картаutm_source=prm,utm_campaign={refLinkId},utm_content={userId}. - Cookies
_p_rlid,_p_pid,_p_uidсохраняются. - Выполняется редирект на новый URL.
- Скрипт ищет реф-параметр в URL по ключам:
-
Инициация скрипта
Запускает сессию трекинга:
- Читает query/cookies → сохраняет
_p_rlid,_p_pid,_p_uid. - При необходимости добавляет скрытые поля
refLinkIdиuserIdво все формы (кроме data-reflink="false"). - Разрешает отправку событий через
track/trackEx.
Вызов
prmo('init', key)Пример
prmo('init', 'XDdHbxkNJMsJ'); // сгенерированный ключ вы можете найте в кабинете администратора в разделе "Настройки" - "Интеграции" - "JS-код"Примечание: в скрипте используются антифрод-ограничения (бот/iframe/неактивная вкладка). На “чистом” визите без cookies и без действий пользователя фактическая инициализация может завершиться после первого действия (клик/скролл/ввод).
- Читает query/cookies → сохраняет
-
Передача события (устарело)
Короткий вызов для отправки события/статуса. Не обновляется - рекомендуется использовать trackEx.
Вызов
prmo('track', event, once, tranId, sum)Параметры
event (string) – имя события/статуса (например NEW, PURCHASE_CONFIRM) once (bool) – если true, скрипт поставит cookie-блокировку повторной отправки этого event (рекомендуется) tranId (string) – номер заказа/транзакции (для дедупликации начислений) sum (number) – сумма транзакцииПример
prmo('track', 'NEW', true); -
Передача события
Объектный вызов, поддерживающий статусы, дополнительные атрибуты и начисления.
По умолчанию приём событий по статусам может быть выключен. Чтобы передавать конкретные события, активируйте их в кабинете администратора: Настройки → Интеграции → JS-код → Настроить.
Вызов
prmo('trackEx', action)Ключи объекта
actionevent * (string) – событие/статус, который нужно установить once (bool) – предотвратить повторную отправку (по умолчанию - true) sum (number) – сумма транзакции/сделки tranId (string) – номер заказа/транзакции для дедупликации начислений (только при начислении вознаграждения) tranComment (string) – комментарий транзакции (используется при начислении вознаграждения) name (string) – имя лида offer (string) – идентификатор оффера (используется для переопределения оффера для расчета) comment (string) – комментарий лида user (string) – внешний идентификатор клиента; если не передан, то будет использоваться userId cf_* (any) – передача значения в кастом-поле, вместо * необходимо указать ID поля из PRMonline (cf_5690="gold" и т.д.)Пример
prmo('trackEx', { event : 'PURCHASE_CONFIRM', // Статус лида once : false, tranId: 'ORD-42', sum : 3000, // cумма транзакции/сделки (может быть передано только для событий PURCHASE и PURCHASE_CONFIRM) name : 'Иван', // → firstname=Иван offer : 'promo-25', // → offerIdent=promo‑25 tranComment : 'Оплата за февраль', // комментарий транзакции (используется только если начисляется вознаграждение) comment : 'VIP-клиент', cf_5492 : 'XL' });
Тестирование и отладка
-
Добавьте
?prmonline_check=1в URL — появится синее модальное окно, подтверждающее установку скрипта. -
Добавьте
&debug=1— включится подробный лог в консоли.
Примеры использования
Google Tag Manager — простой вызов
1) Создайте триггер на целевое действие (например “Заявка”).
2) Создайте новый тег → Пользовательский HTML.
3) Вставьте вызов:
prmo('track', 'NEW', true);
4) Привяжите триггер и опубликуйте.
Google Tag Manager — передача из Data Layer
Если сайт пушит события в dataLayer:
dataLayer.push({ event: 'purchase', orderId: 'ORD-42', orderValue: 1990, customer: { name: 'Иван', tier: 'gold' } });
Создайте Custom HTML-тег для отправки в PRM:
prmo('trackEx', {
event: 'PURCHASE_CONFIRM',
tranId: {{DL - orderId}},
sum : {{DL - orderValue}},
name : {{DL - customer.name}},
cf_tier: {{DL - customer.tier}},
tranComment: 'Оплата через СБП'
});
Tilda — отправка события после формы
Добавьте на страницу или в head код, который будет выполнять отправку события после отправки формы. Приведенный ниже фрагмент срабатывает на отправку формы form697157838 , получает объект с полями формы и выполняет отправку события NEW в PRMonline c передачей имени из формы.
<script>
$(document).ready(function(){
$('#form697157838').on('tildaform:aftersuccess', function() {
let p__fd = $('#form697157838').serializeArray().reduce((obj, item) => ({ ...obj, [item.name]: item.value }), {});
prmo('trackEx', {
event: 'NEW',
name : p__fd.Name
});
});
});
</script>
Cookies
Скрипт использует cookies (и резервно localStorage, если cookies недоступны). Список cookies:
| Имя | Назначение |
|---|---|
_p_rlid |
refLinkId |
_p_pid |
partnerId |
_p_uid |
userId |
_p_<event> |
блок повторной отправки, если once=true |