[{"data":1,"prerenderedAt":1229},["ShallowReactive",2],{"docs-navigation":3,"docs:\u002Fdocs\u002Fdevelopers\u002Ftag-reference":505,"docs-area:\u002Fdocs\u002Fdevelopers":1224,"docs-surround:\u002Fdocs\u002Fdevelopers\u002Ftag-reference":1226},[4],{"title":5,"path":6,"stem":7,"children":8,"page":504},"Docs","\u002Fdocs","docs",[9,58,123,349,363,377,391,418,467,489],{"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 Markalit'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 Markalit 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 Markalit 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 Markalit 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":342,"summary":343,"section":18,"highlights":344},"Analytics","\u002Fdocs\u002Fanalytics","docs\u002F03.analytics\u002Findex",[128,134,139,145,150,155,160,165,171,176,182,187,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273,278,283,288,293,299,304,309,314,318,323,328,333,338],{"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 Markalit Analytics and find your way around the ready-made dashboards Markalit 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 21 explores Markalit 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":144,"highlights":18,"children":-1},"Attribution modelling","\u002Fdocs\u002Fanalytics\u002Fattribution-modelling","docs\u002F03.analytics\u002F07.attribution-modelling","How conversions are credited to channels and campaigns: journeys, touchpoints, the three models and the switches.",{"title":166,"path":167,"stem":168,"icon":18,"summary":169,"section":170,"highlights":18,"children":-1},"Explore and visualise","\u002Fdocs\u002Fanalytics\u002Fexplore-and-visualise","docs\u002F03.analytics\u002F08.explore-and-visualise","Build your own charts from the explores: filters, table calculations, custom fields and chart types.","Analyse",{"title":172,"path":173,"stem":174,"icon":18,"summary":175,"section":170,"highlights":18,"children":-1},"Ask AI and agents","\u002Fdocs\u002Fanalytics\u002Fask-ai-and-agents","docs\u002F03.analytics\u002F09.ask-ai-and-agents","AI assistants are not yet available in Markalit Analytics.",{"title":177,"path":178,"stem":179,"icon":18,"summary":180,"section":181,"highlights":18,"children":-1},"Share and export","\u002Fdocs\u002Fanalytics\u002Fshare-and-export","docs\u002F03.analytics\u002F10.share-and-export","Share links, comment on dashboards, export results and duplicate dashboards.","Share and govern",{"title":183,"path":184,"stem":185,"icon":18,"summary":186,"section":181,"highlights":18,"children":-1},"Security and governance","\u002Fdocs\u002Fanalytics\u002Fsecurity-and-governance","docs\u002F03.analytics\u002F11.security-and-governance","How you sign in to Analytics, what each role can do, and how your data is kept apart.",{"title":188,"path":189,"stem":190,"icon":18,"summary":191,"section":192,"highlights":18,"children":-1},"Page views","\u002Fdocs\u002Fanalytics\u002Fpage-views","docs\u002F03.analytics\u002F12.page-views","Every page view, with its page, page type, visit, location, device, scroll depth and speed.","Explore reference",{"title":194,"path":195,"stem":196,"icon":18,"summary":197,"section":192,"highlights":18,"children":-1},"Visits","\u002Fdocs\u002Fanalytics\u002Fvisits","docs\u002F03.analytics\u002F13.visits","Every visit, as it arrived: channel, landing page, conversions and revenue.",{"title":199,"path":200,"stem":201,"icon":18,"summary":202,"section":192,"highlights":18,"children":-1},"Clicks","\u002Fdocs\u002Fanalytics\u002Fclicks","docs\u002F03.analytics\u002F14.clicks","Every click on a link, button or control, and every form sent, with its click type.",{"title":204,"path":205,"stem":206,"icon":18,"summary":207,"section":192,"highlights":18,"children":-1},"Swipes","\u002Fdocs\u002Fanalytics\u002Fswipes","docs\u002F03.analytics\u002F15.swipes","Every sideways swipe, such as through a carousel or gallery.",{"title":209,"path":210,"stem":211,"icon":18,"summary":212,"section":192,"highlights":18,"children":-1},"Friction","\u002Fdocs\u002Fanalytics\u002Ffriction","docs\u002F03.analytics\u002F16.friction","Every JavaScript error, rage click, dead click and quick back, and where it happened.",{"title":214,"path":215,"stem":216,"icon":18,"summary":217,"section":192,"highlights":18,"children":-1},"Checkout","\u002Fdocs\u002Fanalytics\u002Fcheckout","docs\u002F03.analytics\u002F17.checkout","Every Shopify checkout opened, step submitted and order paid.",{"title":219,"path":220,"stem":221,"icon":18,"summary":222,"section":192,"highlights":18,"children":-1},"Carts","\u002Fdocs\u002Fanalytics\u002Fcarts","docs\u002F03.analytics\u002F18.carts","Every visit with a cart, and whether it was bought, abandoned or recovered later.",{"title":224,"path":225,"stem":226,"icon":18,"summary":227,"section":192,"highlights":18,"children":-1},"Items","\u002Fdocs\u002Fanalytics\u002Fitems","docs\u002F03.analytics\u002F19.items","Every item of every product list, cart, checkout and order.",{"title":229,"path":230,"stem":231,"icon":18,"summary":232,"section":192,"highlights":18,"children":-1},"Products","\u002Fdocs\u002Fanalytics\u002Fproducts","docs\u002F03.analytics\u002F20.products","Every product listed, viewed, added to a cart, bought or refunded.",{"title":234,"path":235,"stem":236,"icon":18,"summary":237,"section":192,"highlights":18,"children":-1},"Data layer events","\u002Fdocs\u002Fanalytics\u002Fdata-layer-events","docs\u002F03.analytics\u002F21.data-layer-events","Every event your site pushes to its data layer, with your own fields.",{"title":239,"path":240,"stem":241,"icon":18,"summary":242,"section":192,"highlights":18,"children":-1},"Campaigns","\u002Fdocs\u002Fanalytics\u002Fcampaigns","docs\u002F03.analytics\u002F22.campaigns","Each day of each campaign: visits, credited conversions, ad spend, cost per conversion and ROAS.",{"title":244,"path":245,"stem":246,"icon":18,"summary":247,"section":192,"highlights":18,"children":-1},"Campaign trends","\u002Fdocs\u002Fanalytics\u002Fcampaign-trends","docs\u002F03.analytics\u002F23.campaign-trends","Spend, cost per visit, cost per conversion and ROAS, against earlier weeks and the usual.",{"title":249,"path":250,"stem":251,"icon":18,"summary":252,"section":192,"highlights":18,"children":-1},"Attribution","\u002Fdocs\u002Fanalytics\u002Fattribution","docs\u002F03.analytics\u002F24.attribution","Every touchpoint of every conversion's 90-day journey, with each model's credit.",{"title":254,"path":255,"stem":256,"icon":18,"summary":257,"section":192,"highlights":18,"children":-1},"Cohorts","\u002Fdocs\u002Fanalytics\u002Fcohorts","docs\u002F03.analytics\u002F25.cohorts","Each new visitor in each week and month after their first visit: return rates and value.",{"title":259,"path":260,"stem":261,"icon":18,"summary":262,"section":192,"highlights":18,"children":-1},"Activity","\u002Fdocs\u002Fanalytics\u002Factivity","docs\u002F03.analytics\u002F26.activity","Active visitors by day, week and month, with growth accounting and stickiness.",{"title":264,"path":265,"stem":266,"icon":18,"summary":267,"section":192,"highlights":18,"children":-1},"Activation","\u002Fdocs\u002Fanalytics\u002Factivation","docs\u002F03.analytics\u002F27.activation","Each sign-up beside each key action: how many reach it, how fast, and whether they stay.",{"title":269,"path":270,"stem":271,"icon":18,"summary":272,"section":192,"highlights":18,"children":-1},"Feature usage","\u002Fdocs\u002Fanalytics\u002Ffeature-usage","docs\u002F03.analytics\u002F28.feature-usage","Which features active visitors use, how often, and who adopts them.",{"title":274,"path":275,"stem":276,"icon":18,"summary":277,"section":192,"highlights":18,"children":-1},"First visits","\u002Fdocs\u002Fanalytics\u002Ffirst-visits","docs\u002F03.analytics\u002F29.first-visits","Which first-visit features go with new visitors coming back.",{"title":279,"path":280,"stem":281,"icon":18,"summary":282,"section":192,"highlights":18,"children":-1},"First-visit paths","\u002Fdocs\u002Fanalytics\u002Ffirst-visit-paths","docs\u002F03.analytics\u002F30.first-visit-paths","The paths new visitors take on their first visit, and whether they came back.",{"title":284,"path":285,"stem":286,"icon":18,"summary":287,"section":192,"highlights":18,"children":-1},"Trends","\u002Fdocs\u002Fanalytics\u002Ftrends","docs\u002F03.analytics\u002F31.trends","Every visit KPI against last week, last year, the usual and an expected range.",{"title":289,"path":290,"stem":291,"icon":18,"summary":292,"section":192,"highlights":18,"children":-1},"Movers","\u002Fdocs\u002Fanalytics\u002Fmovers","docs\u002F03.analytics\u002F32.movers","What moved: each channel, landing page or device against last week and the usual.",{"title":294,"path":295,"stem":296,"icon":18,"summary":297,"section":298,"highlights":18,"children":-1},"Overview","\u002Fdocs\u002Fanalytics\u002Foverview-dashboard","docs\u002F03.analytics\u002F33.overview-dashboard","Traffic, active users and top content at a glance: the place to start.","Dashboard reference",{"title":300,"path":301,"stem":302,"icon":18,"summary":303,"section":298,"highlights":18,"children":-1},"Acquisition","\u002Fdocs\u002Fanalytics\u002Facquisition-dashboard","docs\u002F03.analytics\u002F34.acquisition-dashboard","Where people come from, what the ads cost and returned, and where each channel lands them.",{"title":305,"path":306,"stem":307,"icon":18,"summary":308,"section":298,"highlights":18,"children":-1},"Engagement","\u002Fdocs\u002Fanalytics\u002Fengagement-dashboard","docs\u002F03.analytics\u002F35.engagement-dashboard","How visits engage, the pages read and left, the clicks and forms acted on, and who comes back.",{"title":310,"path":311,"stem":312,"icon":18,"summary":313,"section":298,"highlights":18,"children":-1},"Conversion","\u002Fdocs\u002Fanalytics\u002Fconversion-dashboard","docs\u002F03.analytics\u002F36.conversion-dashboard","Whether visits convert, where the funnels lose them and how long a first conversion takes.",{"title":249,"path":315,"stem":316,"icon":18,"summary":317,"section":298,"highlights":18,"children":-1},"\u002Fdocs\u002Fanalytics\u002Fattribution-dashboard","docs\u002F03.analytics\u002F37.attribution-dashboard","Which channel gets credit for a conversion under first touch, linear and last touch, and the paths journeys take.",{"title":319,"path":320,"stem":321,"icon":18,"summary":322,"section":298,"highlights":18,"children":-1},"Retention and cohorts","\u002Fdocs\u002Fanalytics\u002Fretention-dashboard","docs\u002F03.analytics\u002F38.retention-dashboard","Whether new visitors come back, sign-ups activate and the audience grows, and what a new visitor is worth.",{"title":324,"path":325,"stem":326,"icon":18,"summary":327,"section":298,"highlights":18,"children":-1},"Audience","\u002Fdocs\u002Fanalytics\u002Faudience-dashboard","docs\u002F03.analytics\u002F39.audience-dashboard","Who your visitors are: where, on what, how often, and whether you know them.",{"title":329,"path":330,"stem":331,"icon":18,"summary":332,"section":298,"highlights":18,"children":-1},"Product and app usage","\u002Fdocs\u002Fanalytics\u002Fproduct-usage-dashboard","docs\u002F03.analytics\u002F40.product-usage-dashboard","Which features people use, which first visits lead to coming back, where they struggle and which pages are slow.",{"title":334,"path":335,"stem":336,"icon":18,"summary":337,"section":298,"highlights":18,"children":-1},"Trend and anomaly","\u002Fdocs\u002Fanalytics\u002Ftrends-dashboard","docs\u002F03.analytics\u002F41.trends-dashboard","What changed, whether it is unusual, what drove it, and what moved around a release or launch.",{"title":229,"path":339,"stem":340,"icon":18,"summary":341,"section":298,"highlights":18,"children":-1},"\u002Fdocs\u002Fanalytics\u002Fproducts-dashboard","docs\u002F03.analytics\u002F42.products-dashboard","Which products sell, and where shoppers drop off between viewing and buying.","i-lucide-chart-line","Ready-made dashboards and 21 explores over your events, on a semantic layer Markalit maintains.",[345,346,347,348],{"title":129,"to":130},{"title":135,"to":136},{"title":140,"to":141},{"title":166,"to":167},{"title":350,"path":351,"stem":352,"children":353,"icon":359,"summary":360,"section":18,"highlights":361},"CDP","\u002Fdocs\u002Fcdp","docs\u002F04.cdp\u002Findex",[354],{"title":355,"path":356,"stem":357,"icon":18,"summary":358,"section":294,"highlights":18,"children":-1},"CDP overview","\u002Fdocs\u002Fcdp\u002Foverview","docs\u002F04.cdp\u002F01.overview","Identity resolution, consent, real-time audiences and warehouse-native sync.","i-lucide-users","One resolved, consented profile that every module reads and writes.",[362],{"title":355,"to":356},{"title":364,"path":365,"stem":366,"children":367,"icon":373,"summary":374,"section":18,"highlights":375},"Personalisation","\u002Fdocs\u002Fpersonalisation","docs\u002F05.personalisation\u002Findex",[368],{"title":369,"path":370,"stem":371,"icon":18,"summary":372,"section":294,"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.",[376],{"title":369,"to":370},{"title":378,"path":379,"stem":380,"children":381,"icon":387,"summary":388,"section":18,"highlights":389},"CVM","\u002Fdocs\u002Fcvm","docs\u002F06.cvm\u002Findex",[382],{"title":383,"path":384,"stem":385,"icon":18,"summary":386,"section":294,"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.",[390],{"title":383,"to":384},{"title":392,"path":393,"stem":394,"children":395,"icon":412,"summary":413,"section":18,"highlights":414},"Autonomy","\u002Fdocs\u002Fautonomy","docs\u002F07.autonomy\u002Findex",[396,402,407],{"title":397,"path":398,"stem":399,"icon":18,"summary":400,"section":401,"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":403,"path":404,"stem":405,"icon":18,"summary":406,"section":401,"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":408,"path":409,"stem":410,"icon":18,"summary":411,"section":401,"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.",[415,416,417],{"title":397,"to":398},{"title":403,"to":404},{"title":408,"to":409},{"title":419,"path":420,"stem":421,"children":422,"icon":461,"summary":462,"section":18,"highlights":463},"Developers","\u002Fdocs\u002Fdevelopers","docs\u002F08.developers\u002Findex",[423,429,435,440,445,450,455],{"title":424,"path":425,"stem":426,"icon":18,"summary":427,"section":428,"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 Markalit's website tag.","Website",{"title":430,"path":431,"stem":432,"icon":18,"summary":433,"section":434,"highlights":18,"children":-1},"App SDKs","\u002Fdocs\u002Fdevelopers\u002Fsdks","docs\u002F08.developers\u002F02.sdks","Which app SDKs are available, and where to find each one's installation guide.","Apps and servers",{"title":436,"path":437,"stem":438,"icon":18,"summary":439,"section":434,"highlights":18,"children":-1},"Flutter SDK","\u002Fdocs\u002Fdevelopers\u002Fflutter-sdk","docs\u002F08.developers\u002F03.flutter-sdk","Install kontala_flutter, start it in main(), and check that events arrive.",{"title":441,"path":442,"stem":443,"icon":18,"summary":444,"section":434,"highlights":18,"children":-1},"Android SDK","\u002Fdocs\u002Fdevelopers\u002Fandroid-sdk","docs\u002F08.developers\u002F04.android-sdk","Add la.konta:kontala-android, start it in Application.onCreate, and check that events arrive.",{"title":446,"path":447,"stem":448,"icon":18,"summary":449,"section":434,"highlights":18,"children":-1},"iOS SDK","\u002Fdocs\u002Fdevelopers\u002Fios-sdk","docs\u002F08.developers\u002F05.ios-sdk","Add the kontala-ios package, start it as the app launches, and check that events arrive.",{"title":451,"path":452,"stem":453,"icon":18,"summary":454,"section":434,"highlights":18,"children":-1},"Events API","\u002Fdocs\u002Fdevelopers\u002Fevents-api","docs\u002F08.developers\u002F06.events-api","Send events from your servers and apps to Markalit, beside the website tag.",{"title":456,"path":457,"stem":458,"icon":18,"summary":459,"section":460,"highlights":18,"children":-1},"MCP server","\u002Fdocs\u002Fdevelopers\u002Fmcp","docs\u002F08.developers\u002F07.mcp","The MCP server for AI tools is not yet available.","AI tools","i-lucide-code-xml","The tag JavaScript API and attributes, the app SDKs, and the Events API.",[464,465,466],{"title":424,"to":425},{"title":430,"to":431},{"title":451,"to":452},{"title":468,"path":469,"stem":470,"children":471,"icon":484,"summary":485,"section":18,"highlights":486},"Security and privacy","\u002Fdocs\u002Fsecurity-and-privacy","docs\u002F09.security-and-privacy\u002Findex",[472,478],{"title":473,"path":474,"stem":475,"icon":18,"summary":476,"section":477,"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":479,"path":480,"stem":481,"icon":18,"summary":482,"section":483,"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.",[487,488],{"title":473,"to":474},{"title":479,"to":480},{"title":490,"path":491,"stem":492,"children":493,"icon":500,"summary":501,"section":18,"highlights":502},"Help and support","\u002Fdocs\u002Fsupport","docs\u002F10.support\u002Findex",[494],{"title":495,"path":496,"stem":497,"icon":18,"summary":498,"section":499,"highlights":18,"children":-1},"Contact us","\u002Fdocs\u002Fsupport\u002Fcontact-us","docs\u002F10.support\u002F01.contact-us","Talk to the Markalit team about setup, access or anything else.","Support","i-lucide-life-buoy","Get help from the Markalit team.",[503],{"title":495,"to":496},false,{"path":425,"title":424,"description":427,"summary":427,"icon":18,"section":428,"sections":18,"lastUpdated":506,"body":507},"2026-10-12",{"type":508,"value":509,"toc":1216},"minimark",[510,515,565,573,577,580,829,843,847,916,923,1083,1087,1133,1137,1180,1189,1193,1212],[511,512,514],"h2",{"id":513},"the-snippet","The snippet",[516,517,522],"pre",{"className":518,"code":519,"language":520,"meta":521,"style":521},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript async src=\"https:\u002F\u002Fkonta.la\u002Fv1\u002Ft.js?k=pk_live_...\">\u003C\u002Fscript>\n","html","",[523,524,525],"code",{"__ignoreMap":521},[526,527,530,534,538,542,545,548,551,555,557,560,562],"span",{"class":528,"line":529},"line",1,[526,531,533],{"class":532},"sMK4o","\u003C",[526,535,537],{"class":536},"swJcz","script",[526,539,541],{"class":540},"spNyl"," async",[526,543,544],{"class":540}," src",[526,546,547],{"class":532},"=",[526,549,550],{"class":532},"\"",[526,552,554],{"class":553},"sfazB","https:\u002F\u002Fkonta.la\u002Fv1\u002Ft.js?k=pk_live_...",[526,556,550],{"class":532},[526,558,559],{"class":532},">\u003C\u002F",[526,561,537],{"class":536},[526,563,564],{"class":532},">\n",[566,567,568,569,572],"p",{},"The script must stay a classic script: never add ",[523,570,571],{},"type=\"module\"",".",[511,574,576],{"id":575},"script-attributes","Script attributes",[566,578,579],{},"Add these to the script tag to change how it behaves.",[581,582,583,599],"table",{},[584,585,586],"thead",{},[587,588,589,593,596],"tr",{},[590,591,592],"th",{},"Attribute",[590,594,595],{},"Default",[590,597,598],{},"What it does",[600,601,602,620,649,664,677,692,707,722,739,754,776,789,804,817],"tbody",{},[587,603,604,610,613],{},[605,606,607],"td",{},[523,608,609],{},"data-spa",[605,611,612],{},"on",[605,614,615,616,619],{},"Send a page view for each change of page in a single-page app. Set ",[523,617,618],{},"false"," to count full page loads only.",[587,621,622,627,632],{},[605,623,624],{},[523,625,626],{},"data-consent",[605,628,629],{},[523,630,631],{},"granted",[605,633,634,635,637,638,641,642,645,646,572],{},"The consent state before your code says otherwise: ",[523,636,631],{},", ",[523,639,640],{},"unknown"," or ",[523,643,644],{},"denied",". See ",[647,648,106],"a",{"href":107},[587,650,651,656,661],{},[605,652,653],{},[523,654,655],{},"data-consent-hold",[605,657,658],{},[523,659,660],{},"10000",[605,662,663],{},"How long, in milliseconds, events wait for an answer while consent is unknown.",[587,665,666,671,674],{},[605,667,668],{},[523,669,670],{},"data-disable-storage",[605,672,673],{},"off",[605,675,676],{},"Run without cookies: ids are kept in memory for the page only.",[587,678,679,684,689],{},[605,680,681],{},[523,682,683],{},"data-session-timeout",[605,685,686],{},[523,687,688],{},"30",[605,690,691],{},"Minutes without activity before a visit ends.",[587,693,694,699,704],{},[605,695,696],{},[523,697,698],{},"data-device-max-age",[605,700,701],{},[523,702,703],{},"63072000",[605,705,706],{},"Seconds the device cookie lasts.",[587,708,709,714,719],{},[605,710,711],{},[523,712,713],{},"data-cookie-prefix",[605,715,716],{},[523,717,718],{},"pt_",[605,720,721],{},"Prefix for the tag's cookie names.",[587,723,724,729,732],{},[605,725,726],{},[523,727,728],{},"data-cookie-domain",[605,730,731],{},"this host",[605,733,734,735,738],{},"Set a parent domain, such as ",[523,736,737],{},"example.com",", to share visits across subdomains.",[587,740,741,746,751],{},[605,742,743],{},[523,744,745],{},"data-cookie-path",[605,747,748],{},[523,749,750],{},"\u002F",[605,752,753],{},"Cookie path.",[587,755,756,761,766],{},[605,757,758],{},[523,759,760],{},"data-cookie-samesite",[605,762,763],{},[523,764,765],{},"Lax",[605,767,768,769,772,773,572],{},"Cookie SameSite. ",[523,770,771],{},"None"," forces ",[523,774,775],{},"Secure",[587,777,778,783,786],{},[605,779,780],{},[523,781,782],{},"data-cookie-secure",[605,784,785],{},"on HTTPS",[605,787,788],{},"Cookie Secure flag.",[587,790,791,796,801],{},[605,792,793],{},[523,794,795],{},"data-max-batch-events",[605,797,798],{},[523,799,800],{},"20",[605,802,803],{},"Most events in one request.",[587,805,806,811,814],{},[605,807,808],{},[523,809,810],{},"data-endpoint",[605,812,813],{},"from the script's address",[605,815,816],{},"Where events are sent, for a first-party proxy.",[587,818,819,824,826],{},[605,820,821],{},[523,822,823],{},"data-debug",[605,825,673],{},[605,827,828],{},"Log every captured event to the console, and warn about delivery problems.",[566,830,831,832,637,835,637,838,641,840,572],{},"Boolean attributes are on when present, or when set to ",[523,833,834],{},"true",[523,836,837],{},"1",[523,839,612],{},[523,841,842],{},"yes",[511,844,846],{"id":845},"javascript-functions","JavaScript functions",[581,848,849,858],{},[584,850,851],{},[587,852,853,856],{},[590,854,855],{},"Function",[590,857,598],{},[600,859,860,879,889,903],{},[587,861,862,867],{},[605,863,864],{},[523,865,866],{},"pageTracker.consent(state)",[605,868,869,870,637,873,641,876,572],{},"Set consent to ",[523,871,872],{},"'granted'",[523,874,875],{},"'denied'",[523,877,878],{},"'unknown'",[587,880,881,886],{},[605,882,883],{},[523,884,885],{},"pageTracker.getConsent()",[605,887,888],{},"Return the current consent state.",[587,890,891,896],{},[605,892,893],{},[523,894,895],{},"pageTracker.identify({ user, org })",[605,897,898,899,902],{},"Name the signed-in user and their organisation. ",[523,900,901],{},"identify({})"," signs them out.",[587,904,905,910],{},[605,906,907],{},[523,908,909],{},"pageTracker.pageType(type)",[605,911,912,913,572],{},"Declare the current page's type, such as ",[523,914,915],{},"'pdp'",[566,917,918,919,922],{},"All of them live on ",[523,920,921],{},"window.pageTracker"," once the tag has loaded.\nBefore then, push calls onto a queue, and the tag runs them in order when it starts:",[516,924,928],{"className":925,"code":926,"language":927,"meta":521,"style":521},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","window.pageTrackerQueue = window.pageTrackerQueue || [];\nwindow.pageTrackerQueue.push(['consent', 'granted']);\nwindow.pageTrackerQueue.push(['identify', { user: 'user-42' }]);\nwindow.pageTrackerQueue.push(['pageType', 'checkout']);\n","js",[523,929,930,959,1001,1048],{"__ignoreMap":521},[526,931,932,936,938,941,943,946,948,950,953,956],{"class":528,"line":529},[526,933,935],{"class":934},"sTEyZ","window",[526,937,572],{"class":532},[526,939,940],{"class":934},"pageTrackerQueue ",[526,942,547],{"class":532},[526,944,945],{"class":934}," window",[526,947,572],{"class":532},[526,949,940],{"class":934},[526,951,952],{"class":532},"||",[526,954,955],{"class":934}," []",[526,957,958],{"class":532},";\n",[526,960,962,964,966,969,971,975,978,981,984,986,989,992,994,996,999],{"class":528,"line":961},2,[526,963,935],{"class":934},[526,965,572],{"class":532},[526,967,968],{"class":934},"pageTrackerQueue",[526,970,572],{"class":532},[526,972,974],{"class":973},"s2Zo4","push",[526,976,977],{"class":934},"([",[526,979,980],{"class":532},"'",[526,982,983],{"class":553},"consent",[526,985,980],{"class":532},[526,987,988],{"class":532},",",[526,990,991],{"class":532}," '",[526,993,631],{"class":553},[526,995,980],{"class":532},[526,997,998],{"class":934},"])",[526,1000,958],{"class":532},[526,1002,1004,1006,1008,1010,1012,1014,1016,1018,1021,1023,1025,1028,1031,1034,1036,1039,1041,1044,1046],{"class":528,"line":1003},3,[526,1005,935],{"class":934},[526,1007,572],{"class":532},[526,1009,968],{"class":934},[526,1011,572],{"class":532},[526,1013,974],{"class":973},[526,1015,977],{"class":934},[526,1017,980],{"class":532},[526,1019,1020],{"class":553},"identify",[526,1022,980],{"class":532},[526,1024,988],{"class":532},[526,1026,1027],{"class":532}," {",[526,1029,1030],{"class":536}," user",[526,1032,1033],{"class":532},":",[526,1035,991],{"class":532},[526,1037,1038],{"class":553},"user-42",[526,1040,980],{"class":532},[526,1042,1043],{"class":532}," }",[526,1045,998],{"class":934},[526,1047,958],{"class":532},[526,1049,1051,1053,1055,1057,1059,1061,1063,1065,1068,1070,1072,1074,1077,1079,1081],{"class":528,"line":1050},4,[526,1052,935],{"class":934},[526,1054,572],{"class":532},[526,1056,968],{"class":934},[526,1058,572],{"class":532},[526,1060,974],{"class":973},[526,1062,977],{"class":934},[526,1064,980],{"class":532},[526,1066,1067],{"class":553},"pageType",[526,1069,980],{"class":532},[526,1071,988],{"class":532},[526,1073,991],{"class":532},[526,1075,1076],{"class":553},"checkout",[526,1078,980],{"class":532},[526,1080,998],{"class":934},[526,1082,958],{"class":532},[511,1084,1086],{"id":1085},"html-attributes","HTML attributes",[581,1088,1089,1097],{},[584,1090,1091],{},[587,1092,1093,1095],{},[590,1094,592],{},[590,1096,598],{},[600,1098,1099,1113,1123],{},[587,1100,1101,1106],{},[605,1102,1103],{},[523,1104,1105],{},"data-ac-event=\"add_to_cart\"",[605,1107,1108,1109,1112],{},"Declares what a click on this element, anything inside it, or its form does. Use a ",[647,1110,1111],{"href":86},"click type"," code.",[587,1114,1115,1120],{},[605,1116,1117],{},[523,1118,1119],{},"data-ac-ignore",[605,1121,1122],{},"Leaves out every click, swipe and friction signal inside this element.",[587,1124,1125,1130],{},[605,1126,1127],{},[523,1128,1129],{},"data-ac-mask",[605,1131,1132],{},"Keeps only that something inside this element was clicked or swiped.",[511,1134,1136],{"id":1135},"cookies","Cookies",[581,1138,1139,1152],{},[584,1140,1141],{},[587,1142,1143,1146,1149],{},[590,1144,1145],{},"Cookie",[590,1147,1148],{},"Holds",[590,1150,1151],{},"Lasts",[600,1153,1154,1167],{},[587,1155,1156,1161,1164],{},[605,1157,1158],{},[523,1159,1160],{},"pt_did",[605,1162,1163],{},"The anonymous device id",[605,1165,1166],{},"2 years, or less where the browser caps it",[587,1168,1169,1174,1177],{},[605,1170,1171],{},[523,1172,1173],{},"pt_sid",[605,1175,1176],{},"The visit's id and when it was last active",[605,1178,1179],{},"30 minutes after the last activity",[566,1181,1182,1183,1185,1186,1188],{},"To join a server-side event to a browser visit, read ",[523,1184,1160],{}," and the part of ",[523,1187,1173],{}," before the dot.",[511,1190,1192],{"id":1191},"sending","Sending",[566,1194,1195,1196,1199,1200,1203,1204,1207,1208,1211],{},"The tag sends with ",[523,1197,1198],{},"navigator.sendBeacon",", or ",[523,1201,1202],{},"fetch"," with ",[523,1205,1206],{},"keepalive"," where that is not available, as plain text so there is never a CORS preflight.\nIt sends what it holds when the page is hidden or closed, and never uses the ",[523,1209,1210],{},"unload"," event, so your pages stay eligible for the browser's back and forward cache.",[1213,1214,1215],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":521,"searchDepth":961,"depth":961,"links":1217},[1218,1219,1220,1221,1222,1223],{"id":513,"depth":961,"text":514},{"id":575,"depth":961,"text":576},{"id":845,"depth":961,"text":846},{"id":1085,"depth":961,"text":1086},{"id":1135,"depth":961,"text":1136},{"id":1191,"depth":961,"text":1192},{"sections":1225},[428,434,460],[1227,1228],{"title":419,"path":420,"stem":421,"summary":462,"children":-1},{"title":430,"path":431,"stem":432,"summary":433,"children":-1},1793023416575]