JavaScript-API

Alt det, mp.js tilbyder din egen kode: samtykke, dit kunde-ID, egne hændelser, trin uden adresseændring, hooks og HTML-attributter. Intet her er påkrævet - kodestykket alene optager.

1. To måder at kalde det på

mp.js indlæses asynkront. Kode, der kører før indlæsningen, lægger sine kald i køen window.mp_q; mp.js behandler den, så snart det er til stede. Derefter findes de samme funktioner på 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);

Skriv altid window.mp_q = window.mp_q || [], aldrig window.mp_q = []. mp.js lytter fortsat på det array - et nyt ville opsluge alle senere kald, inklusive tilbagetrækning af samtykke.

Installationskodestykket definerer også en stub mp(...) der sætter kald i kø på samme måde. Begge former modtager de samme kommandoer: consent, set, event, step, get, on og off.

2. Samtykke

Uden samtykke optages intet. Hvis dit samtykkeværktøj genkendes af MousePlayer, behøver du ikke dette; ellers skal du selv videresende beslutningen.

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'

Tilbagetrækning træder straks i kraft på siden: lyttere fjernes, bufferdata kasseres, og forbindelsen lukkes. Se MousePlayer og samtykke.

3. Dit kunde-ID

Med dit eget ID bliver én persons enheder til én besøgende i listerne, og du kan søge efter en supportsag med det nummer, du kender. ID'et anvendes også på tidligere besøg fra samme browser i de seneste 30 dage.

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

Brug et internt nummer, ikke en e-mailadresse eller et navn. MousePlayer viser ID'et overalt, hvor den besøgende vises.

Læs ID'er tilbage

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. Brugerdefinerede hændelser

Hændelser, du sender, vises på afspilningens tidslinje, kan være mål og tragttrin og sendes til dine webhooks og tilknyttede værktøjer. Parametre er korte værdier: tal, tekster på op til 255 tegn, nøgler på op til 64 tegn.

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' }]);
  • Navne: små bogstaver med understregninger, højst 128 tegn. Brug samme navn til samme ting overalt - et mål matcher navnet præcist.
  • Læg ikke personoplysninger i parametre. De gemmes og vises som alle andre hændelser.

5. Trin uden adresseændring

Et betalingsforløb eller en guide, der ændrer skærmbillede, men ikke adresse, er én side for MousePlayer. step() gør hvert skærmbillede til en selvstændig sidevisning - med eget øjebliksbillede, egen varmekortrække og eget tragttrin.

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

Et navn har 1 til 40 tegn fra a-z, 0-9, _ og -; mellemrum bliver bindestreger, alt andet afvises med en advarsel i konsollen. Rigtig navigation afslutter trinnet.

6. Produktkontekst

Fortæl MousePlayer, hvad der vises på en produktside. Kun disse nøgler accepteres; alt andet kasseres, så kundedata ikke slipper ind ved et uheld.

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

Din kode kan reagere på det, MousePlayer måler på siden. Registrer via køen, hvis hooken skal fange det første øjeblik.

// 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);
NavnHvornårFelter
exit_riskafgangsmodellen har vurderet den første sidevisning (én gang pr. besøg)risk, reasons, session
churn_risken tilbagevendende besøgende markeres med sandsynligt frafaldrisk, reasons, session
offer_showntilbuddet ved afgang visesart, risk, grund, session
offer_clickdets knap klikkesart, risk, grund, session, fehler
offer_dismissdet lukkesart, risk, grund, session
survey_shownen undersøgelse åbnessurvey, trigger, session
survey_answerden besøgende svarersurvey, type, value, option, sentiment, session
survey_textden opfølgende tekst sendes (allerede filtreret)survey, text, session
survey_dismissundersøgelsen lukkes uden svarsurvey, step, session

Når GTM-broen er aktiveret, sendes de samme hændelser også til dataLayer (mp_exit_risk og så videre). MousePlayer.exitRisk() returnerer den aktuelle risiko for at forlade siden eller null, før den er kendt.

8. HTML-attributter

<!-- 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 (eller klassen mp-masked): tekst og input inde i elementet erstattes, før de forlader browseren - i øjebliksbilledet, i ændringer og i klikbeskrivelser.
  • data-mp-ignore (eller mp-ignore) på et formularfelt: dets værdi optages slet ikke.
  • data-mp-role: en af 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. Andre værdier ignoreres.

9. Udeluk dine egne besøg

Åbn dit websted én gang med ?mp_exclude=1 så optages denne browser ikke længere; ?mp_exclude=0 ophæver det. For et helt kontornetværk skal du i stedet angive IP-adresserne i projektindstillingerne.

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. Et link til din privatlivspolitik

Besøgende kan se og slette det, der er optaget om dem. privacyUrl() returnerer det færdige link med denne browsers ID - eller null, hvis der ikke findes et, fordi intet blev optaget uden samtykke.

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