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 চেনে এমন সম্মতির সরঞ্জাম হলে এগুলো দরকার নেই; অন্যথায় সিদ্ধান্ত নিজে জানান।

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-কে জানান কী দেখা হচ্ছে। শুধু এই কীগুলো নেয়; ভুলে গ্রাহকের ডেটা না ঢুকতে বাকি সব বাদ যায়।

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() এই ব্রাউজারের ID-সহ তৈরি লিংক দেয় — অথবা না থাকলে null, কারণ সম্মতি ছাড়া কিছু রেকর্ড হয়নি।

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