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