PageSourceSearch

https://www.simpleanalytics.com/_nuxt/uCZ1wIGh.js

js simpleanalytics.com collected 2026-09-24 15:17:50 UTC 18,721 bytes, 1 lines download raw bytes

1import{o as a,c as d,a as t,d as q,u as N,F as m,r as g,b as r,i as j,e as o,w as l,h as c,_ as F,f as x,g as y,t as i,n as b,l as h}from"./BTIYGdQJ.js";import{_ as P}from"./Dp-cqJrL.js";import{n as H}from"./CsC67CVz.js";import{r as G}from"./ZcqWPmhA.js";import{r as L}from"./Bd4ONkms.js";import{r as V}from"./8o6xVSQ9.js";import{r as D}from"./DTx8eL6c.js";import{r as E}from"./D6cDcxsx.js";import{r as _}from"./Cq-pF7IE.js";import{r as I}from"./DxvI0-O1.js";import{r as O}from"./B_vX3OwY.js";import{r as f}from"./CguZNGSR.js";import{r as A}from"./CosOtMAK.js";import{r as z}from"./CxcvLSBM.js";import{r as C}from"./BfIGXAAR.js";import{r as R}from"./CFhqJFnt.js";import{r as U}from"./BUA_g3Da.js";import{r as v}from"./PyYJ0tk2.js";function Z(T,w){return a(),d("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z"})])}const Y={class:"pt-4 pb-12 md:pt-6 md:pb-16 bg-gray-50 dark:bg-gray-800"},J={class:"max-w-5xl mx-auto px-6"},K={class:"grid grid-cols-2 md:grid-cols-3 gap-x-8 gap-y-6 max-w-3xl mx-auto"},Q={class:"text-sm font-medium"},X={class:"text-xs text-gray-500 dark:text-gray-400"},tt={class:"py-12 md:py-16"},et={class:"max-w-5xl mx-auto px-6"},st={class:"grid md:grid-cols-2 gap-10 items-center"},rt={class:"bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-2xl p-6 sm:p-8"},ot={class:"space-y-2"},at={class:"text-gray-600 dark:text-gray-400"},it={class:"font-medium text-gray-700 dark:text-gray-300"},nt={class:"space-y-4 text-gray-600 dark:text-gray-400"},lt={class:"py-12 md:py-16 bg-gray-50 dark:bg-gray-800"},dt={class:"max-w-5xl mx-auto px-6"},ct={class:"grid md:grid-cols-2 gap-6"},mt={class:"flex items-center gap-3"},gt={class:"text-base font-medium"},xt={class:"text-xs text-red-500 dark:text-red-600"},pt={class:"px-5 py-4 space-y-4"},ut={class:"text-sm text-gray-600 dark:text-gray-400"},yt={class:"pt-3 border-t border-gray-100 dark:border-gray-800 space-y-3"},bt={class:"text-sm text-gray-500 dark:text-gray-400"},ft={class:"text-sm text-gray-500 dark:text-gray-400"},kt={key:0,class:"flex flex-wrap items-center gap-2"},vt={class:"mt-6 text-center"},wt={class:"py-12 md:py-16"},ht={class:"max-w-4xl mx-auto px-6"},_t={class:"py-12 md:py-16 bg-gray-50 dark:bg-gray-800"},At={class:"max-w-5xl mx-auto px-6"},Ct={class:"grid sm:grid-cols-2 gap-4 max-w-3xl mx-auto"},Tt={class:"text-sm font-medium mb-2"},$t={class:"text-sm text-gray-500 dark:text-gray-400 leading-relaxed"},St={class:"py-12 md:py-16"},Wt={class:"max-w-4xl mx-auto px-6"},Bt={class:"bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-2xl overflow-hidden"},Mt={class:"grid md:grid-cols-2"},qt={class:"p-8 md:p-10"},Nt={class:"space-y-3 text-gray-600 dark:text-gray-400 text-sm leading-relaxed"},jt={class:"mt-6"},Ft={class:"bg-gray-50 dark:bg-gray-800 p-8 md:p-10 flex flex-col justify-center"},Pt={class:"space-y-4"},Ht={class:"flex items-center gap-4"}
1,Gt={class:"w-12 h-12 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center"},Lt={class:"text-sm text-gray-500 dark:text-gray-400"},Vt={class:"flex items-center gap-4"},Dt={class:"w-12 h-12 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center"},Et={class:"text-sm text-gray-500 dark:text-gray-400"},It={class:"flex items-center gap-4"},Ot={class:"w-12 h-12 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center"},zt={class:"py-8 border-t border-gray-200 dark:border-gray-700"},Rt={class:"max-w-3xl mx-auto px-6 text-center"},Ut={class:"flex flex-wrap justify-center gap-x-5 gap-y-2"},ge=q({__name:"web-analytics",setup(T){N({title:"Web Analytics - Simple Analytics",ogTitle:"Web Analytics - Simple Analytics",description:"How analytics works today, and why most data is incomplete. Consent banners, ad blockers, and browser restrictions have fundamentally changed how analytics works.",ogDescription:"How analytics works today, and why most data is incomplete. Consent banners, ad blockers, and browser restrictions have fundamentally changed how analytics works.",twitterCard:"summary_large_image"});const w=[{title:"Pageviews",desc:"Total pages loaded",icon:G},{title:"Visitors",desc:"Unique people visiting",icon:L},{title:"Sessions",desc:"Interactions in a time window",icon:V},{title:"Bounce rate",desc:"Left after one page",icon:D},{title:"Conversions",desc:"Actions that matter",icon:E},{title:"Traffic sources",desc:"Where visitors come from",icon:_}],$=[{icon:I,title:"Consent banners",desc:"Block tracking unless users opt in"},{icon:Z,title:"Ad blockers",desc:"Prevent analytics scripts from loading"}
1,{icon:O,title:"Browser restrictions",desc:"Limit how users can be identified"}],S=[{title:"Privacy-first analytics",icon:A,color:"red",desc:"Measures traffic without cookies or personal data. No consent banners needed. Increasingly preferred by teams that want complete traffic data without legal overhead.",tools:["Simple Analytics","Plausible","Fathom"],bestFor:"Websites that prioritize privacy, simplicity, and complete data.",tradeoff:"No user-level tracking or deep attribution.",links:[{to:"/plausible-alternative",label:"vs Plausible"},{to:"/fathom-alternative",label:"vs Fathom"}],highlight:!0},{title:"Traditional analytics",icon:z,color:"blue",desc:"Tracks individual users across sessions using cookies. The original model for web analytics, now increasingly problematic due to consent requirements.",tools:["Google Analytics","Adobe Analytics"],bestFor:"Teams needing deep attribution for paid advertising.",tradeoff:"Requires consent. Significant data loss. Complex setup (GA4).",links:[{to:"/google-analytics-alternative",label:"vs Google Analytics"},{to:"/adobe-analytics-alternative",label:"vs Adobe Analytics"}]},{title:"Product analytics",icon:C,color:"purple",desc:"Built for tracking individual user behavior inside applications: funnels, retention, feature adoption. Not designed for website analytics.",tools:["Amplitude","Mixpanel","PostHog"],bestFor:"Apps needing behavioral cohorts and product-led growth metrics.",tradeoff:"Requires consent. Complex setup. Overkill for most websites."},{title:"Self-hosted analytics",icon:R,color:"orange",desc:"Open-source tools you run on your own servers. Full control, but you maintain everything, and most configurations still require consent.",tools:["Matomo","Umami"],bestFor:"Teams with DevOps resources and strict data residency requirements.",tradeoff:"High maintenance. Often still requires consent banners.",links:[{to:"/matomo-alternative",label:"vs Matomo"}]}],W=[{icon:A,title:"Privacy vs tracking depth",text:"Tools that track individuals provide more granular data but require consent and lose traffic.",link:"/cookieless-analytics"},{icon:U,title:"Simplicity vs complexity",text:"Enterprise tools offer deep customization but require setup and dedicated analysts.",link:"/google-analytics-alternative"},{icon:C,title:"Marketing vs product",text:"Website analytics focuses on traffic. Product analytics focuses on in-app behavior."},{icon:_,title:"Compliance requirements",text:"If you operate in the EU, tools without cookies remove most compliance overhead.",link:"/gdpr-compliance"}],B=[{to:"/web-analytics-tools",label:"Best web analytics tools"},{to:"/google-analytics-alternatives",label:"Google Analytics alternatives"},{to:"/analytics-without-consent",label:"Analytics without consent"},{to:"/consent-analytics-gap",label:"Consent analytics gap"},{to:"/eu-hosted-analytics",label:"EU-hosted analytics"},{to:"/gdpr-compliance",label:"GDPR compliance"},{to:"/cookieless-analytics",label:"Cookieless analytics"}],u=p=>{const e={red:{bg:"bg-red-50 dark:bg-red-900/20",icon:"text-red-600 dark:text-red-600",border:"border-red-200 dark:border-red-800/50"},blue:{bg:"bg-blue-50 dark:bg-blue-900/20",icon:"text-blue-600 dark:text-blue-400",border:"border-blue-100 dark:border-blue-800/30"},green:{bg:"bg-green-50 dark:bg-green-900/20",icon:"text-green-600 dark:text-green-400",border:"border-green-100 dark:border-green-800/30"},purple:{bg:"bg-purple-50 dark:bg-purple-900/20",icon:"text-purple-600 dark:text-purple-400",border:"border-purple-100 dark:border-purple-800/30"},orange:{bg:"bg-orange-50 dark:bg-orange-900/20",icon:"text-orange-600 dark:text-orange-400",border:"border-orange-100 dark:border-orange-800/30"}};return e[p]||e.blue};return(p,e)=>{const n=F,M=P;return a(),d("div",null,[e[38]||(e[38]=t("section",{class:"pt-8 pb-12 md:pt-12 md:pb-16"},[t("div",{class:"max-w-4xl mx-auto px-6 text-center"},[t("h1",{class:"text-3xl font-medium sm:text-4xl lg:text-5xl"}," Web Analytics "),t("p",{class:"mt-6 text-lg max-w-2xl mx-auto leading-relaxed"}," Web analytics shows how people use your website, but modern tools often miss a large part of your traffic. ")])],-1)),t("section",Y,[t("div",J,[e[1]||(e[1]=t("div",{class:"text-center mb-10"},[t("h2",{class:"text-2xl sm:text-3xl font-medium mb-3"}," Web analytics is about understanding "),t("p",{class:"max-w-lg mx-auto"}," Analytics tools collect data to answer questions like: Where do visitors come from? What do they do? What leads to conversions? ")],-1)),t("div",K,[(a(),d(m,null,g(w,s=>t("div",{key:s.title,class:"flex items-center gap-3 pl-4 border-l-2 border-red-300 dark:border-red-700"},[(a(),x(y(s.icon),{class:"w-5 h-5 text-red-500 dark:text-red-600 flex-shrink-0"})),t("div",null,[t("h3",Q,i(s.title),1),t("p",X,i(s.desc),1)])])),64))]),e[2]||(e[2]=t("p",{class:"text-center text-sm text-gray-500 dark:text-gray-400 mt-8"},[r(" But today, how this data is collected, and what is missing, varies significantly between tools. "),t("span",{class:"font-medium text-gray-700 dark:text-gray-300"},"That difference defines modern web analytics.")],-1))])]),t("section",tt,[t("div",et,[t("div",st,[t("div",rt,[e[3]||(e[3]=j('<p class="text-xs font-medium text-red-500 dark:text-red-600 uppercase tracking-wider mb-4"> The problem </p><div class="flex justify-center mb-6"><div class="px-6 py-3 text-center"><p class="text-4xl font-semibold">100</p><p class="text-sm text-gray-500 dark:text-gray-400"> visitors arrive </p></div></div><div class="flex justify-center mb-6"><svg class="w-6 h-6 text-gray-300 dark:text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3"></path></svg></div><div class="grid grid-cols-2 gap-4 mb-6"><div class="bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-xl p-4 text-center"><p class="text-xs text-green-600 dark:text-green-400 mb-1"> Tracked </p><p class="text-2xl font-semibold">60</p></div><div class="bg-red-50 dark:bg-red-900/20 border border-dashed border-red-200 dark:border-red-800 rounded-xl p-4 text-center"><p class="text-xs text-red-500 dark:text-red-600 mb-1"> Missing </p><p class="text-2xl font-semibold text-red-500 dark:text-red-600"> 40 </p></div></div>',4)),t("div",ot,[(a(),d(m,null,g($,s=>t("div",{key:s.title,class:"flex items-center gap-3 text-sm"},[(a(),x(y(s.icon),{class:"w-4 h-4 text-gray-400 dark:text-gray-500 flex-shrink-0"})),t("span",at,[t("span",it,i(s.title)+":",1),r(" "+i(s.desc),1)])])),64))])]),t("div",null,[e[10]||(e[10]=t("h2",{class:"text-2xl sm:text-3xl font-medium mb-6"}," How web analytics changed ",-1)),t("div",nt,[e[7]||(e[7]=t("p",null," Web analytics used to be simple. You added a script, and every visitor was tracked. ",-1)),e[8]||(e[8]=t("p",{class:"font-medium text-gray-700 dark:text-gray-300"}," That model no longer works. ",-1)),e[9]||(e[9]=t("p",null,[r(" Today, consent banners, ad blockers, and browser restrictions mean "),t("span",{class:"font-medium text-gray-700 dark:text-gray-300"},"20-60% of visitors are missing"),r(" from most analytics reports. ")],-1)),t("p",null,[e[5]||(e[5]=r(" This is the ",-1)),o(n,{to:"/consent-analytics-gap",class:"text-red-500 dark:text-red-600 hover:underline font-medium"},{default:l(()=>[...e[4]||(e[4]=[r("consent analytics gap",-1)])]),_:1}),e[6]||(e[6]=r(": the difference between actual traffic and what your tools report. ",-1))])])])])])]),t("section",lt,[t("div",dt,[e[15]||(e[15]=t("div",{class:"text-center mb-10"},[t("h2",{class:"text-2xl sm:text-3xl font-medium mb-3"}," The 4 approaches to web analytics "),t("p",{class:"max-w-lg mx-auto"}," Not all analytics tools work the same way. Each approach solves different problems with different tradeoffs. ")],-1)),t("div",ct,[(a(),d(m,null,g(S,s=>t("div",{key:s.title,class:b(["border rounded-xl overflow-hidden",s.highlight?u(s.color).border:"border-gray-200 dark:border-gray-700","bg-white dark:bg-gray-900"])},[t("div",{class:b(["px-5 py-4 border-b",s.highlight?u(s.color).bg:"bg-white dark:bg-gray-900",s.highlight?u(s.color).border:"border-gray-100 dark:border-gray-800"])},[t("div",mt,[t("div",{class:b(["w-10 h-10 rounded-lg flex items-center justify-center",s.highlight?"bg-white dark:bg-gray-800":"bg-gray-50 dark:bg-gray-800"])},[(a(),x(y(s.icon),{class:b(["w-5 h-5",u(s.color).icon])},null,8,["class"]))],2),t("div",null,[t("h3",gt,i(s.title),1),t("p",xt,i(s.tools.join(", ")),1)])])],2),t("div",pt,[t("p",ut,i(s.desc),1),t("div",yt,[t("div",null,[e[11]||(e[11]=t("p",{class:"text-xs font-medium text-gray-700 dark:text-gray-300"}," Best for: ",-1)),t("p",bt,i(s.bestFor),1)]),t("div",null,[e[12]||(e[12]=t("p",{class:"text-xs font-medium text-gray-700 dark:text-gray-300"}," Limitations: ",-1)),t("p",ft,i(s.tradeoff),1)])]),s.links?.length?(a(),d("div",kt,[e[13]||(e[13]=t("span",{class:"text-xs text-gray-500 dark:text-gray-400"}," Compare: ",-1)),(a(!0),d(m,null,g(s.links,k=>(a(),x(n,{key:k.to,to:k.to,class:"inline-flex items-center gap-1 text-xs text-red-500 dark:text-red-600 hover:underline"},{default:l(()=>[r(i(k.label)+" ",1),o(c(f),{class:"w-3 h-3"})]),_:2},1032,["to"]))),128))])):h("",!0)])],2)),64))]),t("div",vt,[o(n,{to:"/web-analytics-tools",class:"inline-flex items-center gap-1.5 text-sm font-medium text-red-500 dark:text-red-600 hover:text-red-600 dark:hover:text-red-300 transition-colors"},{default:l(()=>[e[14]||(e[14]=r(" Compare analytics tools in detail ",-1)),o(c(f),{class:"w-3.5 h-3.5"})]),_:1})])])]),t("section",wt,[t("div",ht,[e[16]||(e[16]=t("div",{class:"text-center mb-8"},[t("h2",{class:"text-2xl sm:text-3xl font-medium mb-3"}," How analytics tools compare "),t("p",{class:"text-gray-500 dark:text-gray-400 max-w-md mx-auto"}," Tools differ along simplicity and data completeness. ")],-1)),o(M),e[17]||(e[17]=t("p",{class:"text-center text-sm text-gray-500 dark:text-gray-400 mt-6 max-w-xl mx-auto"}," Some privacy-first tools still rely on anonymized identifiers. Simple Analytics avoids tracking entirely. ",-1))])]),t("section",_t,[t("div",At,[e[19]||(e[19]=t("div",{class:"text-center mb-10"},[t("h2",{class:"text-2xl sm:text-3xl font-medium mb-3"}," How to choose the right approach "),t("p",{class:"max-w-md mx-auto"}," Start with your constraints, not features. ")],-1)),t("div",Ct,[(a(),d(m,null,g(W,s=>t("div",{key:s.title,class:"bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-xl p-5"},[(a(),x(y(s.icon),{class:"w-5 h-5 text-red-500 dark:text-red-600 mb-3"})),t("h3",Tt,i(s.title),1),t("p",$t,i(s.text),1),s.link?(a(),x(n,{key:0,to:s.link,class:"inline-flex items-center gap-1 text-xs text-red-500 dark:text-red-600 hover:underline mt-3"},{default:l(()=>[e[18]||(e[18]=r(" Learn more ",-1)),o(c(f),{class:"w-3 h-3"})]),_:1},8,["to"])):h("",!0)])),64))]),e[20]||(e[20]=t("p",{class:"text-center text-gray-600 dark:text-gray-400 mt-8 max-w-xl mx-auto"},[r(" If you want simple, complete website analytics without consent banners, "),t("span",{class:"font-medium text-gray-700 dark:text-gray-300"},"a privacy-first approach is usually the best fit.")],-1))])]),t("section",St,[t("div",Wt,[t("div",Bt,[t("div",Mt,[t("div",qt,[e[28]||(e[28]=t("p",{class:"text-xs font-medium text-red-500 dark:text-red-600 uppercase tracking-wider mb-3"}," A better approach ",-1)),e[29]||(e[29]=t("h2",{class:"text-2xl sm:text-3xl font-medium mb-4"}," Modern web analytics ",-1)),t("div",Nt,[t("p",null,[e[22]||(e[22]=r
1(" A better approach is emerging: measuring website traffic ",-1)),o(n,{to:"/analytics-without-consent"},{default:l(()=>[...e[21]||(e[21]=[r("without requiring consent",-1)])]),_:1}),e[23]||(e[23]=r(". ",-1))]),t("p",null,[e[25]||(e[25]=r(" Instead of tracking individuals, these tools focus on aggregate data, reducing data loss and simplifying ",-1)),o(n,{to:"/gdpr-compliance"},{default:l(()=>[...e[24]||(e[24]=[r("compliance",-1)])]),_:1}),e[26]||(e[26]=r(". ",-1))])]),t("div",jt,[t("a",{onClick:e[0]||(e[0]=s=>("navigateToWelcome"in p?p.navigateToWelcome:c(H))(p.$router,"click_signup_web_analytics_cta")),class:"button primary cursor-pointer"},[e[27]||(e[27]=r(" Try Simple Analytics free ",-1)),o(c(f),{class:"w-4 h-4"})])])]),t("div",Ft,[t("div",Pt,[t("div",Ht,[t("div",Gt,[o(c(v),{class:"w-6 h-6 text-green-600 dark:text-green-400"})]),t("div",null,[e[32]||(e[32]=t("p",{class:"font-medium"},"100% traffic visibility",-1)),t("p",Lt,[e[31]||(e[31]=r(" No data lost to ",-1)),o(n,{to:"/consent-analytics-gap",class:"hover:text-red-500 dark:hover:text-red-400 hover:underline"},{default:l(()=>[...e[30]||(e[30]=[r("consent",-1)])]),_:1})])])]),t("div",Vt,[t("div",Dt,[o(c(v),{class:"w-6 h-6 text-green-600 dark:text-green-400"})]),t("div",null,[e[35]||(e[35]=t("p",{class:"font-medium"},"No cookies or consent banners",-1)),t("p",Et,[o(n,{to:"/gdpr-compliance",class:"hover:text-red-500 dark:hover:text-red-400 hover:underline"},{default:l(()=>[...e[33]||(e[33]=[r("GDPR-compliant",-1)])]),_:1}),e[34]||(e[34]=r(" by design ",-1))])])]),t("div",It,[t("div",Ot,[o(c(v),{class:"w-6 h-6 text-green-600 dark:text-green-400"})]),e[36]||(e[36]=t("div",null,[t("p",{class:"font-medium"},"Setup in a few minutes"),t("p",{class:"text-sm text-gray-500 dark:text-gray-400"}," One script, instant insights ")],-1))])])])])])])]),t("section",zt,[t("div",Rt,[e[37]||(e[37]=t("p",{class:"text-xs font-medium text-gray-400 dark:text-gray-500 mb-4 uppercase tracking-wider"}," Go deeper ",-1)),t("div",Ut,[(a(),d(m,null,g(B,s=>o(n,{key:s.to,to:s.to,class:"text-sm text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 hover:underline transition-colors"},{default:l(()=>[r(i(s.label),1)]),_:2},1032,["to"])),64))])])])])}}});export{ge as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.