[{"data":1,"prerenderedAt":620},["ShallowReactive",2],{"docs-nav-en":3,"docs-nav-zh":59,"docs-page-en-analytics":95,"docs-page-zh-analytics":394,"landing-footer-friend-links":617},[4,10,16,22,27,32,37,42,48,53],{"path":5,"title":6,"label":7,"description":8,"order":9},"/docs/introduction","web-nuxt template overview","Introduction","What the Nuxt template already ships today, and where to customize it.","1",{"path":11,"title":12,"label":13,"description":14,"order":15},"/docs/quick-start","Quick start for web-nuxt","Quick start","Go from first visit to live demo, dashboard activation, and launch-ready trust surfaces.","2",{"path":17,"title":18,"label":19,"description":20,"order":21},"/docs/billing-and-credits","Billing and credits","Billing","How pricing, credits, subscriptions, and order history fit together in the Nuxt template.","3",{"path":23,"title":24,"label":25,"description":26,"order":21},"/docs/skills-and-vibe-coding","Skills and vibe coding for web-nuxt","Skills & vibe coding","Use repo skills to customize apps/web-nuxt with prompt-driven edits instead of starting from a blank spec.",{"path":28,"title":29,"label":29,"description":30,"order":31},"/docs/auth-and-guest-mode","Auth and guest mode","Understand login, guest access, account conversion, and where each path should lead users.","4",{"path":33,"title":34,"label":34,"description":35,"order":36},"/docs/ai-playground","AI playground","The canonical AI entry in web-nuxt and how it relates to credits, keys, and guest access.","5",{"path":38,"title":39,"label":39,"description":40,"order":41},"/docs/support-and-refund","Support and refund","Where users should go for help, how refunds are handled, and what to expose on the public site.","6",{"path":43,"title":44,"label":45,"description":46,"order":47},"/docs/analytics","Analytics providers in web-nuxt","Analytics","Optional analytics support for GA4, Plausible, and Microsoft Clarity.","7",{"path":49,"title":50,"label":50,"description":51,"order":52},"/docs/footer-configuration","Footer configuration","Configure footer brand copy, contact email, social links, navigation columns, legal text, and copyright from zship.app.json.","8",{"path":54,"title":55,"label":56,"description":57,"order":58},"/docs/docs-system","How the built-in docs work","Docs system","The Nuxt Content docs setup inside web-nuxt and how to extend it.","9",[60,64,68,71,75,78,81,84,88,91],{"path":5,"title":61,"label":62,"description":63,"order":9},"web-nuxt 模板概览","模板概览","说明 web-nuxt 当前已经具备什么，以及主要改动入口在哪里。",{"path":11,"title":65,"label":66,"description":67,"order":15},"web-nuxt 快速开始","快速开始","从首次访问到真实演示、仪表盘激活路径与对外发布前检查清单。",{"path":17,"title":69,"label":69,"description":70,"order":21},"计费与积分","说明定价、积分、订阅与订单历史在 Nuxt 模板中的关系。",{"path":23,"title":72,"label":73,"description":74,"order":21},"web-nuxt 的 Skills 与 vibe coding","Skills 与 vibe coding","通过 repo 里的 skills，用自然语言驱动方式修改和自定义 apps/web-nuxt。",{"path":28,"title":76,"label":76,"description":77,"order":31},"登录与访客模式","说明登录、访客访问、账户升级以及这些路径应该把用户带到哪里。",{"path":33,"title":79,"label":79,"description":80,"order":36},"AI Playground","说明 web-nuxt 中统一 AI 入口与积分、API Key、访客会话之间的关系。",{"path":38,"title":82,"label":82,"description":83,"order":41},"支持与退款","说明用户应该去哪里求助、退款如何处理，以及公开站点应暴露哪些信任入口。",{"path":43,"title":85,"label":86,"description":87,"order":47},"web-nuxt 的 Analytics 支持","数据分析","说明 web-nuxt 目前如何接入 GA4、Plausible 和 Clarity。",{"path":49,"title":89,"label":89,"description":90,"order":52},"Footer 配置","通过 zship.app.json 配置 Footer 的品牌文案、联系邮箱、社交链接、导航栏目、法律声明与版权信息。",{"path":54,"title":92,"label":93,"description":94,"order":58},"内置 Docs 系统说明","Docs 系统","说明 web-nuxt 当前基于 Nuxt Content 的站内文档能力，以及如何继续扩展。",{"id":96,"title":44,"body":97,"description":46,"extension":388,"label":45,"meta":389,"navigation":390,"order":47,"path":43,"seo":391,"stem":392,"__hash__":393},"docsEn/docs/analytics.md",{"type":98,"value":99,"toc":383},"minimark",[100,112,117,139,143,146,165,372,376,379],[101,102,103,107,108,111],"p",{},[104,105,106],"code",{},"web-nuxt"," now supports optional global analytics providers from ",[104,109,110],{},"zship.app.json",".",[113,114,116],"h2",{"id":115},"supported-providers","Supported providers",[118,119,120,127,133],"ul",{},[121,122,123,124],"li",{},"Google Analytics 4 via ",[104,125,126],{},"analytics.googleAnalytics.measurementId",[121,128,129,130],{},"Plausible via ",[104,131,132],{},"analytics.plausible.domain",[121,134,135,136],{},"Microsoft Clarity via ",[104,137,138],{},"analytics.clarity.projectId",[113,140,142],{"id":141},"consent-flow","Consent flow",[101,144,145],{},"Analytics scripts are no longer injected unconditionally. The app now waits for a consent decision before loading those providers.",[118,147,148,151,162],{},[121,149,150],{},"Consent is persisted with a cookie plus local storage",[121,152,153,154,157,158,161],{},"A shared ",[104,155,156],{},"useAnalytics()"," wrapper exposes ",[104,159,160],{},"track()"," and page-view tracking",[121,163,164],{},"You can extend the same layer later for region-aware consent or first-party proxying",[166,167,172],"pre",{"className":168,"code":169,"language":170,"meta":171,"style":171},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"analytics\": {\n    \"googleAnalytics\": {\n      \"measurementId\": \"G-XXXXXXXXXX\"\n    },\n    \"plausible\": {\n      \"domain\": \"nuxt.zship.ai\",\n      \"scriptSrc\": \"\",\n      \"apiEndpoint\": \"\"\n    },\n    \"clarity\": {\n      \"projectId\": \"your-clarity-project-id\"\n    }\n  }\n}\n","json","",[104,173,174,183,202,218,242,248,262,284,301,316,321,335,354,360,366],{"__ignoreMap":171},[175,176,179],"span",{"class":177,"line":178},"line",1,[175,180,182],{"class":181},"sMK4o","{\n",[175,184,186,189,193,196,199],{"class":177,"line":185},2,[175,187,188],{"class":181},"  \"",[175,190,192],{"class":191},"spNyl","analytics",[175,194,195],{"class":181},"\"",[175,197,198],{"class":181},":",[175,200,201],{"class":181}," {\n",[175,203,205,208,212,214,216],{"class":177,"line":204},3,[175,206,207],{"class":181},"    \"",[175,209,211],{"class":210},"sBMFI","googleAnalytics",[175,213,195],{"class":181},[175,215,198],{"class":181},[175,217,201],{"class":181},[175,219,221,224,228,230,232,235,239],{"class":177,"line":220},4,[175,222,223],{"class":181},"      \"",[175,225,227],{"class":226},"sbssI","measurementId",[175,229,195],{"class":181},[175,231,198],{"class":181},[175,233,234],{"class":181}," \"",[175,236,238],{"class":237},"sfazB","G-XXXXXXXXXX",[175,240,241],{"class":181},"\"\n",[175,243,245],{"class":177,"line":244},5,[175,246,247],{"class":181},"    },\n",[175,249,251,253,256,258,260],{"class":177,"line":250},6,[175,252,207],{"class":181},[175,254,255],{"class":210},"plausible",[175,257,195],{"class":181},[175,259,198],{"class":181},[175,261,201],{"class":181},[175,263,265,267,270,272,274,276,279,281],{"class":177,"line":264},7,[175,266,223],{"class":181},[175,268,269],{"class":226},"domain",[175,271,195],{"class":181},[175,273,198],{"class":181},[175,275,234],{"class":181},[175,277,278],{"class":237},"nuxt.zship.ai",[175,280,195],{"class":181},[175,282,283],{"class":181},",\n",[175,285,287,289,292,294,296,299],{"class":177,"line":286},8,[175,288,223],{"class":181},[175,290,291],{"class":226},"scriptSrc",[175,293,195],{"class":181},[175,295,198],{"class":181},[175,297,298],{"class":181}," \"\"",[175,300,283],{"class":181},[175,302,304,306,309,311,313],{"class":177,"line":303},9,[175,305,223],{"class":181},[175,307,308],{"class":226},"apiEndpoint",[175,310,195],{"class":181},[175,312,198],{"class":181},[175,314,315],{"class":181}," \"\"\n",[175,317,319],{"class":177,"line":318},10,[175,320,247],{"class":181},[175,322,324,326,329,331,333],{"class":177,"line":323},11,[175,325,207],{"class":181},[175,327,328],{"class":210},"clarity",[175,330,195],{"class":181},[175,332,198],{"class":181},[175,334,201],{"class":181},[175,336,338,340,343,345,347,349,352],{"class":177,"line":337},12,[175,339,223],{"class":181},[175,341,342],{"class":226},"projectId",[175,344,195],{"class":181},[175,346,198],{"class":181},[175,348,234],{"class":181},[175,350,351],{"class":237},"your-clarity-project-id",[175,353,241],{"class":181},[175,355,357],{"class":177,"line":356},13,[175,358,359],{"class":181},"    }\n",[175,361,363],{"class":177,"line":362},14,[175,364,365],{"class":181},"  }\n",[175,367,369],{"class":177,"line":368},15,[175,370,371],{"class":181},"}\n",[113,373,375],{"id":374},"next-improvement-path","Next improvement path",[101,377,378],{},"If you need stricter compliance, add a dedicated consent center or route analytics through first-party endpoints before turning on provider IDs in production.",[380,381,382],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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);}",{"title":171,"searchDepth":185,"depth":185,"links":384},[385,386,387],{"id":115,"depth":185,"text":116},{"id":141,"depth":185,"text":142},{"id":374,"depth":185,"text":375},"md",{},true,{"title":44,"description":46},"docs/analytics","sq-VLBU6lfUHU0l4x-pFbDQWncLmJN3RdmzQ7ZGBxtQ",{"id":395,"title":85,"body":396,"description":87,"extension":388,"label":86,"meta":614,"navigation":390,"order":47,"path":43,"seo":615,"stem":392,"__hash__":616},"docsZh/docs/analytics.md",{"type":98,"value":397,"toc":609},[398,406,409,426,429,432,449,601,604,607],[101,399,400,402,403,405],{},[104,401,106],{}," 现在已经支持从 ",[104,404,110],{}," 配置可选的 analytics provider。",[113,407,408],{"id":408},"当前支持的提供商",[118,410,411,416,421],{},[121,412,413,414],{},"Google Analytics 4，通过 ",[104,415,126],{},[121,417,418,419],{},"Plausible，通过 ",[104,420,132],{},[121,422,423,424],{},"Microsoft Clarity，通过 ",[104,425,138],{},[113,427,428],{"id":428},"同意机制",[101,430,431],{},"分析脚本不再默认注入，只有用户明确同意之后才会加载。",[118,433,434,437,446],{},[121,435,436],{},"同意状态会同时写入 cookie 和 local storage",[121,438,439,440,442,443,445],{},"统一通过 ",[104,441,156],{}," 暴露 ",[104,444,160],{}," 与页面浏览统计",[121,447,448],{},"后续如果需要按地区合规、第一方代理或更细粒度事件，可继续在这一层扩展",[166,450,451],{"className":168,"code":169,"language":170,"meta":171,"style":171},[104,452,453,457,469,481,497,501,513,531,545,557,561,573,589,593,597],{"__ignoreMap":171},[175,454,455],{"class":177,"line":178},[175,456,182],{"class":181},[175,458,459,461,463,465,467],{"class":177,"line":185},[175,460,188],{"class":181},[175,462,192],{"class":191},[175,464,195],{"class":181},[175,466,198],{"class":181},[175,468,201],{"class":181},[175,470,471,473,475,477,479],{"class":177,"line":204},[175,472,207],{"class":181},[175,474,211],{"class":210},[175,476,195],{"class":181},[175,478,198],{"class":181},[175,480,201],{"class":181},[175,482,483,485,487,489,491,493,495],{"class":177,"line":220},[175,484,223],{"class":181},[175,486,227],{"class":226},[175,488,195],{"class":181},[175,490,198],{"class":181},[175,492,234],{"class":181},[175,494,238],{"class":237},[175,496,241],{"class":181},[175,498,499],{"class":177,"line":244},[175,500,247],{"class":181},[175,502,503,505,507,509,511],{"class":177,"line":250},[175,504,207],{"class":181},[175,506,255],{"class":210},[175,508,195],{"class":181},[175,510,198],{"class":181},[175,512,201],{"class":181},[175,514,515,517,519,521,523,525,527,529],{"class":177,"line":264},[175,516,223],{"class":181},[175,518,269],{"class":226},[175,520,195],{"class":181},[175,522,198],{"class":181},[175,524,234],{"class":181},[175,526,278],{"class":237},[175,528,195],{"class":181},[175,530,283],{"class":181},[175,532,533,535,537,539,541,543],{"class":177,"line":286},[175,534,223],{"class":181},[175,536,291],{"class":226},[175,538,195],{"class":181},[175,540,198],{"class":181},[175,542,298],{"class":181},[175,544,283],{"class":181},[175,546,547,549,551,553,555],{"class":177,"line":303},[175,548,223],{"class":181},[175,550,308],{"class":226},[175,552,195],{"class":181},[175,554,198],{"class":181},[175,556,315],{"class":181},[175,558,559],{"class":177,"line":318},[175,560,247],{"class":181},[175,562,563,565,567,569,571],{"class":177,"line":323},[175,564,207],{"class":181},[175,566,328],{"class":210},[175,568,195],{"class":181},[175,570,198],{"class":181},[175,572,201],{"class":181},[175,574,575,577,579,581,583,585,587],{"class":177,"line":337},[175,576,223],{"class":181},[175,578,342],{"class":226},[175,580,195],{"class":181},[175,582,198],{"class":181},[175,584,234],{"class":181},[175,586,351],{"class":237},[175,588,241],{"class":181},[175,590,591],{"class":177,"line":356},[175,592,359],{"class":181},[175,594,595],{"class":177,"line":362},[175,596,365],{"class":181},[175,598,599],{"class":177,"line":368},[175,600,371],{"class":181},[113,602,603],{"id":603},"后续建议",[101,605,606],{},"如果生产环境需要更严格的合规控制，建议继续补上专门的 consent center，或走第一方代理后再启用 provider ID。",[380,608,382],{},{"title":171,"searchDepth":185,"depth":185,"links":610},[611,612,613],{"id":408,"depth":185,"text":408},{"id":428,"depth":185,"text":428},{"id":603,"depth":185,"text":603},{},{"title":85,"description":87},"zqe2mWMzVTrk60F2I7BmiFenYQnJpUO4x6i0EV_AaWQ",{"code":618,"data":619},200,[],1777195974407]