Перейти к содержимому

JavaScript API

JavaScript‑SDK PRMOnline (track.js) позволяет собирать данные о реферальном трафике и конверсиях на любой странице.
Библиотека добавляет в глобальную область функцию prmo(), которую вызывают короткими командами.
Вызовы, сделанные до загрузки основного скрипта, автоматически ставятся в очередь.

Подключение скрипта

Подробнее о том, где взять ваш персональный скрипт и как его подключить, читайте в разделе про JS-скрипт.

Пример установки скрипта:

<script>
! function(e, r, t, n, o) {
    e.prmo = e.prmo || function() {
        e.prmo.q = e.prmo.q || [], e.prmo.q.push(arguments)
    }, 
    n = r.getElementsByTagName(t)[0], 
    (o = r.createElement(t)).async = !0, 
    o.src = "https://c1.prmonline.ru/js/track_un_v7.js", 
    n.parentNode.insertBefore(o, n)
}(window, document, "script");
prmo('config', 'TTL', 30);
prmo('init', 'XDdHbxkNJMsJ');
prmo('track', 'FOLLOW');
</script>

Описание методов

  • Изменение конфигурации

    Изменение параметров запуска скрипта. Вызывается до init.

    Вызов

    prmo('config', param, value)

    Возможные параметры

    ПараметрВозможные значенияНазначение
    TTL int > 0, количество дней Срок жизни cookies (по умолчанию 60 дней)
    FORMS false Отключить авто‑добавление скрытых полей в <form>
    UTM_redirect true Активировать режим эмуляции UTM-меток (полезно для повышения совместимости, refLinkId будет сохраняться как utm_campaign)
    refLinkParam string Альтернативное имя параметра вместо reflinkid / rl (используется при изменении шаблона формирования ссылки)

    Пример

    prmo('config', 'TTL', 90);
    prmo('config', 'UTM_redirect', true);
  • Инициация скрипта

    Запускает сессию трекинга:

    1. Читает query‑строку и cookies → сохраняет _p_rlid, _p_pid, _p_uid.

    2. При необходимости добавляет скрытые поля refLinkId и userId во все формы.

    3. Разрешает дальнейшие вызовы track.

    Вызов

    prmo('init', key)

    Пример

    prmo('init', 'XDdHbxkNJMsJ');   // сгенерированный ключ вы можете найте в кабинете администратора в разделе "Настройки" - "Интеграции" - "JS-код"
  • Изменение статуса (устарело)

    Упрощенный вариант для передачи изменения статуса лида.

    prmo('track', event, once)

  • Передача события

    Объектный вызов, поддерживающий как изменение статуса, так и начисление вознаграждения.

    По умолчанию запрещен прием статусов через JS API. Чтобы передать событие по какому-либо статусу, необходимо сначала активировать прием событий по этому статусу в кабинете администратора в Настройки → Интеграции → JS-код → Настроить

    Вызов

    prmo('trackEx', action)

    Возможные ключи объекта action

    event *      (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',     // Статус лида
      /* дополнительные атрибуты */
      name         : 'Иван',              // → firstname=Иван
      offer        : 'promo‑25',          // → offerIdent=promo‑25
    sum : 3000, // cумма транзакции/сделки (может быть передано только для событий PURCHASE и PURCHASE_CONFIRM) tranComment : 'Оплата за февраль', // комментарий транзакции (используется только если начисляется вознаграждение) cf_5492 : 'XL' });

Тестирование и отладка

  • Добавьте ?prmonline_check=1 в URL — появится синее модальное окно, подтверждающее, что скрипт найден.

  • Добавьте &debug=1 — включится подробный лог в консоли.

Примеры использования

Google Tag Manager - Простой вызов

1. Определите или создайте триггер, по которому должен происходить вызов события (например, передать событие "Заявка")

2. Создайте новый тег

3. Выберите Пользовательский HTML и вставьте вызов функции:

prmo('track', 'NEW');

4. Выберите желаемый триггер и опубликуйте  тег 

Google Tag Manager - Передача из Data Layer

Если сайт уже пушит события в dataLayer, то используйте их для отправки события:

Создайте ещё один Custom HTML‑тег для отправки события в PRMonline:

Срабатывание — на целевое событие, например, покупку.

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', {
        name: p__fd.Name,
        event: 'NEW'
    });
  })
})
</script>

Cookies

Скрипт использует куки для работы. Список куки в таблице ниже:

ИмяНазначение
_p_rlid refLinkId
_p_pid partnerId
_p_uid userId
_p_<event> блок повторной отправки, если once=true