JavaScript API

mp.js өз кодуңузга бергендин баары: макулдук, кардар IDңиз, ыңгайлаштырылган окуялар, дарек өзгөрбөгөн кадамдар, hooks жана 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. Өз кардар IDңиз

Өз IDңиз менен бир адамдын бардык түзмөктөрү тизмеде бир конок болуп биригет жана колдоо кайрылуусун сиз билген номерден издей аласыз. ID ошол эле браузердин акыркы 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 конок көрүнгөн бардык жерде IDни көрсөтөт.

IDлерди кайра окуу

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. Ыңгайлаштырылган окуялар

Жөнөткөн окуяларыңыз жаздыруунун убакыт тилкесинде көрүнөт, максат жана воронка кадамы боло алат, вебхуктарыңызга жана туташкан куралдарга барат. Параметрлер кыска маанилер: сандар,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. Hooks

Кодуңуз MousePlayer бетте өлчөгөн нерселерге жооп бере алат. Hook биринчи учурду өткөрбөшү керек болсо, кезек аркылуу каттаңыз.

// 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() бул браузердин IDси бар даяр шилтемени кайтарат; ID жок болсо null, анткени макулдуксуз эч нерсе жазылган эмес.

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