JavaScript-API

Alt mp.js tilbyr din egen kode: samtykke, kunde-ID, egendefinerte hendelser, trinn uten adresseendring, hooks og HTML-attributter. Ingenting her kreves — kodestykket alene tar opp.

1. To måter å kalle på

mp.js lastes asynkront. Kode som kjører før det er lastet, legger kallene i køen window.mp_q; mp.js behandler dem så snart det er tilgjengelig. Etterpå finnes de samme funksjonene 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 alltid window.mp_q = window.mp_q || [], aldri window.mp_q = []. mp.js fortsetter å lytte på det arrayet — et nytt ville slukt alle senere kall, også tilbaketrekking av samtykke.

Installasjonskodestykket definerer også en stubb mp(...) som kølegger på samme måte. Begge former tar de samme kommandoene: consent, set, event, step, get, on og off.

2. Samtykke

Uten samtykke tas ingenting opp. Hvis samtykkeverktøyet er et MousePlayer kjenner igjen, trenger du ingenting av dette; ellers sender du beslutningen videre selv.

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'

Tilbaketrekking virker straks på siden: lyttere fjernes, mellomlagrede data forkastes, forbindelsen lukkes. Se MousePlayer og samtykke.

3. Din kunde-ID

Med en egen ID blir alle enhetene til én person én besøkende i listene, og du kan søke etter en supportsak med nummeret du kjenner. ID-en brukes også på tidligere besøk fra samme nettleser de siste 30 dagene.

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

Bruk et internt nummer, ikke en e-postadresse eller et navn. MousePlayer viser ID-en overalt der den besøkende vises.

Les ID-er tilbake

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. Egendefinerte hendelser

Hendelser du sender, vises i avspillingens tidslinje, kan være mål og trakttrinn og sendes til webhooks og tilknyttede verktøy. Parametere er korte verdier: tall, tekst på opptil 255 tegn, nøkler på opptil 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' }]);
  • Navn: små bokstaver med understreker, høyst 128 tegn. Bruk samme navn på samme ting overalt — et mål krever nøyaktig samsvar med navnet.
  • Ikke legg personopplysninger i parametere. De lagres og vises som alle andre hendelser.

5. Trinn uten adresseendring

En kasse eller veiviser som endrer skjermbilde, men ikke adresse, er én side for MousePlayer. step() gjør hvert skjermbilde til en egen sidevisning — med egen øyeblikkskopi, varmekartrad og trakttrinn.

// 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 består av 1 til 40 tegn fra a-z, 0-9, _ og -; mellomrom blir bindestreker, alt annet avvises med en advarsel i konsollen. En faktisk navigasjon avslutter trinnet.

6. Produktkontekst

Fortell MousePlayer hva som vises på en produktside. Bare disse nøklene godtas; alt annet forkastes slik at ingen kundedata kommer med ved et uhell.

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

Koden din kan reagere på det MousePlayer måler på siden. Registrer via køen hvis hooken ikke må gå glipp av første øyeblikk.

// 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);
NavnNårFelt
exit_riskmodellen for sideavgang har vurdert den første sidevisningen (én gang per besøk)risk, reasons, session
churn_risken tilbakevendende besøkende markeres med sannsynlig frafallrisk, reasons, session
offer_showntilbudet ved sideavgang visesart, risk, grund, session
offer_clickknappen klikkesart, risk, grund, session, fehler
offer_dismissdet lukkesart, risk, grund, session
survey_shownen spørreundersøkelse åpnessurvey, trigger, session
survey_answerden besøkende svarersurvey, type, value, option, sentiment, session
survey_textoppfølgingsteksten sendes (allerede filtrert)survey, text, session
survey_dismissundersøkelsen lukkes uten svarsurvey, step, session

Når GTM-broen er på, går de samme hendelsene også til dataLayer (mp_exit_risk og så videre). MousePlayer.exitRisk() returnerer gjeldende risiko for å forlate siden, eller null før den er kjent.

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 inndata i elementet erstattes før de forlater nettleseren — i øyeblikkskopien, i endringer og i klikkbeskrivelser.
  • data-mp-ignore (eller mp-ignore) på et skjemafelt: verdien tas ikke opp i det hele tatt.
  • data-mp-role: en av 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 verdier ignoreres.

9. Utelat dine egne besøk

Åpne nettstedet én gang med ?mp_exclude=1 så tas denne nettleseren ikke lenger opp; ?mp_exclude=0 opphever det. For et helt kontornettverk legger du i stedet IP-adressene inn i prosjektinnstillingene.

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. En lenke til personvernerklæringen

Besøkende kan se og slette det som ble tatt opp om dem. privacyUrl() returnerer den ferdige lenken med denne nettleserens ID — eller null hvis den ikke finnes, fordi ingenting ble tatt opp uten samtykke.

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