JavaScript API

Всичко, което mp.js предлага на собствения ви код: съгласие, ваш клиентски идентификатор, персонализирани събития, стъпки без промяна на адреса, обработчици и HTML атрибути. Нищо тук не е задължително — кодът за вграждане записва и сам.

1. Два начина за извикване

mp.js се зарежда асинхронно. Код, който се изпълнява преди зареждането му, поставя извикванията си в опашката window.mp_q; mp.js я обработва веднага щом е наличен. След това същите функции са достъпни в window.MousePlayer.

// Before mp.js has loaded - the queue keeps every call: (window.mp_q = window.mp_q || []).push(['consent', true]); // After mp.js has loaded - the same, directly: MousePlayer.setConsent(true);

Винаги пишете window.mp_q = window.mp_q || [], никога window.mp_q = []. mp.js продължава да следи този масив — нов би погълнал всяко следващо извикване, включително оттегляне на съгласие.

Инсталационният код дефинира и заместител mp(...), който добавя в опашката по същия начин. Двете форми приемат същите команди: consent, set, event, step, get, on и off.

2. Съгласие

Без съгласие нищо не се записва. Ако инструментът ви за съгласие се разпознава от MousePlayer, не ви трябва нищо от това; иначе подайте решението сами.

MousePlayer.setConsent(true); // the visitor agreed MousePlayer.setConsent(false); // withdrawn: recording stops on this page MousePlayer.getConsentState(); // e.g. 'WAITING', 'GRANTED', 'GRANTED_LATE', 'DENIED', 'WITHDRAWN'

Оттеглянето влиза в сила на страницата веднага: обработчиците се премахват, буферираните данни се изхвърлят, връзката се затваря. Вижте MousePlayer и съгласието.

3. Вашият клиентски идентификатор

С ваш собствен идентификатор всички устройства на един човек стават един посетител в списъците и можете да търсите случай за поддръжка по познатия ви номер. Идентификаторът се прилага и към по-ранните посещения на същия браузър от последните 30 дни.

// After login - your own customer number, not an e-mail address: MousePlayer.setUserId('customer-4711'); // or through the queue (window.mp_q = window.mp_q || []).push(['set', 'user_id', 'customer-4711']);

Използвайте вътрешен номер, не имейл адрес или име. MousePlayer показва идентификатора навсякъде, където се появява посетителят.

Прочитане на идентификатори

MousePlayer.getSessionUrl(); // replay link of the running session MousePlayer.getSessionId(); MousePlayer.getVisitorId(); // null without consent // Through the queue, with a callback: (window.mp_q = window.mp_q || []).push(['get', 'session_url', function (url) { // e.g. attach it to a support ticket }]);

4. Персонализирани събития

Изпратените събития се появяват във времевата линия на възпроизвеждането, могат да бъдат цели и стъпки от фуния и отиват към webhook заявките и свързаните ви инструменти. Параметрите са кратки стойности: числа, низове до 255 знака, ключове до 64 знака.

MousePlayer.trackEvent('newsletter_signup', { source: 'footer' }); MousePlayer.trackEvent('purchase', { value: 129.90, currency: 'EUR' }); (window.mp_q = window.mp_q || []).push(['event', 'add_to_cart', { sku: 'SKU-123' }]);
  • Имена: малки букви с долни черти, най-много 128 знака. Използвайте едно и също име за едно и също нещо навсякъде — целта съпоставя имената точно.
  • Не поставяйте лични данни в параметрите. Те се съхраняват и показват като всяко друго събитие.

5. Стъпки без промяна на адреса

Завършване на поръчка или съветник, който променя екрана, но не адреса си, е една страница за MousePlayer. step() превръща всеки екран в отделно показване на страница — със собствена снимка, ред в топлинната карта и стъпка във фуния.

// A wizard that keeps its address: MousePlayer.step('shipping'); MousePlayer.step('payment'); MousePlayer.step(''); // back to the page itself (window.mp_q = window.mp_q || []).push(['step', 'payment']);

Името е от 1 до 40 знака от a-z, 0-9, _ и -; интервалите стават тирета, всичко друго се отхвърля с предупреждение в конзолата. Реална навигация приключва стъпката.

6. Продуктов контекст

На продуктова страница кажете на MousePlayer какво се разглежда. Приемат се само тези ключове; всичко друго се изхвърля, за да не попаднат случайно клиентски данни.

MousePlayer.setContext({ page_type: 'product', product_id: 'SKU-123', variant_id: 'SKU-123-42', price: 89.90, currency: 'EUR', category: 'running-shoes', in_stock: true, cart_value: 0, cart_items: 0 });

7. Обработчици на събития

Кодът ви може да реагира на измереното от MousePlayer на страницата. Регистрирайте чрез опашката, ако обработчикът не трябва да пропусне първия момент.

// Register early - exit_risk fires once, a few seconds after the visit starts: (window.mp_q = window.mp_q || []).push(['on', 'exit_risk', function (e) { console.log(e.risk, e.reasons, e.session); }]); function onAnswer(e) { /* e.survey, e.value, e.sentiment */ } MousePlayer.on('survey_answer', onAnswer); MousePlayer.off('survey_answer', onAnswer);
ИмеКогаПолета
exit_riskмоделът за излизане е оценил първото показване на страница (веднъж на посещение)risk, reasons, session
churn_riskзавръщащ се посетител е маркиран като вероятно отпадащrisk, reasons, session
offer_shownофертата при излизане се показваart, risk, grund, session
offer_clickбутонът ѝ е натиснатart, risk, grund, session, fehler
offer_dismissтя е затворенаart, risk, grund, session
survey_shownанкета се отваряsurvey, trigger, session
survey_answerпосетителят отговаряsurvey, type, value, option, sentiment, session
survey_textдопълнителният текст се изпраща (вече филтриран)survey, text, session
survey_dismissанкетата се затваря без отговорsurvey, step, session

Когато GTM мостът е включен, същите събития отиват и в dataLayer (mp_exit_risk и т.н.). MousePlayer.exitRisk() връща текущия риск от излизане или null, преди да е известен.

8. HTML атрибути

<!-- Nothing typed in here leaves the browser as text --> <section data-mp-mask> ... </section> <!-- The value of this field is never recorded --> <input name="voucher" data-mp-ignore> <!-- Tell MousePlayer what an element is --> <span class="amount" data-mp-role="price">89,90 EUR</span>
  • data-mp-mask (или класът mp-masked): текстът и въведеното в елемента се заменят, преди да напуснат браузъра — в снимката, в промените и в описанията на кликванията.
  • data-mp-ignore (или mp-ignore) върху поле на формуляр: стойността му изобщо не се записва.
  • data-mp-role: едно от price, price_old, cta_cart, cta_checkout, product_image, variant, shipping_info, returns_info, reviews, rating, stock, coupon, payment_methods, search, filter, heading, article_body, nav, media, form_field, contact_info. Другите стойности се пренебрегват.

9. Изключване на собствените ви посещения

Отворете сайта си веднъж с ?mp_exclude=1 и този браузър повече няма да се записва; ?mp_exclude=0 отменя това. За цяла офис мрежа вместо това въведете IP адресите в настройките на проекта.

https://www.your-shop.com/?mp_exclude=1 <!-- this browser is not recorded any more --> https://www.your-shop.com/?mp_exclude=0 <!-- recorded again -->

10. Връзка за политиката ви за поверителност

Посетителите могат да видят и изтрият записаното за тях. privacyUrl() връща готовата връзка с идентификатора на този браузър — или null, ако няма такъв, защото без съгласие нищо не е записано.

var link = MousePlayer.privacyUrl(); // language from <html lang>, or e.g. privacyUrl('de') if (link) document.getElementById('my-data').href = link;