JavaScript API

अपने कोड के लिए mp.js की सब सुविधाएँ: सहमति, ग्राहक ID, कस्टम इवेंट, बिना पता बदले चरण, हुक और 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.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 से व्यक्ति के सारे डिवाइस सूची में एक आगंतुक और सहायता का मामला ज्ञात नंबर से मिलता है। उसी ब्राउज़र की पिछले 30 दिन की विज़िट पर भी ID लागू है।

// 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.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. हुक

आपका कोड पृष्ठ मापन पर प्रतिक्रिया कर सकता है। पहला पल न चूके तो कतार से पंजीकृत करें।

// 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 वाला तैयार लिंक देता है — न हो तो null क्योंकि सहमति बिना रिकॉर्ड नहीं हुआ।

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