JavaScript API

Minden, amit az mp.js saját kódjának kínál: hozzájárulás, saját ügyfélazonosító, egyedi események, címváltozás nélküli lépések, hookok és HTML-attribútumok. Egyik sem kötelező — a kódrészlet önmagában rögzít.

1. Két hívási mód

Az mp.js aszinkron töltődik. A betöltése előtt futó kód a hívásait ebbe a várólistába helyezi: window.mp_q; az mp.js elérhetősége után feldolgozza. Később ugyanezek a függvények elérhetők itt: 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);

Mindig ezt írja: window.mp_q = window.mp_q || [], soha ne ezt: window.mp_q = []. Az mp.js továbbra is ezt a tömböt figyeli — egy új tömb elnyelne minden későbbi hívást, a hozzájárulás visszavonását is.

A telepítőkódrészlet egy mp(...) helyettesítő függvényt is megad, amely ugyanígy várólistába állít. Mindkét forma ugyanazokat a parancsokat fogadja: consent, set, event, step, get, on és off.

2. Hozzájárulás

Hozzájárulás nélkül semmit nem rögzítünk. Ha hozzájáruláskezelőjét a MousePlayer felismeri, erre nincs szükség; egyébként maga adja tovább a döntést.

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'

A visszavonás az oldalon azonnal életbe lép: a figyelőket eltávolítjuk, a pufferelt adatokat eldobjuk, a kapcsolatot lezárjuk. Lásd: MousePlayer és hozzájárulás.

3. Saját ügyfélazonosítója

Saját azonosítóval egy személy minden eszköze egyetlen látogatóvá válik a listákban, és a támogatási esetet az Ön által ismert számmal keresheti. Az azonosítót ugyanazon böngésző utolsó 30 napban történt korábbi látogatásaira is alkalmazzuk.

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

Belső számot használjon, ne e-mail-címet vagy nevet. A MousePlayer mindenütt mutatja az azonosítót, ahol a látogató megjelenik.

Azonosítók visszaolvasása

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. Egyedi események

Az elküldött események a visszajátszás idővonalán jelennek meg, célok és tölcsérlépések lehetnek, és eljutnak a webhookokhoz és a kapcsolt eszközökhöz. A paraméterek rövid értékek: számok, legfeljebb 255 karakteres szövegek, legfeljebb 64 karakteres kulcsok.

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' }]);
  • Nevek: kisbetűvel és aláhúzásjelekkel, legfeljebb 128 karakter. Ugyanarra mindenütt ugyanazt a nevet használja — a cél pontos névegyezést keres.
  • Ne tegyen személyes adatot a paraméterekbe. Mint minden más eseményt, ezeket is tároljuk és megjelenítjük.

5. Lépések címváltozás nélkül

A képernyőt, de címet nem váltó pénztár vagy varázsló a MousePlayer számára egyetlen oldal. A step() minden képernyőt külön oldalmegtekintéssé tesz — saját pillanatképpel, hőtérképsorral és tölcsérlépéssel.

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

A név 1–40 karakter lehet az a–z, 0–9, _ és - készletből; a szóközök kötőjellé válnak, minden mást konzolfigyelmeztetéssel elutasítunk. A valódi navigáció lezárja a lépést.

6. Termékkontextus

A termékoldalon közölje a MousePlayerrel, mit néznek. Csak ezeket a kulcsokat fogadjuk el; minden mást eldobunk, nehogy ügyféladat kerüljön be véletlenül.

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. Hookok

Kódja reagálhat arra, amit a MousePlayer az oldalon mér. Ha a hook nem maradhat le az első pillanatról, a várólistán át regisztrálja.

// 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);
NévMikorMezők
exit_riska kilépési modell értékelte az első oldalmegtekintést (látogatásonként egyszer)risk, reasons, session
churn_riskegy visszatérő látogatót valószínű lemorzsolódónak jelöltünkrisk, reasons, session
offer_shownmegjelenik a kilépési ajánlatart, risk, grund, session
offer_clicka gombjára kattintanakart, risk, grund, session, fehler
offer_dismissbezárjákart, risk, grund, session
survey_shownmegnyílik egy felméréssurvey, trigger, session
survey_answera látogató válaszolsurvey, type, value, option, sentiment, session
survey_textelküldik a kiegészítő szöveget (már szűrve)survey, text, session
survey_dismissa felmérést válasz nélkül bezárjáksurvey, step, session

Ha a GTM-híd be van kapcsolva, ugyanezek az események a dataLayerbe is bekerülnek (mp_exit_risk és így tovább). MousePlayer.exitRisk() az aktuális kilépési kockázatot adja vissza, vagy null értéket, amíg az nem ismert.

8. HTML-attribútumok

<!-- 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 (vagy a mp-masked osztály): az elemen belüli szöveget és bevitelt még a böngésző elhagyása előtt lecseréljük — a pillanatképben, a változásokban és a kattintásleírásokban.
  • data-mp-ignore (vagy mp-ignore) űrlapmezőn: értékét egyáltalán nem rögzítjük.
  • data-mp-role: a 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 egyike. Más értékeket figyelmen kívül hagyunk.

9. Saját látogatásai kizárása

Egyszer nyissa meg webhelyét ezzel: ?mp_exclude=1, és ezt a böngészőt többé nem rögzítjük; a ?mp_exclude=0 visszavonja ezt. Teljes irodai hálózat esetén inkább a projektbeállításokban adja meg az IP-címeket.

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. Link az adatvédelmi tájékoztatóhoz

A látogatók megnézhetik és törölhetik a róluk rögzített adatokat. privacyUrl() a kész linket adja vissza e böngésző azonosítójával — vagy null értéket, ha nincs azonosító, mert hozzájárulás nélkül semmit nem rögzítettünk.

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