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