Aqbeż għad-dokumentazzjoni

Web SDK

Il-Kixo Web SDK jittraċċa awtomatikament clicks, page views, sessions, errors, scroll depth, web vitals, rage-clicks, dead-clicks u data tal-heatmap b’embed ta’ linja waħda. Il-monitoraġġ tan-network requests huwa disponibbli bħala għażla opt-in. Jitqassam bħala modulu ES nattiv u jaħdem fil-browsers moderni.

Installazzjoni

Script tag (CDN)

Żid is-snippet qabel it-tag tal-għeluq </head>. Innota l-type="module" — meħtieġ għax l-SDK huwa ES module. Is-session replay huwa code-split f’chunk ta’ recorder li jaqbel mal-verżjoni u jitgħabba biss wara li replay ikun ġie attivat, biex il-base bundle jibqa’ żgħir meta replay ikun mitfi.

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

Nota

L-SDK jaqra project_id u api_key mis-script URL u jinizjalizza ruħu. Jekk trid tikkonfigura għażliet fil-kodiċi tal-applikazzjoni, neħħi l-parametri mill-URL u sejjaħ Kixo.init({...}) minflok — l-oġġett globali Kixo jkun disponibbli malli jitgħabba l-module.

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

Uża dan meta trid tikkonfigura għażliet fil-kodiċi tal-applikazzjoni minflok mis-script URL. Jesponi l-istess API ta’ Kixo bħall-embed tas-CDN.

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

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

Pjattaformi No-Code

Jekk qed tibni b’AI-powered builder bħal Lovable, Bolt, v0, jew Replit, waħħal is-snippet tas-script tag direttament fiċ-chat tal-builder tiegħek jew fis-settings tal-code injection. Il-biċċa l-kbira tal-builders jappoġġjaw iż-żieda ta’ scripts fil-<head> tas-sit tiegħek.

Konfigurazzjoni

L-embed ta’ żewġ linji juża d-defaults lokali tal-analytics ta’ hawn taħt. Il-monitoraġġ tar-requests jibqa’ opt-in. Session replay intenzjonalment ma jinsabx fi Kixo.init(): l-attivazzjoni tiegħu, is-sampling, il-privatezza, it-tul u s-settings tal-qbid jiġu biss mid-dashboard tal-project.

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,
  },

});

Nota

Is-settings tad-Dashboard ta’ Konfigurazzjoni kkontrollata mill-project. jistgħu jiddiżattivaw trackers lokali tal-analytics. Replay ma għandu ebda local positive enable flag: ikkonfigurah taħt Settings → Session replay, u l-SDK isegwi l-aħħar policy tal-proġett mar-refresh li jmiss tal-config tiegħu.

Events ittraċċjati awtomatikament

Bil-konfigurazzjoni awtomatika, Kixo jaqbad dawn l-events awtomatikament mingħajr ebda kodiċi ieħor:

  • page_view — kull navigazzjoni (initial load + bidliet fir-rotta ta’ SPA)
  • session_start / session_end
  • click — l-interazzjonijiet kollha ta’ click bis-selector tal-element
  • scroll_depth — limiti ta’ 25 / 50 / 75 / 100 %
  • rage_click — clicks ripetuti fuq l-istess element
  • dead_click — clicks fuq elementi mhux interattivi
  • error — eċċezzjonijiet ta' JavaScript mhux maqbuda + promise rejections
  • performance — metriċi tal-page-load u Web Vitals (LCP, FCP, FID, CLS, INP, TTFB)
  • network_request — ħinijiet tar-requests opzjonali meta network tracking ikun attivat
  • heatmap_click / scroll — data tal-heatmap

Ara l-lista sħiħa fil-Referenza tal-Events.

Avvenimenti personalizzati

Kixo.track()

Ibgħat event personalizzat bi properties opzjonali.

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

Helpers typed għall-events

Saff ta’ konvenjenza fuq Kixo.track() għall-events li Kixo jagħraf bl-isem (purchase, signup, subscribe_start,trial_start, cancel, upgrade,activation, share, invite). It-typed wrappers jagħtu validazzjoni tal-properties waqt il-compile u sors wieħed tal-verità għall-ismijiet taċ-ċwievet — id-detector tal-standard events fil-backend jaqbel verbatim.

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()

Qabbad l-apparat attwali ma’ user magħruf. Reserved standard property keys iġorru prefix $ (konvenzjoni Mixpanel) biex ikunu separati mill-custom traits tiegħek u jitilgħu fil-kolonni tal-profil tad-dashboard — ara l-Katalgu standard tal-properties hawn taħt għal-lista sħiħa ta’ 37 key.

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() — ittikketta utent għas-segmentazzjoni

Waħħal attributi key/value arbitrarji mal-user attwali. Il-valuri jistgħu jkunu strings, numbers, jew booleans — il-forma boolean hija l-aktar mod nadif biex tikketta user għal targeting aktar tard f’segments, kampanji bl-email, jew chat queries.

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' });

Il-properties jinżammu f’localStorage bejn reloads u jitwaħħlu awtomatikament ma’ events sussegwenti. Użahom fiċ-chat bi prompts bħal "ibni kampanja bl-email għal users fejn subscribe huwa true" — Kixo joħloq is-segment u jabbozza t-template awtomatikament. Jitħassru fuq Kixo.reset().

Kixo.group()

Qabbad il-user ma’ kumpanija jew organizzazzjoni.

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

Kixo.reset()

Ħassar l-identità, is-super-properties, u l-kju persistenti. Sejjaħ dan waqt logout biex events sussegwenti ma jiġux attribwiti lill-user ta’ qabel.

js
Kixo.reset();

Katalgu standard tal-properties

Iċ-ċwievet riservati tal-properties iġorru prefiss $ biex jinżammu separati mit-traits personalizzati tiegħek. Il-katalgu ta’ Kixo jkopri 37 ċavetta f’3 pakketti universali (identity, geo, lifecycle) u 5 pakketti vertikali B2B (subscription, e-commerce, media, marketplace, loyalty). Issettja biss dawk li japplikaw għall-prodott tiegħek — id-dashboard jadatta u juri biss il-pakketti li timla.

Identità

Dejjem rilevanti. Tissettja l-kolonni tal-header tal-profil.

ĊavettaTipDeskrizzjoni
$emailstringEmail primarju, spiss iċ-ċavetta ewlenija għall-identity stitching.
$phonestringNumru tat-telefon E.164.
$namestringIsem sħiħ għall-wiri.
$first_namestringIsem.
$last_namestringKunjom.
$avatar_urlstringURL sħiħa tal-immaġni tal-avatar tal-user.

Geo

Kuntest ġeografiku.

ĊavettaTipDeskrizzjoni
$countrystringKodiċi tal-pajjiż skont ISO 3166.
$citystringIsem tal-belt.
$regionstringStat jew provinċja.
$timezonestringŻona IANA bħal America/Los_Angeles.
$languagestringIETF tag bħal en jew ru-RU.
$localestringIdentifikatur sħiħ tal-locale.

Ċiklu tal-ħajja

Meta rajniehom.

ĊavettaTipDeskrizzjoni
$createdISO8601Ħin tas-signup jew tal-ħolqien tal-kont.
$last_seenISO8601L-aħħar ħin ta’ involviment.

Abbonament

Issettja dan jekk il-prodott tiegħek għandu plans.

ĊavettaTipDeskrizzjoni
$planstringSlug tat-tier — free, pro, enterprise.
$subscription_statusstringactive / trial / cancelled / past_due.
$trial_endsISO8601Meta tispiċċa l-prova attwali.
$mrrnumruDħul rikorrenti fix-xahar fil-munita tal-kont.
$subscription_startedISO8601Meta beda l-abbonament attwali.

E-commerce

Issettja dan jekk tbigħ prodotti.

ĊavettaTipDeskrizzjoni
$lifetime_ordersnumruGħadd ta’ ordnijiet kompluti.
$lifetime_revenuenumruNefqa totali.
$aovnumruValur medju tal-ordni.
$last_purchaseISO8601L-aktar xiri riċenti li rnexxa.
$first_purchaseISO8601L-ewwel purchase b’suċċess.
$cart_abandoned_countnumruGħadd totali ta’ carts abbandunati.

Midja

Issettja dan jekk tippubblika kontenut.

ĊavettaTipDeskrizzjoni
$content_tierstringfree / premium / paid.
$subscribed_categoriesCSV string jew arrayKategoriji li jsegwi l-user.
$watch_time_totalnumruĦin totali ta’ wiri f’sekondi.
$last_playedISO8601L-aktar bidu riċenti tal-playback.

Suq

Issettja dan jekk inti pjattaforma b’żewġ naħat.

ĊavettaTipDeskrizzjoni
$seller_tierstringSlug tat-tier min-naħa tal-bejjiegħ.
$buyer_tierstringSlug tat-tier min-naħa tax-xerrej.
$listings_countnumruListings attivi li għandu l-user.
$reviews_countnumruReviews li rċieva l-utent.
$verifiedbooleanStat tal-KYC.

Lealtà

Issettja dan għal programmi ta’ involviment u rewards.

ĊavettaTipDeskrizzjoni
$loyalty_pointsnumruBilanċ attwali ta’ punti li jistgħu jinfdew.
$vip_levelstringSlug tat-tier VIP.
$referral_countnumruReferrals li rnexxew u ġew attribwiti lil dan l-utent.

Suġġeriment

Ma tarax il-pattern tiegħek? Uża bare keys għal custom traits. Dawn jidhru fil-panel Custom Traits tad-dashboard mingħajr ma jħammġu l-kolonni tal-profil. Il-5 packs vertikali ta’ hawn fuq huma suppożizzjonijiet intenzjonati dwar l-aktar forom B2B komuni — terminoloġija speċifika tal-customer (eż. shipping_plan) tibqa’ bare.

Super-properties

Pari ċavetta/valur għal kull session, imwaħħla awtomatikament ma’ kull event li joħroġ. Huma differenti mit-traits ta’ identify() (li jiddeskrivu l-identità); is-super-properties jiddeskrivu l-kuntest tas-session — varjant A/B attiv, build flavor, feature flags attivati b’opt-in, affiliate ref. Jinżammu f’localStorage bejn reloads; jitħassru fuq reset(). Jekk l-istess ċavetta tidher darbtejn, dejjem jirbħu l-properties ta’ kull event fuq track().

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();

Heatmaps

Ir-recording tal-heatmap huwa mixgħul awtomatikament — clicks u scroll depth, it-tnejn b’sampling ta’ 100 %. Mouse movement huwa opt-in (volum għoli; attivah għal kull paġna jekk ikun utli).

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

Ripetizzjoni tas-sessjoni

Session replay jirrekordja snapshot tal-DOM u mutation stream ta’ rrweb biex id-dashboard ikun jista’ jerġa’ jibni l-paġna bħala session li tista’ tgħaddi minnha, flimkien mat-traċċa tal-events. Din hija rikostruzzjoni tal-DOM, mhux recording tal-iskrin bħala video. Replay huwa mitfi b’mod awtomatiku. Attivah għall-project taħt Dashboard → Settings → Ripetizzjoni tas-sessjoni; ma hemmx bżonn tibdel il-kodiċi tal-applikazzjoni. Meta jiġi attivat, ir-recorder jittella’ minn chunk separat li jaqbel mal-verżjoni.

Nota

Id-dashboard huwa s-sors tal-verità. Hemmhekk issettja Enable replay, Mask inputs, it-tul massimu, u l-kontrolli avvanzati tal-capture. captureOnCellular jinħażen fl-istess policy tal-proġett għal iOS u Android; il-browsers ma jesponux sinjal affidabbli ta’ Wi‑Fi kontra cellular, għalhekk il-Web SDK jirrapporta u jinjora din ir-restrizzjoni li tapplika biss għan-native.

X’jinħeba

Replay huwa mfassal biex tkun tista’ tixgħlu b’mod sigur. Hemm tliet saffi ta’ protezzjoni għall-kontenut sensittiv, kollha mixgħula b’mod awtomatiku:

  • Il-masking tal-inputs huwa kkontrollat mill-project — waqt li s-setting Aħbi l-inputs tad-Dashboard tkun mixgħula (id-default), il-karattri miktuba jinbidlu b’asteriski qabel ma joħorġu mill-browser. Itfih biss għal ħtieġa speċifika b’sensittività baxxa; oqsma ta’ identità, awtentikazzjoni u pagamenti jibqgħu masked.
  • L-attribut data-kixo-mask jimblokka element u s-subtree kollu tiegħu. Poġġih fuq kull container li jista’ jżomm kontenut personali jew kunfidenzjali; ir-replay ikun fih placeholder, mhux it-test jew il-kontenut DOM ta’ dak is-subtree.
    html
    <div data-kixo-mask>
      <!-- payment fields, account numbers, private messages… -->
      <!-- captured as a blank placeholder, never as pixels -->
    </div>
  • Il-fields sensittivi dejjem jinħbew — inputs li jidhru bħala password, numru ta’ karta, CVV, SSN, secret, jew token (skont type, name, id, jew autocomplete) jiġu masked anke meta s-setting tal-proġett Aħbi l-inputs tkun mitfija. It-test viżibbli u l-attributi DOM serializzati jgħaddu wkoll mis-sanitizer tal-PII ta’ Kixo qabel l-upload.

Ġbir tad-data

L-SDK jaqbad it-trackers attivati fl-integrazzjoni u fis-settings tal-project tiegħek, flimkien mal-events u l-properties li tibgħat l-applikazzjoni tiegħek.

Fejn imorru r-recordings

L-SDK jagħmel gzip tal-events ta’ rrweb f’segmenti limitati, jitlob lil Kixo URL iffirmata għall-upload marbuta mal-project, u jtella’ dawk is-segmenti direttament fl-ispazju tal-ħażna tar-replay. Iftaħ is-session rikostruwita taħt Replay → Sessjonijiet; hemm rabta mal-istess traċċa analitika tas-session.

Nota

Replay jiddependi mill-pjan tiegħek. Kemm sessjonijiet jinqabdu u jinżammu jiddependi mill-pjan tal-proġett tiegħek; fuq tiers aktar baxxi Kixo xorta jirreġistra session metadata ħafif biex is-sessjoni tidher fil-listi u fl-analytics tiegħek.

Feature flags

Iċċekkja l-valuri tal-flags waqt runtime permezz ta’ Kixo.getFeatureFlag().

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

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

Konsenja u mġiba offline

L-SDK iżomm l-events f’kju lokalment, jibgħathom f’batches, u jerġa’ jipprova fallimenti temporanji b’backoff. Jekk il-ġbir jitwaqqaf mis-settings tal-project, events ġodda ma jintbagħtux sakemm il-ġbir jerġa’ jiġi attivat.

Dijanjostiċi

Snapshot read-only tas-saħħa tas-sistema — utli għad-debugging ta’ "għaliex l-events tiegħi mhumiex deħlin?" fid-dev tools.

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