JavaScript API

mp.js o‘z kodingizga taklif qiladigan hamma narsa: rozilik, mijoz ID’ingiz, maxsus hodisalar, manzilsiz qadamlar, hook va HTML atributlari. Hech biri shart emas — kod parchasining o‘zi yozadi.

1. Chaqirishning ikki yo‘li

mp.js asinxron yuklanadi. Yuklanishidan oldin ishlaydigan kod chaqiruvlarini shu navbatga qo‘yadi: window.mp_q; mp.js kelishi bilanoq ishlab chiqadi. Keyin o‘sha funksiyalar shu obyekt orqali mavjud: 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);

Doimo shunday yozing: window.mp_q = window.mp_q || [], hech qachon bunday emas: window.mp_q = []. mp.js o‘sha massivni tinglashda davom etadi — yangi massiv har keyingi chaqiruvni, jumladan rozilik qaytarilishini yutib yuborardi.

O‘rnatish kodi navbatlaydigan shu vaqtinchalik funksiyani ham yaratadi: mp(...) . Ikkala shakl bir xil buyruqlarni oladi: consent, set, event, step, get, on va off.

2. Rozilik

Roziliksiz hech narsa yozilmaydi. Rozilik vositangizni MousePlayer tanisa, bu kerak emas; aks holda qarorni o‘zingiz uzating.

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'

Qaytarish sahifada darhol ta’sir qiladi: tinglovchilar olinadi, bufer tashlanadi, ulanish yopiladi. Qarang: MousePlayer va rozilik.

3. Mijoz ID’ingiz

O‘z ID’ingiz bilan bir shaxsning barcha qurilmalari ro‘yxatda bitta tashrifchiga aylanadi va yordam ishini tanish raqam bilan qidira olasiz. ID o‘sha brauzerning oxirgi 30 kundagi oldingi tashriflariga ham qo‘llanadi.

// 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']);

Email yoki ism emas, ichki raqam ishlating. MousePlayer tashrifchi ko‘ringan har joyda ID’ni ko‘rsatadi.

ID’larni qayta o‘qish

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. Maxsus hodisalar

Yuborgan hodisalaringiz qayta ijro vaqt chizig‘ida ko‘rinadi, maqsad va voronka qadami bo‘la oladi, webhook va ulangan vositalarga boradi. Parametrlar qisqa qiymatlar: raqamlar, 255 belgigacha satr, 64 belgigacha kalit.

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' }]);
  • Nomlar: kichik harf va pastki chiziq, ko‘pi bilan 128 belgi. Bir narsaga hamma joyda bir nom ishlating — maqsad nomni aynan moslaydi.
  • Parametrlarga shaxsiy ma’lumot qo‘ymang. Boshqa hodisadek saqlanadi va ko‘rsatiladi.

5. Manzilsiz qadamlar

Ekrani o‘zgarib, manzili o‘zgarmaydigan buyurtma yoki usta MousePlayer uchun bitta sahifa. step() har ekranni o‘z tasviri, issiqlik xaritasi qatori va voronka qadami bor alohida sahifa ko‘rishga aylantiradi.

// 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']);

Nom 1 dan 40 tagacha a-z, 0-9, _ va - belgilaridan; bo‘shliqlar chiziqchaga aylanadi, boshqasi konsol ogohlantirishi bilan rad etiladi. Haqiqiy navigatsiya qadamni tugatadi.

6. Mahsulot konteksti

Mahsulot sahifasida MousePlayer’ga nima ko‘rilayotganini ayting. Faqat shu kalitlar olinadi; mijoz ma’lumoti tasodifan kirmasligi uchun boshqasi tashlanadi.

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. Hook’lar

Kodingiz MousePlayer sahifada o‘lchaganiga javob bera oladi. Ilk lahzani o‘tkazmaslik kerak bo‘lsa, navbat orqali ro‘yxatdan o‘tkazing.

// 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);
NomQachonMaydonlar
exit_riskchiqish modeli ilk sahifa ko‘rishga ball berganda (har tashrifda bir marta)risk, reasons, session
churn_riskqaytgan tashrifchi qaytmasligi mumkin deb belgilangandarisk, reasons, session
offer_shownchiqish taklifi ko‘rsatilgandaart, risk, grund, session
offer_clicktugmasi bosilgandaart, risk, grund, session, fehler
offer_dismissyopilgandaart, risk, grund, session
survey_shownso‘rovnoma ochilgandasurvey, trigger, session
survey_answertashrifchi javob bergandasurvey, type, value, option, sentiment, session
survey_textqo‘shimcha matn yuborilganda (allaqachon filtrlangan)survey, text, session
survey_dismissso‘rovnoma javobsiz yopilgandasurvey, step, session

GTM ko‘prigi yoqilgan bo‘lsa, o‘sha hodisalar dataLayer’ga ham boradi (mp_exit_risk va hokazo). MousePlayer.exitRisk() joriy chiqish xavfini yoki ma’lum bo‘lmaguncha null qaytaradi.

8. HTML atributlari

<!-- 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 (yoki shu sinf: mp-masked): element ichidagi matn va kiritma brauzerdan chiqishidan oldin almashtiriladi — tasvirda, o‘zgarishlarda va bosish tavsifida.
  • data-mp-ignore (yoki mp-ignore) shakl maydonida: qiymati umuman yozilmaydi.
  • 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 dan biri. Boshqa qiymatlar e’tiborsiz.

9. O‘z tashriflaringizni chiqarish

Saytingizni bir marta shu bilan oching: ?mp_exclude=1 va bu brauzer boshqa yozilmaydi; ?mp_exclude=0 bekor qiladi. Butun ofis tarmog‘i uchun IP-manzillarni loyiha sozlamalariga kiriting.

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. Maxfiylik siyosatingiz havolasi

Tashrifchilar ular haqida yozilganini ko‘rib, o‘chira oladi. privacyUrl() shu brauzer ID’si bilan tayyor havola yoki hech narsa yo‘q bo‘lsa null qaytaradi, chunki roziliksiz yozilmagan.

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