JavaScript API

Sve što mp.js nudi vašem kodu: saglasnost, vaš ID korisnika, prilagođeni događaji, koraci bez promjene adrese, kuke i HTML atributi. Ništa od ovoga nije obavezno — sam isječak koda već snima.

1. Dva načina pozivanja

mp.js se učitava asinhrono. Kod koji se izvrši prije njegovog učitavanja stavlja pozive u red window.mp_q; mp.js ih obrađuje čim se učita. Nakon toga iste funkcije dostupne su na 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);

Uvijek pišite window.mp_q = window.mp_q || [], nikada window.mp_q = []. mp.js nastavlja slušati taj niz — novi niz progutao bi svaki naredni poziv, uključujući povlačenje saglasnosti.

Instalacijski isječak definiše i zamjensku funkciju mp(...) koja pozive stavlja u red na isti način. Oba oblika prihvataju iste naredbe: consent, set, event, step, get, on i off.

2. Saglasnost

Bez saglasnosti ništa se ne snima. Ako MousePlayer prepoznaje vaš alat za saglasnost, ništa od ovoga nije potrebno; u suprotnom sami proslijedite odluku.

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'

Povlačenje odmah stupa na snagu na stranici: slušaoci se uklanjaju, podaci u međuspremniku odbacuju, veza se zatvara. Pogledajte MousePlayer i saglasnost.

3. Vaš ID korisnika

Uz vaš vlastiti ID svi uređaji jedne osobe postaju jedan posjetilac u listama, a slučaj podrške možete tražiti po broju koji poznajete. ID se primjenjuje i na ranije posjete istog preglednika iz posljednjih 30 dana.

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

Koristite interni broj, a ne e-mail adresu ili ime. MousePlayer prikazuje ID svuda gdje se pojavljuje posjetilac.

Čitanje ID-jeva

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. Prilagođeni događaji

Događaji koje pošaljete pojavljuju se na vremenskoj liniji reprodukcije, mogu biti ciljevi i koraci lijevka te se šalju vašim webhookovima i povezanim alatima. Parametri su kratke vrijednosti: brojevi, tekstovi do 255 znakova, ključevi do 64 znaka.

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' }]);
  • Nazivi: mala slova s donjim crtama, najviše 128 znakova. Svuda koristite isti naziv za istu stvar — cilj zahtijeva potpuno podudaranje naziva.
  • U parametre ne unosite lične podatke. Pohranjuju se i prikazuju kao svaki drugi događaj.

5. Koraci bez promjene adrese

Plaćanje ili čarobnjak koji mijenja prikaz, ali ne i adresu, za MousePlayer je jedna stranica. step() pretvara svaki prikaz u zaseban pregled stranice — s vlastitim snimkom stranice, redom u toplotnoj mapi i korakom lijevka.

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

Naziv ima od 1 do 40 znakova iz skupa a-z, 0-9, _ i -; razmaci postaju crtice, a sve ostalo odbacuje se uz upozorenje u konzoli. Stvarna navigacija završava korak.

6. Kontekst proizvoda

Na stranici proizvoda recite MousePlayeru šta se pregledava. Prihvataju se samo ovi ključevi; sve ostalo se odbacuje kako podaci o korisnicima ne bi slučajno dospjeli u njih.

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

Vaš kod može reagovati na ono što MousePlayer mjeri na stranici. Registrujte ga kroz red ako kuka ne smije propustiti prvi trenutak.

// 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);
NazivKadaPolja
exit_riskmodel izlaska ocijeni prvi pregled stranice (jednom po posjeti)risk, reasons, session
churn_riskpovratni posjetilac označi se kao neko ko će vjerovatno trajno otićirisk, reasons, session
offer_shownprikaže se ponuda pri izlaskuart, risk, grund, session
offer_clickklikne se na njeno dugmeart, risk, grund, session, fehler
offer_dismisszatvori seart, risk, grund, session
survey_shownotvori se anketasurvey, trigger, session
survey_answerposjetilac odgovorisurvey, type, value, option, sentiment, session
survey_textpošalje se prateći tekst (već filtriran)survey, text, session
survey_dismissanketa se zatvori bez odgovorasurvey, step, session

Kada je GTM most uključen, isti događaji idu i u dataLayer (mp_exit_risk i tako dalje). MousePlayer.exitRisk() vraća trenutni rizik od izlaska ili null prije nego što bude poznat.

8. HTML atributi

<!-- 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 (ili klasa mp-masked): tekst i unos unutar elementa zamjenjuju se prije nego što napuste preglednik — u snimku stranice, promjenama i opisima klikova.
  • data-mp-ignore (ili mp-ignore) na polju obrasca: njegova vrijednost se uopće ne snima.
  • data-mp-role: jedna od vrijednosti 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. Druge vrijednosti se zanemaruju.

9. Isključivanje vlastitih posjeta

Jednom otvorite svoj sajt s parametrom ?mp_exclude=1 i ovaj preglednik se više ne snima; ?mp_exclude=0 poništava to. Za cijelu uredsku mrežu umjesto toga unesite IP adrese u postavke projekta.

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 za vašu politiku privatnosti

Posjetioci mogu vidjeti i izbrisati ono što je o njima snimljeno. privacyUrl() vraća gotov link s ID-jem ovog preglednika — ili null ako ga nema jer bez saglasnosti ništa nije snimljeno.

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