Fara í skjöl

Web SDK

The Kixo Web SDK skráir sjálfkrafa smelli, síðuskoðanir, lotur, villur, skrunlengd, web vitals, rage-clicks, dead-clicks og hitakortsgögn með innsetningu í einni línu. Vöktun netbeiðna er í boði sem valfrjáls stilling. Dreift sem innbyggð ES eining og virkar í nútímavöfrum.

Uppsetning

Script tag (CDN)

Bættu kóðabrotinu inn fyrir lokatagið </head>. Taktu eftir type="module" — það er nauðsynlegt því SDK er ES module. Session replay er skipt út í sérstakan recorder chunk með samsvarandi útgáfu sem hleðst aðeins þegar replay hefur verið virkjað, þannig að grunnpakkinn helst lítill meðan replay er óvirkt.

html
<script
  type="module"
  src="https://cdn.kixo.io/kixo.min.js?project_id=YOUR_PROJECT_ID&api_key=YOUR_API_KEY">
</script>

Athugið

SDK les project_id og api_key úr script-URL-inu og frumstillir sig. Ef þú vilt stilla valkosti í forritskóða skaltu sleppa URL-breytunum og kalla á Kixo.init({...}) í staðinn — global Kixo object er tiltækt þegar einingin hefur hlaðist.

html
<script type="module" src="https://cdn.kixo.io/kixo.min.js"></script>
<script type="module">
  Kixo.init({
    projectId: 'YOUR_PROJECT_ID',
    apiKey:    'YOUR_API_KEY',
  });
</script>

npm

Notaðu þetta þegar þú vilt stilla valkosti í forritskóða í stað script URL. Það býður upp á sama Kixo API og CDN-innsetningin.

bash
npm install @kixo.io/web
js
import Kixo from '@kixo.io/web';

Kixo.init({
  projectId: 'YOUR_PROJECT_ID',
  apiKey: 'YOUR_API_KEY',
});

No-code vettvangar

Ef þú ert að byggja með AI-smíðatæki eins og Lovable, Bolt, v0 eða Replit skaltu líma script-tag-kóðabrotið beint inn í spjall eða stillingar fyrir code injection í tólinu. Flest slík tól styðja að bæta scriptum við <head> á vefnum þínum.

Stillingar

Tveggja lína innsetningin notar sjálfgefnar staðbundnar analytics-stillingar hér fyrir neðan. Request monitoring er áfram valfrjálst. Session replay er viljandi ekki hluti af Kixo.init(): kveikja á því, sýnataka, persónuvernd, lengd og upptökustillingar koma eingöngu frá verkefnismælaborðinu.

js
Kixo.init({
  projectId: 'YOUR_PROJECT_ID',     // required
  apiKey:    'YOUR_API_KEY',         // required

  // Per-tracker toggles — all default to true except network.
  autoTrack: {
    pageViews:   true,
    clicks:      true,
    scrollDepth: true,
    sessions:    true,
    forms:       true,
    network:     false,     // opt in only when you need request telemetry
    errors:      true,
    performance: true,
    rageClicks:  true,
    deadClicks:  true,
  },

  // Heatmap recording (clicks + scroll on by default; mouse-move opt-in).
  heatmap: {
    enabled: true,
    clicks:  true,
    moves:   false,
    scroll:  true,
  },

});

Athugið

Stilling sem verkefnið stýrir. Stillingar í Dashboard geta slökkt á staðbundnum rekjarum fyrir greiningu. Replay hefur enga staðbundna jákvæða virkjun yfirleitt: stilltu það undir Settings → Session replay og SDK fylgir nýjustu verkefnastefnunni við næstu uppfærslu á stillingum.

Sjálfvirkt rakin atvik

Með sjálfgefnum stillingum skráir Kixo þessi atvik sjálfkrafa án viðbótarkóða:

  • page_view — öll leiðarskipti (upphafshleðsla + SPA route changes)
  • session_start / session_end
  • click — öll smelliatvik með valstreng fyrir stak
  • scroll_depth — þröskuldar við 25 / 50 / 75 / 100 %
  • rage_click — endurteknir smellir á sama stak
  • dead_click — smellir á stök sem eru ekki gagnvirk
  • error — ómeðhöndlaðar JavaScript undantekningar + promise rejections
  • performance — mæligildi fyrir síðuhleðslu og Web Vitals (LCP, FCP, FID, CLS, INP, TTFB)
  • network_request — valfrjáls tímasetning beiðna þegar rakning á netkalli er virk
  • heatmap_click / scroll — hitakortsgögn

Sjá allan listann í Yfirlit yfir atburði.

Sérsniðin atvik

Kixo.track()

Senda sérsniðið atvik með valfrjálsum eiginleikum.

js
Kixo.track('purchase_completed', {
  product_id: 'SKU-123',
  amount: 49.99,
  currency: 'USD',
});

Týpaðir event-hjálparar

Þægilegra yfirlag yfir Kixo.track() fyrir atvikin sem Kixo þekkir af heiti (purchase, signup, subscribe_start,trial_start, cancel, upgrade,activation, share, invite). Typed wrappers gefa staðfestingu á eiginleikum við þýðingu og einn sameiginlegan sannleiksgjafa fyrir lyklaheiti — staðlaði atvikaskynjarinn í bakenda ber nákvæmlega saman við strengina.

js
Kixo.trackPurchase({ amount: 49.99, currency: 'USD', productId: 'pro_yearly' });

Kixo.trackSubscriptionStart({
  plan: 'pro',
  amount: 9.99,
  currency: 'USD',
  interval: 'month',
});

Kixo.trackSignup({ method: 'google' });
Kixo.trackTrialStart({ plan: 'pro', days: 14 });
Kixo.trackCancel({ plan: 'pro', reason: 'too_expensive' });
Kixo.trackUpgrade({ fromPlan: 'free', toPlan: 'pro' });
Kixo.trackActivation({ event: 'first_post_published' });
Kixo.trackShare({ channel: 'twitter', contentId: 'post_123' });
Kixo.trackInvite({ channel: 'email', recipientCount: 5 });

Kixo.identify()

Tengdu núverandi tæki við þekktan notanda. Fráteknir staðlaðir property-lyklar bera $-forskeyti (Mixpanel-hefð) svo þeir haldist aðskildir frá þínum eigin sérsniðnu traits og fari upp í prófíldálka mælaborðsins — sjá Katalogur staðlaðra eiginleika hér fyrir neðan fyrir allan listann með 37 lyklum.

js
Kixo.identify('user_123', {
  $email:  'jane@example.com',     // identity
  $name:   'Jane Doe',              // identity
  $plan:   'pro',                   // subscription pack
  $lifetime_orders: 12,             // e-commerce pack
  signup_source: 'twitter_ad',      // custom trait
});

Kixo.setUserProperty() — merkja notanda fyrir hlutun

Bættu við handahófskenndum lykil/gildi-eiginleikum á núverandi notanda. Gildi geta verið strengir, tölur eða booleans — boolean-formið er hreinasta leiðin til að tag notanda fyrir síðar marksetningu í segmentum, tölvupóstsherferðum eða spjallfyrirspurnum.

js
// Tag a user as subscribed — instant segment "Subscribed users"
Kixo.setUserProperty('subscribe', true);

// Mark a VIP — used in campaign targeting + chat ("show me VIPs")
Kixo.setUserProperty('vip', true);

// Numeric and string values work too
Kixo.setUserProperty('plan_tier', 'enterprise');
Kixo.setUserProperty('lifetime_orders', 42);

// Bulk-set
Kixo.setUserProperties({ subscribe: true, plan_tier: 'enterprise' });

Eiginleikar vistast í localStorage milli endurhleðslna og eru sjálfkrafa hengdir við næstu atvik. Notaðu þá í spjalli með fyrirmælum eins og „build an email campaign for users where subscribe is true“ — Kixo setur sjálfkrafa saman segment og semur drög að sniðmáti. Hreinsast með Kixo.reset().

Kixo.group()

Tengdu notandann við fyrirtæki eða stofnun.

js
Kixo.group('company_456', {
  name: 'Acme Inc',
  plan: 'enterprise',
});

Kixo.reset()

Hreinsar auðkenni, super-properties og vistuðu biðröðina. Kallaðu á þetta við útskráningu svo næstu atvik verði ekki rakin á fyrri notanda.

js
Kixo.reset();

Katalogur staðlaðra eiginleika

Fráteknir eiginleikalyklar bera $-forskeyti svo þeir rekist ekki á sérsniðin traits hjá þér. Katalogur Kixo nær yfir 37 lykla í 3 almennum pökkum (identity, geo, lifecycle) og 5 sértækum B2B-pökkum (subscription, e-commerce, media, marketplace, loyalty). Stilltu þá pakka sem eiga við um vöruna þína — mælaborðið aðlagast og sýnir aðeins þá sem þú fyllir út.

Auðkenni

Alltaf viðeigandi. Stillir dálkana í haus prófílsins.

LykillGerðLýsing
$emailstrengurAðalnetfang, oft notað sem merge key við samruna auðkenna.
$phonestrengurE.164 símanúmer.
$namestrengurFullt birtingarnafn.
$first_namestrengurFornafn.
$last_namestrengurEftirnafn.
$avatar_urlstrengurFull URL á avatar-mynd notandans.

Landfræði

Landfræðilegt samhengi.

LykillGerðLýsing
$countrystrengurLandskóði samkvæmt ISO 3166.
$citystrengurNafn borgar.
$regionstrengurFylki eða hérað.
$timezonestrengurIANA-svæði eins og America/Los_Angeles.
$languagestrengurIETF-merki eins og en eða ru-RU.
$localestrengurFullt locale identifier.

Lífsferill

Hvenær sáum við þau.

LykillGerðLýsing
$createdISO8601Tími skráningar eða stofnunar reiknings.
$last_seenISO8601Tími síðustu virkni.

Áskrift

Stilltu þetta ef varan þín er með áskriftarleiðir.

LykillGerðLýsing
$planstrengurStigskenni — free, pro, enterprise.
$subscription_statusstrenguractive / trial / cancelled / past_due.
$trial_endsISO8601Hvenær núverandi prufutímabil rennur út.
$mrrtalaMánaðarlegar endurteknar tekjur í gjaldmiðli reikningsins.
$subscription_startedISO8601Hvenær núverandi áskrift hófst.

Netverslun

Stilltu þetta ef þú selur vörur.

LykillGerðLýsing
$lifetime_orderstalaFjöldi lokinna pantana.
$lifetime_revenuetalaHeildareyðsla.
$aovtalaMeðalvirði pöntunar.
$last_purchaseISO8601Síðustu heppnuðu kaup.
$first_purchaseISO8601Fyrstu heppnuðu kaup.
$cart_abandoned_counttalaHeildarfjöldi yfirgefinna körfa.

Miðlar

Stilltu þetta ef þú birtir efni.

LykillGerðLýsing
$content_tierstrengurfree / premium / paid.
$subscribed_categoriesCSV-strengur eða fylkiFlokkar sem notandinn fylgir.
$watch_time_totaltalaHeildaráhorfstími í sekúndum.
$last_playedISO8601Síðasta upphaf afspilunar.

Markaðstorg

Stilltu þetta ef þú rekur tvíhliða vettvang.

LykillGerðLýsing
$seller_tierstrengurTier-slug seljanda.
$buyer_tierstrengurTier-slug kaupandans.
$listings_counttalaVirkar skráningar sem notandinn á.
$reviews_counttalaUmsagnir sem notandinn hefur fengið.
$verifiedbooleanKYC-staða.

Vild

Stillt fyrir vildar- og umbunarkerfi.

LykillGerðLýsing
$loyalty_pointstalaNúverandi staða innleysanlegra punkta.
$vip_levelstrengurVIP stigskenni.
$referral_counttalaHeppnaðar tilvísanir sem rekja má til þessa notanda.

Ábending

Sérðu ekki mynstrið þitt? Notaðu bera lykla fyrir sérsniðin traits. Þeir birtast í Custom Traits-svæði mælaborðsins án þess að rugla prófíldálkana. Pakkarnir fimm hér að ofan eru markviss ágiskun á algengustu B2B-formin — hugtök sem eru sértæk fyrir viðskiptavininn (t.d. shipping_plan) eru áfram án forskeytis.

Super-properties

Lykil-/gildispör fyrir hverja lotu sem eru sjálfkrafa hengd við hvert sent atvik. Ólíkt identify() traits, sem lýsa auðkenni, lýsa super-properties samhengi lotunnar — virk A/B-útgáfa, build flavor, feature flags sem notandi hefur valið, affiliate ref. Vistað í localStorage milli endurhleðslna; hreinsast með reset(). Ef lyklar skarast hafa properties á track() alltaf forgang.

js
Kixo.setSuperProperty('build_flavor', 'beta');
Kixo.setSuperProperties({ ab_variant: 'B', referrer_campaign: 'autumn-launch' });

// Sugar for A/B tracking — keys as 'experiment_<id>' so backend
// can run direct WHERE filters on experiment analysis.
Kixo.setExperimentVariant('checkout_v2', 'variant_a');

Kixo.unsetSuperProperty('build_flavor');
Kixo.clearSuperProperties();

Hitakort

Hitakortsupptaka er sjálfgefið virk — smellir og skrun­dýpt, hvort tveggja með 100 % sýnatöku. Músarhreyfing er valfrjáls (mikið gagnamagn; virkjaðu hana fyrir hverja síðu ef hún nýtist).

js
Kixo.init({
  projectId: 'YOUR_PROJECT_ID',
  apiKey:    'YOUR_API_KEY',
  heatmap:   { moves: true },  // turn on full-resolution mouse-move
});

Lotuendursýning

Session replay skráir rrweb DOM snapshot og mutation stream svo mælaborðið geti endurgert síðuna sem lotu sem má skrúbba í, samhliða atvikaslóðinni. Þetta er endurgerð á DOM, ekki skjáupptaka sem myndband. Replay er slökkt sjálfgefið. Virkjaðu það fyrir verkefnið undir Stjórnborð → Stillingar → Lotuendursýning; engar breytingar á forritskóða eru nauðsynlegar. Þegar kveikt er á því er recorder sóttur úr sérstöku chunki með samsvarandi útgáfu.

Athugið

Mælaborðið er sannleiksgjafinn. Stilltu Enable replay, Mask inputs, hámarkslengd og ítarlegri capture controls þar. captureOnCellular er vistað í sömu verkefnastefnu fyrir iOS og Android; vafrar gefa ekki áreiðanlegt merki um Wi‑Fi á móti farsímaneti, svo Web SDK tilkynnir það og hunsar þá takmörkun sem aðeins á við native.

Hvað er falið

Replay er hannað þannig að óhætt sé að kveikja á því. Þrjú verndarlög verja viðkvæmt efni, og þau eru öll virk sjálfgefið:

  • Maskun inntaksreita er stýrt á verkefnastigi — meðan stillingin Fela inntaksreiti í Dashboard er virk (sjálfgefið) er slegnum stöfum skipt út fyrir stjörnur áður en þeir fara úr vafranum. Slökktu aðeins á þessu fyrir afmarkaða notkun með litla viðkvæmni; auðkenningar-, innskráningar- og greiðslureitir eru áfram huldir.
  • data-kixo-mask-attribute felur stak og allt undirtré þess. Settu það á hvaða ílát sem er sem gæti innihaldið persónulegt eða trúnaðarefni; endurspilun sýnir staðgengil, ekki texta eða DOM-innihald úr því undirtré.
    html
    <div data-kixo-mask>
      <!-- payment fields, account numbers, private messages… -->
      <!-- captured as a blank placeholder, never as pixels -->
    </div>
  • Viðkvæmir reitir eru alltaf faldir — inntaksreitir sem líta út fyrir að vera lykilorð, kortanúmer, CVV, SSN, secret eða token (eftir type, name, id eða autocomplete) eru huldir jafnvel þegar stillingin Fela inntaksreiti í verkefninu er óvirk. Sýnilegur texti og þáttaraðaðir DOM-eiginleikar fara líka í gegnum PII-hreinsun Kixo áður en gögnum er hlaðið upp.

Gagnasöfnun

SDK skráir þá rekjara sem eru virkir í innleiðingunni þinni og verkefnastillingum, ásamt þeim atvikum og eiginleikum sem forritið sendir.

Hvert upptökur fara

SDK pakkar rrweb-atvikum með gzip í afmörkuð brot, biður Kixo um signaða upload URL sem gildir fyrir verkefnið og hleður síðan brotunum beint í replay-geymslu. Opnaðu endurgerðu lotuna undir Endurspilun → Lotur; hún tengist greiningarslóð sömu lotu.

Athugið

Replay ræðst af áskriftarleiðinni þinni. Hversu margar lotur eru teknar upp og geymdar fer eftir áskrift verkefnisins; á lægri leiðum skráir Kixo samt létt session lýsigögn svo lotan birtist í listum og greiningu.

Eiginleikafánar

Athugaðu flag-gildi í keyrslu með Kixo.getFeatureFlag().

js
const variant = Kixo.getFeatureFlag('new_checkout');

if (variant === 'enabled') {
  showNewCheckout();
} else {
  showLegacyCheckout();
}

Afhending og hegðun án nettengingar

SDK raðar atvikum í staðbundna biðröð, sendir þau í bunkum og reynir aftur við tímabundnar villur með backoff. Ef söfnun er sett á hlé í verkefnastillingum eru ný atvik ekki send fyrr en kveikt er aftur á söfnun.

Greining

Heilsuyfirlit sem aðeins er til lestrar — gagnlegt við villuleit í developer tools þegar spurt er „af hverju skila atvikin sér ekki?“

js
const diag = Kixo.diagnostics();
console.log(diag);