JavaScript API

Vše, co mp.js nabízí vašemu kódu: souhlas, vlastní ID zákazníka, vlastní události, kroky bez změny adresy, hooky a atributy HTML. Nic z toho není povinné - samotný snippet už zaznamenává.

1. Dva způsoby volání

mp.js se načítá asynchronně. Kód spuštěný před jeho načtením vkládá volání do fronty window.mp_q; mp.js ji zpracuje, jakmile je dostupný. Poté jsou stejné funkce dostupné 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);

Vždy používejte window.mp_q = window.mp_q || [], nikdy window.mp_q = []. mp.js tomuto poli nadále naslouchá - nové pole by pohltilo všechna pozdější volání včetně odvolání souhlasu.

Instalační snippet také definuje zástupnou funkci mp(...) se stejným zařazováním do fronty. Oba způsoby přijímají stejné příkazy: consent, set, event, step, get, on a off.

2. Souhlas

Bez souhlasu se nic nezaznamenává. Pokud MousePlayer rozpoznává váš nástroj pro souhlas, nic z toho nepotřebujete; jinak rozhodnutí předejte sami.

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'

Odvolání se na stránce projeví okamžitě: odstraní se posluchače, zahodí data ve vyrovnávací paměti a uzavře spojení. Viz MousePlayer a souhlas.

3. Vaše ID zákazníka

S vlastním ID se všechna zařízení jedné osoby v seznamech spojí do jediného návštěvníka a požadavek podpory vyhledáte podle známého čísla. ID se přiřadí i ke starším návštěvám stejného prohlížeče za posledních 30 dní.

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

Použijte interní číslo, ne e-mailovou adresu ani jméno. MousePlayer ID zobrazuje všude, kde se návštěvník objeví.

Čtení 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. Vlastní události

Odeslané události se zobrazují na časové ose přehrávání, mohou být cíli i kroky trychtýře a posílají se do webhooků a připojených nástrojů. Parametry jsou krátké hodnoty: čísla, řetězce do 255 znaků a klíče do 64 znaků.

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' }]);
  • Názvy: malá písmena s podtržítky, nejvýše 128 znaků. Stejnou věc všude pojmenujte stejně - cíl porovnává název přesně.
  • Do parametrů nevkládejte osobní údaje. Ukládají a zobrazují se jako každá jiná událost.

5. Kroky bez změny adresy

Pokladna nebo průvodce, který mění obrazovku, ale ne adresu, představuje pro MousePlayer jednu stránku. step() udělá z každé obrazovky samostatné zobrazení stránky - s vlastním snímkem, řádkem teplotní mapy a krokem trychtýře.

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

Název má 1 až 40 znaků z a-z, 0-9, _ a -; mezery se změní na spojovníky a ostatní znaky jsou odmítnuty s upozorněním v konzoli. Skutečná navigace krok ukončí.

6. Kontext produktu

Na produktové stránce sdělte MousePlayer, co návštěvník prohlíží. Přijímají se pouze tyto klíče; vše ostatní se zahodí, aby omylem neprošla zákaznická data.

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

Váš kód může reagovat na to, co MousePlayer na stránce měří. Registrujte se přes frontu, pokud hook nesmí zmeškat první okamžik.

// 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ázevKdyPole
exit_riskmodel odchodu ohodnotí první zobrazení stránky (jednou za návštěvu)risk, reasons, session
churn_riskvracející se návštěvník je označen jako ohrožený ztrátourisk, reasons, session
offer_shownzobrazí se odchodová nabídkaart, risk, grund, session
offer_clickdojde ke kliknutí na její tlačítkoart, risk, grund, session, fehler
offer_dismissnabídka se zavřeart, risk, grund, session
survey_shownotevře se průzkumsurvey, trigger, session
survey_answernávštěvník odpovísurvey, type, value, option, sentiment, session
survey_textodešle se doplňující text (již filtrovaný)survey, text, session
survey_dismissprůzkum se zavře bez odpovědisurvey, step, session

Při zapnutém mostu GTM se stejné události posílají i do dataLayer (mp_exit_risk a tak dále). MousePlayer.exitRisk() vrátí aktuální riziko odchodu nebo null, pokud zatím není známé.

8. Atributy 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 (nebo třída mp-masked): text a vstup uvnitř prvku se nahradí ještě před opuštěním prohlížeče - ve snímku, změnách i popisech kliknutí.
  • data-mp-ignore (nebo mp-ignore) na poli formuláře: jeho hodnota se vůbec nezaznamenává.
  • data-mp-role: jedna z hodnot 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. Ostatní hodnoty se ignorují.

9. Vyloučení vlastních návštěv

Otevřete svůj web jednou s ?mp_exclude=1 a tento prohlížeč se už nebude zaznamenávat; ?mp_exclude=0 to zruší. Pro celou kancelářskou síť místo toho zadejte IP adresy v nastavení projektu.

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. Odkaz do zásad ochrany osobních údajů

Návštěvníci mohou zobrazit a smazat to, co se o nich zaznamenalo. privacyUrl() vrátí hotový odkaz s ID tohoto prohlížeče nebo null, pokud žádné není, protože bez souhlasu se nic nezaznamenalo.

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