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.
<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.
<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.
npm install @kixo.io/webimport 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.
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_endclick— l-interazzjonijiet kollha ta’ click bis-selector tal-elementscroll_depth— limiti ta’ 25 / 50 / 75 / 100 %rage_click— clicks ripetuti fuq l-istess elementdead_click— clicks fuq elementi mhux interattivierror— eċċezzjonijiet ta' JavaScript mhux maqbuda + promise rejectionsperformance— metriċi tal-page-load u Web Vitals (LCP, FCP, FID, CLS, INP, TTFB)network_request— ħinijiet tar-requests opzjonali meta network tracking ikun attivatheatmap_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.
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.
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.
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.
// 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.
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.
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.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$email | string | Email primarju, spiss iċ-ċavetta ewlenija għall-identity stitching. |
$phone | string | Numru tat-telefon E.164. |
$name | string | Isem sħiħ għall-wiri. |
$first_name | string | Isem. |
$last_name | string | Kunjom. |
$avatar_url | string | URL sħiħa tal-immaġni tal-avatar tal-user. |
Geo
Kuntest ġeografiku.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$country | string | Kodiċi tal-pajjiż skont ISO 3166. |
$city | string | Isem tal-belt. |
$region | string | Stat jew provinċja. |
$timezone | string | Żona IANA bħal America/Los_Angeles. |
$language | string | IETF tag bħal en jew ru-RU. |
$locale | string | Identifikatur sħiħ tal-locale. |
Ċiklu tal-ħajja
Meta rajniehom.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$created | ISO8601 | Ħin tas-signup jew tal-ħolqien tal-kont. |
$last_seen | ISO8601 | L-aħħar ħin ta’ involviment. |
Abbonament
Issettja dan jekk il-prodott tiegħek għandu plans.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$plan | string | Slug tat-tier — free, pro, enterprise. |
$subscription_status | string | active / trial / cancelled / past_due. |
$trial_ends | ISO8601 | Meta tispiċċa l-prova attwali. |
$mrr | numru | Dħul rikorrenti fix-xahar fil-munita tal-kont. |
$subscription_started | ISO8601 | Meta beda l-abbonament attwali. |
E-commerce
Issettja dan jekk tbigħ prodotti.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$lifetime_orders | numru | Għadd ta’ ordnijiet kompluti. |
$lifetime_revenue | numru | Nefqa totali. |
$aov | numru | Valur medju tal-ordni. |
$last_purchase | ISO8601 | L-aktar xiri riċenti li rnexxa. |
$first_purchase | ISO8601 | L-ewwel purchase b’suċċess. |
$cart_abandoned_count | numru | Għadd totali ta’ carts abbandunati. |
Midja
Issettja dan jekk tippubblika kontenut.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$content_tier | string | free / premium / paid. |
$subscribed_categories | CSV string jew array | Kategoriji li jsegwi l-user. |
$watch_time_total | numru | Ħin totali ta’ wiri f’sekondi. |
$last_played | ISO8601 | L-aktar bidu riċenti tal-playback. |
Suq
Issettja dan jekk inti pjattaforma b’żewġ naħat.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$seller_tier | string | Slug tat-tier min-naħa tal-bejjiegħ. |
$buyer_tier | string | Slug tat-tier min-naħa tax-xerrej. |
$listings_count | numru | Listings attivi li għandu l-user. |
$reviews_count | numru | Reviews li rċieva l-utent. |
$verified | boolean | Stat tal-KYC. |
Lealtà
Issettja dan għal programmi ta’ involviment u rewards.
| Ċavetta | Tip | Deskrizzjoni |
|---|---|---|
$loyalty_points | numru | Bilanċ attwali ta’ punti li jistgħu jinfdew. |
$vip_level | string | Slug tat-tier VIP. |
$referral_count | numru | Referrals 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().
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).
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-maskjimblokka 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().
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.
const diag = Kixo.diagnostics();
console.log(diag);