[{"data":1,"prerenderedAt":437},["ShallowReactive",2],{"docs-navigation":3,"docs:\u002Fdocs\u002Fget-started\u002Ffor-engineers":331,"docs-area:\u002Fdocs\u002Fget-started":432,"docs-surround:\u002Fdocs\u002Fget-started\u002Ffor-engineers":434},[4],{"title":5,"path":6,"stem":7,"children":8,"page":330},"Docs","\u002Fdocs","docs",[9,58,123,189,204,218,232,259,293,315],{"title":10,"path":11,"stem":12,"children":13,"icon":52,"summary":53,"section":18,"highlights":54},"Get started","\u002Fdocs\u002Fget-started","docs\u002F01.get-started\u002Findex",[14,21,26,31,37,42,47],{"title":15,"path":16,"stem":17,"icon":18,"summary":19,"section":20,"highlights":18,"children":-1},"Quickstart","\u002Fdocs\u002Fget-started\u002Fquickstart","docs\u002F01.get-started\u002F01.quickstart",null,"Create a property, add the tag to your site and see your first visits in Analytics.","Start here",{"title":22,"path":23,"stem":24,"icon":18,"summary":25,"section":20,"highlights":18,"children":-1},"Set up your organisation","\u002Fdocs\u002Fget-started\u002Fset-up-your-organisation","docs\u002F01.get-started\u002F02.set-up-your-organisation","Sign in, turn on two-step verification, choose where data is stored and invite your team.",{"title":27,"path":28,"stem":29,"icon":18,"summary":30,"section":20,"highlights":18,"children":-1},"Core concepts","\u002Fdocs\u002Fget-started\u002Fcore-concepts","docs\u002F01.get-started\u002F03.core-concepts","Organisations, properties, events, visits, page and click types, and how Publish reaches Analytics.",{"title":32,"path":33,"stem":34,"icon":18,"summary":35,"section":36,"highlights":18,"children":-1},"Guide for marketers","\u002Fdocs\u002Fget-started\u002Ffor-marketers","docs\u002F01.get-started\u002F04.for-marketers","Read the dashboards, explore your own questions and see where visitors struggle.","Guides by role",{"title":38,"path":39,"stem":40,"icon":18,"summary":41,"section":36,"highlights":18,"children":-1},"Guide for engineers","\u002Fdocs\u002Fget-started\u002Ffor-engineers","docs\u002F01.get-started\u002F05.for-engineers","Install the tag, set up consent and identify, and keep capture safe on your pages.",{"title":43,"path":44,"stem":45,"icon":18,"summary":46,"section":36,"highlights":18,"children":-1},"Guide for data teams","\u002Fdocs\u002Fget-started\u002Ffor-data-teams","docs\u002F01.get-started\u002F06.for-data-teams","Map your data layer to standard fields, publish, and build on the explores.",{"title":48,"path":49,"stem":50,"icon":18,"summary":51,"section":36,"highlights":18,"children":-1},"Guide for ecommerce teams","\u002Fdocs\u002Fget-started\u002Ffor-ecommerce-teams","docs\u002F01.get-started\u002F07.for-ecommerce-teams","Carts, checkouts, orders, revenue and attribution for your store.","i-lucide-rocket","Set up your organisation, add the tag and see your first visits in Analytics.",[55,56,57],{"title":15,"to":16},{"title":22,"to":23},{"title":27,"to":28},{"title":59,"path":60,"stem":61,"children":62,"icon":116,"summary":117,"section":18,"highlights":118},"Data Capture","\u002Fdocs\u002Fdata-capture","docs\u002F02.data-capture\u002Findex",[63,69,74,79,84,90,95,100,105,111],{"title":64,"path":65,"stem":66,"icon":18,"summary":67,"section":68,"highlights":18,"children":-1},"Install the website tag","\u002Fdocs\u002Fdata-capture\u002Finstall-the-website-tag","docs\u002F02.data-capture\u002F01.install-the-website-tag","Add the install snippet to every page, allow it in your CSP, and check that it works.","Set up",{"title":70,"path":71,"stem":72,"icon":18,"summary":73,"section":68,"highlights":18,"children":-1},"Turn capture features on","\u002Fdocs\u002Fdata-capture\u002Fturn-features-on","docs\u002F02.data-capture\u002F02.turn-features-on","What each capture card on a property does, and which are on from the start.",{"title":75,"path":76,"stem":77,"icon":18,"summary":78,"section":68,"highlights":18,"children":-1},"Existing tags and data layers","\u002Fdocs\u002Fdata-capture\u002Fexisting-tags-and-data-layers","docs\u002F02.data-capture\u002F03.existing-tags-and-data-layers","Read your tag manager data layer and the analytics tools you already run, without re-tagging.",{"title":80,"path":81,"stem":82,"icon":18,"summary":83,"section":68,"highlights":18,"children":-1},"Shopify checkout","\u002Fdocs\u002Fdata-capture\u002Fshopify-checkout","docs\u002F02.data-capture\u002F04.shopify-checkout","Count a Shopify store's carts, checkouts and orders, line by line, with Kontala's pixel.",{"title":85,"path":86,"stem":87,"icon":18,"summary":88,"section":89,"highlights":18,"children":-1},"Page and click types","\u002Fdocs\u002Fdata-capture\u002Fpage-and-click-types","docs\u002F02.data-capture\u002F05.page-and-click-types","The 11 page types and 30 click types, and how Kontala decides each one.","What gets captured",{"title":91,"path":92,"stem":93,"icon":18,"summary":94,"section":89,"highlights":18,"children":-1},"Struggle signals","\u002Fdocs\u002Fdata-capture\u002Fstruggle-signals","docs\u002F02.data-capture\u002F06.struggle-signals","Rage clicks, dead clicks, errors, page speed and quick backs, and how each is detected.",{"title":96,"path":97,"stem":98,"icon":18,"summary":99,"section":89,"highlights":18,"children":-1},"Revenue and campaigns","\u002Fdocs\u002Fdata-capture\u002Frevenue-and-campaigns","docs\u002F02.data-capture\u002F07.revenue-and-campaigns","Orders and revenue, the campaign parameters Kontala keeps, channels, attribution and ad spend.",{"title":101,"path":102,"stem":103,"icon":18,"summary":104,"section":89,"highlights":18,"children":-1},"Identify visitors","\u002Fdocs\u002Fdata-capture\u002Fidentify-visitors","docs\u002F02.data-capture\u002F08.identify-visitors","Tell Kontala who signed in, and how visits and visitors are counted.",{"title":106,"path":107,"stem":108,"icon":18,"summary":109,"section":110,"highlights":18,"children":-1},"Consent","\u002Fdocs\u002Fdata-capture\u002Fconsent","docs\u002F02.data-capture\u002F09.consent","How the tag behaves before and after a visitor answers your consent banner, and how to wire it up.","Privacy and control",{"title":112,"path":113,"stem":114,"icon":18,"summary":115,"section":110,"highlights":18,"children":-1},"Privacy and governance","\u002Fdocs\u002Fdata-capture\u002Fprivacy-and-governance","docs\u002F02.data-capture\u002F10.privacy-and-governance","What is kept and what is removed, page URLs, cookies, IP addresses, bots and how to leave parts of a page out.","i-lucide-mouse-pointer-click","One line of code captures page views, clicks, scrolling and struggle, classified in business terms.",[119,120,121,122],{"title":64,"to":65},{"title":70,"to":71},{"title":85,"to":86},{"title":106,"to":107},{"title":124,"path":125,"stem":126,"children":127,"icon":182,"summary":183,"section":18,"highlights":184},"Analytics","\u002Fdocs\u002Fanalytics","docs\u002F03.analytics\u002Findex",[128,134,139,145,150,155,160,166,171,177],{"title":129,"path":130,"stem":131,"icon":18,"summary":132,"section":133,"highlights":18,"children":-1},"Dashboards","\u002Fdocs\u002Fanalytics\u002Fdashboards","docs\u002F03.analytics\u002F01.dashboards","Open Kontala Analytics and find your way around the nine dashboards Kontala builds for you.","Get around",{"title":135,"path":136,"stem":137,"icon":18,"summary":138,"section":133,"highlights":18,"children":-1},"Explores, metrics and the semantic layer","\u002Fdocs\u002Fanalytics\u002Fsemantic-layer","docs\u002F03.analytics\u002F02.semantic-layer","The 20 explores Kontala maintains, what is in them, and how your Data Capture settings shape them.",{"title":140,"path":141,"stem":142,"icon":18,"summary":143,"section":144,"highlights":18,"children":-1},"How explores, dimensions and metrics work","\u002Fdocs\u002Fanalytics\u002Fexplores-dimensions-and-metrics","docs\u002F03.analytics\u002F03.explores-dimensions-and-metrics","Where a question starts, what you group it by, and what you measure.","Concepts",{"title":146,"path":147,"stem":148,"icon":18,"summary":149,"section":144,"highlights":18,"children":-1},"Explores","\u002Fdocs\u002Fanalytics\u002Fexplores","docs\u002F03.analytics\u002F04.explores","Open an explore, pick dimensions and metrics, then filter, sort and run your query.",{"title":151,"path":152,"stem":153,"icon":18,"summary":154,"section":144,"highlights":18,"children":-1},"Dimensions","\u002Fdocs\u002Fanalytics\u002Fdimensions","docs\u002F03.analytics\u002F05.dimensions","What you group and filter by: dimension types, dates and time intervals, filters and bins.",{"title":156,"path":157,"stem":158,"icon":18,"summary":159,"section":144,"highlights":18,"children":-1},"Metrics","\u002Fdocs\u002Fanalytics\u002Fmetrics","docs\u002F03.analytics\u002F06.metrics","What you measure: metric types, custom metrics, table calculations and the Metrics Catalog.",{"title":161,"path":162,"stem":163,"icon":18,"summary":164,"section":165,"highlights":18,"children":-1},"Explore and visualise","\u002Fdocs\u002Fanalytics\u002Fexplore-and-visualise","docs\u002F03.analytics\u002F07.explore-and-visualise","Build your own charts from the explores: filters, table calculations, custom fields and chart types.","Analyse",{"title":167,"path":168,"stem":169,"icon":18,"summary":170,"section":165,"highlights":18,"children":-1},"Ask AI and agents","\u002Fdocs\u002Fanalytics\u002Fask-ai-and-agents","docs\u002F03.analytics\u002F08.ask-ai-and-agents","AI assistants are not yet available in Kontala Analytics.",{"title":172,"path":173,"stem":174,"icon":18,"summary":175,"section":176,"highlights":18,"children":-1},"Share and export","\u002Fdocs\u002Fanalytics\u002Fshare-and-export","docs\u002F03.analytics\u002F09.share-and-export","Share links, comment on dashboards, export results and duplicate dashboards.","Share and govern",{"title":178,"path":179,"stem":180,"icon":18,"summary":181,"section":176,"highlights":18,"children":-1},"Security and governance","\u002Fdocs\u002Fanalytics\u002Fsecurity-and-governance","docs\u002F03.analytics\u002F10.security-and-governance","How you sign in to Analytics, what each role can do, and how your data is kept apart.","i-lucide-chart-line","Ready-made dashboards and 20 explores over your events, on a semantic layer Kontala maintains.",[185,186,187,188],{"title":129,"to":130},{"title":135,"to":136},{"title":140,"to":141},{"title":161,"to":162},{"title":190,"path":191,"stem":192,"children":193,"icon":200,"summary":201,"section":18,"highlights":202},"CDP","\u002Fdocs\u002Fcdp","docs\u002F04.cdp\u002Findex",[194],{"title":195,"path":196,"stem":197,"icon":18,"summary":198,"section":199,"highlights":18,"children":-1},"CDP overview","\u002Fdocs\u002Fcdp\u002Foverview","docs\u002F04.cdp\u002F01.overview","Identity resolution, consent, real-time audiences and warehouse-native sync.","Overview","i-lucide-users","One resolved, consented profile that every module reads and writes.",[203],{"title":195,"to":196},{"title":205,"path":206,"stem":207,"children":208,"icon":214,"summary":215,"section":18,"highlights":216},"Personalisation","\u002Fdocs\u002Fpersonalisation","docs\u002F05.personalisation\u002Findex",[209],{"title":210,"path":211,"stem":212,"icon":18,"summary":213,"section":199,"highlights":18,"children":-1},"Personalisation overview","\u002Fdocs\u002Fpersonalisation\u002Foverview","docs\u002F05.personalisation\u002F01.overview","Next best action, decisioning, bandits, recommendations and journey experiments.","i-lucide-sparkles","The next best content, offer and channel for each person.",[217],{"title":210,"to":211},{"title":219,"path":220,"stem":221,"children":222,"icon":228,"summary":229,"section":18,"highlights":230},"CVM","\u002Fdocs\u002Fcvm","docs\u002F06.cvm\u002Findex",[223],{"title":224,"path":225,"stem":226,"icon":18,"summary":227,"section":199,"highlights":18,"children":-1},"CVM overview","\u002Fdocs\u002Fcvm\u002Foverview","docs\u002F06.cvm\u002F01.overview","Churn and lifetime value prediction, lifecycle orchestration and offer guardrails.","i-lucide-trending-up","Lifecycle value, optimised for margin rather than vanity metrics.",[231],{"title":224,"to":225},{"title":233,"path":234,"stem":235,"children":236,"icon":253,"summary":254,"section":18,"highlights":255},"Autonomy","\u002Fdocs\u002Fautonomy","docs\u002F07.autonomy\u002Findex",[237,243,248],{"title":238,"path":239,"stem":240,"icon":18,"summary":241,"section":242,"highlights":18,"children":-1},"Goals and guardrails","\u002Fdocs\u002Fautonomy\u002Fgoals-and-guardrails","docs\u002F07.autonomy\u002F01.goals-and-guardrails","Optimise for value, within limits the models cannot cross.","Control",{"title":244,"path":245,"stem":246,"icon":18,"summary":247,"section":242,"highlights":18,"children":-1},"Autonomy levels","\u002Fdocs\u002Fautonomy\u002Fautonomy-levels","docs\u002F07.autonomy\u002F02.autonomy-levels","Approve, suggest-only or fully autonomous, set per journey.",{"title":249,"path":250,"stem":251,"icon":18,"summary":252,"section":242,"highlights":18,"children":-1},"Explainability","\u002Fdocs\u002Fautonomy\u002Fexplainability","docs\u002F07.autonomy\u002F03.explainability","Every action is logged with the signals and reasoning behind it.","i-lucide-shield-check","Goals, guardrails and approval levels: you decide how much runs on its own.",[256,257,258],{"title":238,"to":239},{"title":244,"to":245},{"title":249,"to":250},{"title":260,"path":261,"stem":262,"children":263,"icon":287,"summary":288,"section":18,"highlights":289},"Developers","\u002Fdocs\u002Fdevelopers","docs\u002F08.developers\u002Findex",[264,270,276,281],{"title":265,"path":266,"stem":267,"icon":18,"summary":268,"section":269,"highlights":18,"children":-1},"Tag reference","\u002Fdocs\u002Fdevelopers\u002Ftag-reference","docs\u002F08.developers\u002F01.tag-reference","Every script attribute, JavaScript function, HTML attribute and cookie of Kontala's website tag.","Website",{"title":271,"path":272,"stem":273,"icon":18,"summary":274,"section":275,"highlights":18,"children":-1},"App SDKs","\u002Fdocs\u002Fdevelopers\u002Fsdks","docs\u002F08.developers\u002F02.sdks","Native SDKs for Flutter, Android and iOS are in development and not yet available.","Apps and servers",{"title":277,"path":278,"stem":279,"icon":18,"summary":280,"section":275,"highlights":18,"children":-1},"Events API","\u002Fdocs\u002Fdevelopers\u002Fevents-api","docs\u002F08.developers\u002F03.events-api","The Events API, for sending events from your servers, is not yet available.",{"title":282,"path":283,"stem":284,"icon":18,"summary":285,"section":286,"highlights":18,"children":-1},"MCP server","\u002Fdocs\u002Fdevelopers\u002Fmcp","docs\u002F08.developers\u002F04.mcp","The MCP server for AI tools is not yet available.","AI tools","i-lucide-code-xml","The tag JavaScript API and attributes, and the status of the app SDKs and Events API.",[290,291,292],{"title":265,"to":266},{"title":271,"to":272},{"title":277,"to":278},{"title":294,"path":295,"stem":296,"children":297,"icon":310,"summary":311,"section":18,"highlights":312},"Security and privacy","\u002Fdocs\u002Fsecurity-and-privacy","docs\u002F09.security-and-privacy\u002Findex",[298,304],{"title":299,"path":300,"stem":301,"icon":18,"summary":302,"section":303,"highlights":18,"children":-1},"Data protection","\u002Fdocs\u002Fsecurity-and-privacy\u002Fdata-protection","docs\u002F09.security-and-privacy\u002F01.data-protection","Where events are stored, how long they are kept, and how visitors are protected.","Data",{"title":305,"path":306,"stem":307,"icon":18,"summary":308,"section":309,"highlights":18,"children":-1},"Access control","\u002Fdocs\u002Fsecurity-and-privacy\u002Faccess-control","docs\u002F09.security-and-privacy\u002F02.access-control","Sign-in, two-step verification, roles and write keys.","Access","i-lucide-lock","Where your data is stored, how long it is kept, and who in your team can do what.",[313,314],{"title":299,"to":300},{"title":305,"to":306},{"title":316,"path":317,"stem":318,"children":319,"icon":326,"summary":327,"section":18,"highlights":328},"Help and support","\u002Fdocs\u002Fsupport","docs\u002F10.support\u002Findex",[320],{"title":321,"path":322,"stem":323,"icon":18,"summary":324,"section":325,"highlights":18,"children":-1},"Contact us","\u002Fdocs\u002Fsupport\u002Fcontact-us","docs\u002F10.support\u002F01.contact-us","Talk to the Kontala team about setup, access or anything else.","Support","i-lucide-life-buoy","Get help from the Kontala team.",[329],{"title":321,"to":322},false,{"path":39,"title":38,"description":41,"summary":41,"icon":18,"section":36,"sections":18,"lastUpdated":332,"body":333},"2026-10-12",{"type":334,"value":335,"toc":426},"minimark",[336,340,345,400,407,411],[337,338,339],"p",{},"This guide is for the engineers who install and maintain Kontala on a site.",[341,342,344],"h2",{"id":343},"suggested-path","Suggested path",[346,347,348,360,366,372,385,394],"ol",{},[349,350,351,354,355,359],"li",{},[352,353,64],"a",{"href":65}," and allow ",[356,357,358],"code",{},"https:\u002F\u002Fkonta.la"," in your Content Security Policy.",[349,361,362,363,365],{},"Wire your consent banner to the tag with ",[352,364,106],{"href":107},".\nThe tag treats visitors as consenting unless you tell it otherwise.",[349,367,368,369,371],{},"Tell Kontala who signed in with ",[352,370,101],{"href":102},".",[349,373,374,375,378,379,382,383,371],{},"Declare page types and click types where you know them best, with ",[356,376,377],{},"pageTracker.pageType()"," and ",[356,380,381],{},"data-ac-event",".\nSee ",[352,384,85],{"href":86},[349,386,387,388,378,391,371],{},"Keep sensitive parts of your pages out of capture with ",[356,389,390],{},"data-ac-ignore",[356,392,393],{},"data-ac-mask",[349,395,396,397,371],{},"On Shopify, add the ",[352,398,399],{"href":81},"Shopify checkout pixel",[337,401,402,403,406],{},"The ",[352,404,405],{"href":266},"tag reference"," lists every attribute, function and cookie.",[341,408,410],{"id":409},"things-you-do-not-need-to-do","Things you do not need to do",[412,413,414,417,423],"ul",{},[349,415,416],{},"Write a tagging plan before you start.\nPages and clicks are classified for you.",[349,418,419,420,371],{},"Re-tag pages already instrumented for another analytics tool.\nKontala can read your ",[352,421,422],{"href":76},"existing data layers and analytics calls",[349,424,425],{},"Ship a release to change what is captured.\nSettings arrive inside the script, so a change reaches your site within a few minutes.",{"title":427,"searchDepth":428,"depth":428,"links":429},"",2,[430,431],{"id":343,"depth":428,"text":344},{"id":409,"depth":428,"text":410},{"sections":433},[20,36],[435,436],{"title":32,"path":33,"stem":34,"summary":35,"children":-1},{"title":43,"path":44,"stem":45,"summary":46,"children":-1},1791815159148]