Главная Разработчикам

Разработчикам

От Команда PRMonline
• 2 статьи

JavaScript API

JavaScript-SDK PRM Online (track.js) позволяет собирать данные о реферальном трафике и конверсиях на любой странице. Библиотека добавляет в глобальную область функцию prmo(), которую вызывают короткими командами. Вызовы, сделанные до загрузки основного скрипта, автоматически ставятся в очередь и выполняются после загрузки. Подключение скрипта Подробнее о том, где взять ваш персональный скрипт и как его подключить, читайте в статье «Скрипт на сайт». Пример установки скрипта: <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.js"; 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) Возможные параметры TTL (int, дней) — Срок жизни cookies: от 1 до 120 дней, по умолчанию 60. Если задано значение вне этого диапазона, будет использовано 60. FORMS (false) — Отключить автодобавление скрытых полей в <form> (refLinkId/userId). refLinkParam (string) — Дополнительное имя параметра реф-ссылки: скрипт проверяет его первым, затем reflinkid и rl (используется при изменении шаблона формирования ссылки). ATTR ('lastclick'; по умолчанию firstclick) — Атрибуция по первому клику включена по умолчанию. lastclick отключает «закрепление» первого клика и позволяет перезаписывать атрибуцию. UTM_redirect (true) — Включить режим «проталкивания» реф-метки через UTM (эмуляции UTM-меток). Полезно для CRM/коллтрекинга/форм, которые пробрасывают только utm_*. UTM_map (object) — Карта соответствия 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'); // Вариант 1: UTM-редирект с дефолтной картой prmo('config', 'UTM_redirect', true); // Вариант 2: UTM-редирект со своей картой 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. Инициализация скрипта Запускает сессию трекинга: 1. Читает query/cookies → сохраняет _p_rlid, _p_pid, _p_uid. 2. При необходимости добавляет скрытые поля refLinkId и userId во все формы, кроме форм с атрибутом data-reflink="false". 3. Разрешает отправку событий через track / trackEx. Вызов prmo('init', key) Пример prmo('init', 'XDdHbxkNJMsJ'); // сгенерированный ключ можно найти в кабинете администратора: Настройки → Интеграции → JS-код Примечание: в скрипте используются антифрод-ограничения (бот/iframe/неактивная вкладка). При «чистом» визите без cookies и без действий пользователя фактическая инициализация может завершиться после первого действия (клик/скролл/ввод). Передача события (устарело) Короткий вызов для отправки события/статуса. Не обновляется — рекомендуется использовать trackEx. Вызов prmo('track', event, once, tranId, sum) Параметры event (string) – имя события/статуса (например, NEW, PURCHASE_CONFIRM) once (bool) – если true, скрипт поставит cookie-блокировку повторной отправки этого event (по умолчанию true, рекомендуется) tranId (string) – номер заказа/транзакции (для дедупликации начислений) sum (number) – сумма транзакции Пример prmo('track', 'NEW', true); Передача события Объектный вызов, поддерживающий статусы, дополнительные атрибуты и начисления. По умолчанию прием событий по статусам может быть выключен. Чтобы передавать конкретные события, активируйте их в кабинете администратора: Настройки → Интеграции → JS-код → Настроить. Вызов prmo('trackEx', action) Ключи объекта action event * (string) – событие/статус, который нужно установить once (bool) – предотвратить повторную отправку (по умолчанию false: блокировка ставится только при once: true) sum (number) – сумма транзакции/сделки tranId (string) – номер заказа/транзакции для дедупликации начислений (только при начислении вознаграждения) tranComment (string) – комментарий транзакции (используется при начислении вознаграждения) name (string) – имя лида offer (string) – идентификатор оффера (используется для переопределения оффера для расчета) comment (string) – комментарий лида user (string) – внешний идентификатор клиента; если не передан, то будет использоваться userId cf_* (any) – передача значения в кастом-поле, вместо * необходимо указать ID поля из PRM Online (cf_5690="gold" и т. д.) Пример prmo('trackEx', { event : 'PURCHASE_CONFIRM', // Статус лида once : false, tranId: 'ORD-42', sum : 3000, // сумма транзакции/сделки (передается только для событий PURCHASE и PURCHASE_CONFIRM) name : 'Иван', // → firstname=Иван offer : 'promo-25', // → offerIdent=promo-25 tranComment : 'Оплата за февраль', // комментарий транзакции (используется только если начисляется вознаграждение) comment : 'VIP-клиент', cf_5492 : 'XL' }); Тестирование и отладка - Добавьте ?prmonline_check=1 в URL — появится синее модальное окно, подтверждающее установку скрипта. - Добавьте в URL debug=1 (например, ?prmonline_check=1&debug=1) — включится подробный лог в консоли. Примеры использования Google Tag Manager — простой вызов 1. Создайте триггер на целевое действие (например, «Заявка»). 2. Создайте новый тег → Пользовательский HTML. 3. Вставьте вызов: <script>prmo('track', 'NEW', true);</script> 4. Привяжите триггер и опубликуйте. Google Tag Manager — передача из Data Layer Если сайт отправляет события в dataLayer: dataLayer.push({ event: 'purchase', orderId: 'ORD-42', orderValue: 1990, customer: { name: 'Иван', tier: 'gold' } }); Создайте Custom HTML-тег для отправки в PRM: <script> prmo('trackEx', { event: 'PURCHASE_CONFIRM', tranId: {{DL - orderId}}, sum : {{DL - orderValue}}, name : {{DL - customer.name}}, cf_5492: {{DL - customer.tier}}, // вместо 5492 укажите ID пользовательского поля tranComment: 'Оплата через СБП' }); </script> Tilda — отправка события после формы Добавьте на страницу или в head код, который будет отправлять событие после отправки формы. Приведенный ниже фрагмент срабатывает на отправку формы form697157838, получает объект с полями формы и отправляет событие NEW в PRM Online с передачей имени из формы. <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; имя события в нижнем регистре, например _p_new | Срок жизни cookies задается параметром TTL.

Обновлено Sep 25, 2026