[{"data":1,"prerenderedAt":869},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-analytics":308},[4,9,15,20,25,30,35,41,52,60,69,77,84,92,96,105,109,117,122,127,132,138,143,148,153,158,163,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,260,265,269,273,278,283,288,293,298,303],{"path":5,"title":6,"description":7,"order":8,"group":8,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fpermissions","Who can do what","[object Object]",null,{"path":10,"title":11,"description":12,"order":13,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Finstallation","Installation","Install CloseYourIt on your own server with one command.",1,"start",{"path":16,"title":17,"description":18,"order":19,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsettings","Settings","Every setting in the .env file, what it does and which ones you must never change.",2,{"path":21,"title":22,"description":23,"order":24,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fdatabase","Database","What the database is, what is inside, how long data stays and how much room it takes.",3,{"path":26,"title":27,"description":28,"order":29,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fupdates-and-backups","Updates and backups","Update to a new version, back up and restore the database, check the install.",4,{"path":31,"title":32,"description":33,"order":34,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting","What to check when the install, the certificate, email or incoming data do not work.",5,{"path":36,"title":37,"description":38,"order":39,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fconnect-your-apps","Connect your apps","Every tool that sends data to CloseYourIt, and what each one collects.",6,"connect",{"path":42,"title":43,"description":44,"order":45,"group":8,"parent":46,"package":47,"note":48,"collects":49,"status":8},"\u002Fdocs\u002Fsdk-ruby","Ruby \u002F Rails","The closeyourit-ruby gem sends errors, logs, slow queries and job metrics from a Rails app.",7,"connect-your-apps","closeyourit-ruby","Errors, logs, slow queries and methods, background jobs.",{"errors":50,"logs":50,"performance":50,"visits":51,"servers":51},"full","none",{"path":53,"title":54,"description":55,"order":56,"group":8,"parent":46,"package":57,"note":58,"collects":59,"status":8},"\u002Fdocs\u002Fsdk-javascript","JavaScript","The @bussolabs\u002Fcloseyourit-js package works in the browser and on Node 20.16 or newer.",8,"@bussolabs\u002Fcloseyourit-js","Browser and Node, framework adapters and database queries from 0.13.0.",{"errors":50,"logs":50,"performance":50,"visits":50,"servers":51},{"path":61,"title":62,"description":63,"order":64,"group":8,"parent":46,"package":65,"note":66,"collects":67,"status":8},"\u002Fdocs\u002Fsdk-dart","Dart \u002F Flutter","The closeyourit package captures the errors of Flutter apps, even when the phone is offline.",9,"closeyourit","Public errors, logs and metrics from 0.9.3.",{"errors":50,"logs":68,"performance":68,"visits":51,"servers":51},"partial",{"path":70,"title":71,"description":72,"order":73,"group":8,"parent":46,"package":65,"note":74,"collects":75,"status":76},"\u002Fdocs\u002Fsdk-python","Python","The closeyourit package sends errors, logs and metrics from server-side Python applications.",10,"Server side. SQLAlchemy; Django query monitoring and FastAPI\u002FStarlette from 0.4.0.",{"errors":50,"logs":50,"performance":68,"visits":51,"servers":51},"pre_alpha",{"path":78,"title":79,"description":80,"order":81,"group":8,"parent":46,"package":79,"note":82,"collects":83,"status":8},"\u002Fdocs\u002Fsdk-sentry","Sentry SDK","Send errors with a compatible Sentry SDK; sessions and crashes have separate profiles.",11,"Compatible errors; sessions and crashes require a verified profile.",{"errors":50,"logs":51,"performance":51,"visits":51,"servers":51},{"path":85,"title":86,"description":87,"order":88,"group":8,"parent":46,"package":89,"note":90,"collects":91,"status":8},"\u002Fdocs\u002Fagent-server","Server agent","A small program on the server that sends the state of the machine every 60 seconds.",12,"closeyourit-agent","CPU, memory, disks, network, containers and services.",{"errors":51,"logs":68,"performance":51,"visits":51,"servers":50},{"path":93,"title":94,"description":95,"order":88,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnuxt","Vue and Nuxt","Connect Nuxt browser errors and Nitro server errors without exposing a server token.",{"path":97,"title":98,"description":99,"order":100,"group":8,"parent":46,"package":101,"note":102,"collects":103,"status":104},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","A read-only observer of the cluster: one copy per cluster.",13,"closeyourit-kube","Machines, apps and error events of the cluster.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":50},"coming",{"path":106,"title":107,"description":108,"order":100,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Send server traces, metrics and logs through the optional OTLP receiver.",{"path":110,"title":111,"description":112,"order":113,"group":8,"parent":46,"package":114,"note":115,"collects":116,"status":8},"\u002Fdocs\u002Fcli","cyi CLI","The closeyourit command, cyi for short: manage projects, errors and tickets from the terminal.",14,"@bussolabs\u002Fcloseyourit-cli","It collects no data: it drives CloseYourIt from the terminal.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":51},{"path":118,"title":119,"description":120,"order":121,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhttp-api","HTTP API","Send errors, logs, metrics and page views with plain HTTP requests, without an SDK.",15,{"path":123,"title":124,"description":125,"order":126,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fgithub-app","GitHub","Connect GitHub repositories to tickets and releases with your own GitHub App.",16,{"path":128,"title":129,"description":130,"order":131,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fingest-gateway","Ingest gateway","Keep incoming errors, logs and metrics safe when the app is slow or restarting.",17,{"path":133,"title":134,"description":135,"order":136,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fai","AI","Turn on assistant, analysis, dictation and smart search with a CloseYourIt AI key or your own provider.",18,"automation",{"path":139,"title":140,"description":141,"order":142,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fautomator","Automator","Let tickets be worked automatically on your own Linux machine, with Claude Code, Codex or both.",19,{"path":144,"title":145,"description":146,"order":147,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fstack-coverage","Frameworks and stack coverage","Choose a published SDK or understand the limits of a locally tested integration.",20,{"path":149,"title":150,"description":151,"order":152,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fmonitoring","Traces, measurements and sessions","Explore the new signals, compare releases and recover original error locations.",21,{"path":154,"title":155,"description":156,"order":157,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnode-database","Node databases","Monitor slow and repeated queries with pg, mysql2, Drizzle and Prisma PostgreSQL.",22,{"path":159,"title":160,"description":161,"order":162,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fclaude-code","Claude Code","CloseYourIt inside Claude Code, in a column next to the conversation with production and your open tickets.",23,{"path":164,"title":165,"description":166,"order":167,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftickets","Tickets and ideas","Open and follow tickets on the board, group them into milestones, ask questions and turn voted ideas into work.",30,"use",{"path":170,"title":171,"description":172,"order":173,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ferrors","Errors","How your apps' errors become single rows, and how to resolve, ignore, merge or turn them into tickets.",31,{"path":175,"title":176,"description":177,"order":178,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fperformance","Performance","Find slow queries and methods, read the problems detected automatically and get an alert when one appears.",32,{"path":180,"title":181,"description":182,"order":183,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Flogs","Logs","Search your apps' messages, follow a request from start to end and link a message to an error or a ticket.",33,{"path":185,"title":186,"description":187,"order":188,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsecrets","Secrets","Passwords, keys and private files in one place, per project and environment, read by your app without a .env on disk.",34,{"path":190,"title":191,"description":192,"order":193,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fservers","Servers","The state of your machines on one page, with history and alerts when something breaks or fills up.",35,{"path":195,"title":196,"description":197,"order":198,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fuptime","Uptime","Check that your sites answer, keep count of outages and show them to customers on a status page.",36,{"path":200,"title":201,"description":202,"order":203,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fcrons","Scheduled jobs","Notice when a job that should run on its own stops running, or runs and ends badly.",37,{"path":205,"title":206,"description":207,"order":208,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Falerts","Alerts","The rules that create an alert, the notification center and where each person chooses to receive them.",38,{"path":210,"title":211,"description":212,"order":213,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhelpdesk","Help desk","Visitors of a project's site write to the team with the \"Need help?\" button, and the request lands in the right project.",39,{"path":215,"title":216,"description":217,"order":218,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fanalytics","Site analytics","How many people visit the site, what they look at and where they come from, without cookies.",40,{"path":220,"title":221,"description":222,"order":223,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freplays","Session replay","Record how people move through the site and watch it back like a video, even next to an error.",41,{"path":225,"title":226,"description":227,"order":228,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freleases","Releases","The versions running in each environment, bound to GitHub tags, and the errors that come back after a fix.",42,{"path":230,"title":231,"description":232,"order":233,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fvulnerabilities","Vulnerabilities","Known security problems in your projects' libraries, and the languages that no longer get fixes.",43,{"path":235,"title":236,"description":237,"order":238,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fseo","SEO","CloseYourIt visits your sites like a search engine and tells you what keeps your pages from being found.",44,{"path":240,"title":241,"description":242,"order":243,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fknowledge","Knowledge base","Write notes, decisions and guides for your projects, find them by meaning and ask questions with sources.",45,{"path":245,"title":246,"description":247,"order":248,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fagents","AI agents","Which tickets agents take, what they hand you, where you decide and how each machine is measured.",46,{"path":250,"title":251,"description":252,"order":253,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog","Versions","Every CloseYourIt system with its latest version, and the notes of each release.",50,{"path":255,"title":256,"description":257,"order":258,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-app","App","Every stable version of App, newest first.",51,"changelog",{"path":261,"title":262,"description":263,"order":264,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-cli","Command line (cyi)","Every stable version of Command line (cyi), newest first.",52,{"path":266,"title":140,"description":267,"order":268,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-automator","Every stable version of Automator, newest first.",53,{"path":270,"title":86,"description":271,"order":272,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-server","Every stable version of Server agent, newest first.",54,{"path":274,"title":275,"description":276,"order":277,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-kubernetes","Kubernetes agent","Every stable version of Kubernetes agent, newest first.",55,{"path":279,"title":280,"description":281,"order":282,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-javascript","JavaScript SDK","Every stable version of JavaScript SDK, newest first.",56,{"path":284,"title":285,"description":286,"order":287,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-ruby","Ruby SDK","Every stable version of Ruby SDK, newest first.",57,{"path":289,"title":290,"description":291,"order":292,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-python","Python SDK","Every stable version of Python SDK, newest first.",58,{"path":294,"title":295,"description":296,"order":297,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-dart","Dart SDK","Every stable version of Dart SDK, newest first.",59,{"path":299,"title":300,"description":301,"order":302,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-skills","Skills for AI assistants","Every stable version of Skills for AI assistants, newest first.",60,{"path":304,"title":305,"description":306,"order":307,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-site","Website and docs","Every stable version of Website and docs, newest first.",61,{"id":309,"title":216,"body":310,"collects":8,"description":217,"extension":863,"group":168,"meta":864,"navigation":865,"note":8,"order":218,"package":8,"parent":8,"path":215,"seo":866,"status":8,"stem":867,"__hash__":868},"docs_en\u002Fdocs\u002Fanalytics.md",{"type":311,"value":312,"toc":853},"minimark",[313,320,325,328,345,471,479,490,494,510,513,537,541,589,592,596,599,620,623,627,630,682,685,689,695,702,755,764,768,775,811,838,842,849],[314,315,316,319],"p",{},[317,318,216],"strong",{}," tells you how many visits and visitors the site has, which pages are viewed most and where the traffic comes from. It uses no cookies and stores no personal data.",[321,322,324],"h2",{"id":323},"turn-on-analytics","Turn on analytics",[314,326,327],{},"You need a project with the Web platform and two things together: the switch and the code in the pages.",[329,330,331,342],"ol",{},[332,333,334,335,337,338,341],"li",{},"In the project ",[317,336,17],{}," turn on ",[317,339,340],{},"Collect site analytics",".",[332,343,344],{},"Paste this code in the site pages, inside the head:",[346,347,352],"pre",{"className":348,"code":349,"language":350,"meta":351,"style":351},"language-html shiki shiki-themes github-light github-dark","\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002F@bussolabs\u002Fcloseyourit-js@0\u002Fdist\u002Fcloseyourit.min.js\">\u003C\u002Fscript>\n\u003Cscript>\n  CloseYourIt.init({\n    endpointUrl: \"https:\u002F\u002Fbugs.example.com\",\n    publicKey: \"\u003Cproject public key>\",\n    projectId: \"\u003Cproject id>\",\n    environment: \"production\",\n    trackPageviews: true,\n  })\n\u003C\u002Fscript>\n","html","",[353,354,355,386,394,405,416,426,436,446,457,462],"code",{"__ignoreMap":351},[356,357,359,363,367,371,374,378,381,383],"span",{"class":358,"line":13},"line",[356,360,362],{"class":361},"sVt8B","\u003C",[356,364,366],{"class":365},"s9eBZ","script",[356,368,370],{"class":369},"sScJk"," src",[356,372,373],{"class":361},"=",[356,375,377],{"class":376},"sZZnC","\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002F@bussolabs\u002Fcloseyourit-js@0\u002Fdist\u002Fcloseyourit.min.js\"",[356,379,380],{"class":361},">\u003C\u002F",[356,382,366],{"class":365},[356,384,385],{"class":361},">\n",[356,387,388,390,392],{"class":358,"line":19},[356,389,362],{"class":361},[356,391,366],{"class":365},[356,393,385],{"class":361},[356,395,396,399,402],{"class":358,"line":24},[356,397,398],{"class":361},"  CloseYourIt.",[356,400,401],{"class":369},"init",[356,403,404],{"class":361},"({\n",[356,406,407,410,413],{"class":358,"line":29},[356,408,409],{"class":361},"    endpointUrl: ",[356,411,412],{"class":376},"\"https:\u002F\u002Fbugs.example.com\"",[356,414,415],{"class":361},",\n",[356,417,418,421,424],{"class":358,"line":34},[356,419,420],{"class":361},"    publicKey: ",[356,422,423],{"class":376},"\"\u003Cproject public key>\"",[356,425,415],{"class":361},[356,427,428,431,434],{"class":358,"line":39},[356,429,430],{"class":361},"    projectId: ",[356,432,433],{"class":376},"\"\u003Cproject id>\"",[356,435,415],{"class":361},[356,437,438,441,444],{"class":358,"line":45},[356,439,440],{"class":361},"    environment: ",[356,442,443],{"class":376},"\"production\"",[356,445,415],{"class":361},[356,447,448,451,455],{"class":358,"line":56},[356,449,450],{"class":361},"    trackPageviews: ",[356,452,454],{"class":453},"sj4cs","true",[356,456,415],{"class":361},[356,458,459],{"class":358,"line":64},[356,460,461],{"class":361},"  })\n",[356,463,464,467,469],{"class":358,"line":73},[356,465,466],{"class":361},"\u003C\u002F",[356,468,366],{"class":365},[356,470,385],{"class":361},[329,472,473],{"start":24},[332,474,475,476,478],{},"Open ",[317,477,216],{},": the first visit shows up within a few seconds.",[314,480,481,482,485,486,489],{},"The in-app guide gives you the same code already filled in for the project you pick. If you already use the SDK, just add ",[353,483,484],{},"trackPageviews: true"," (see ",[487,488,54],"a",{"href":53},").",[321,491,493],{"id":492},"what-is-counted","What is counted",[495,496,497,500,507],"ul",{},[332,498,499],{},"One visit on every page load and on every page change in single-page apps. A change that stays on the same page does not count.",[332,501,502,503,506],{},"Of the page, only the domain and the path are sent, never the parameters after ",[353,504,505],{},"?",". The referring page and the UTM campaign parameters are sent too.",[332,508,509],{},"The visitor is an anonymous code computed by the server, which changes every day. The network address and the browser are used to compute it and are not stored.",[314,511,512],{},"To count a page by hand, for example a step of a wizard:",[346,514,518],{"className":515,"code":516,"language":517,"meta":351,"style":351},"language-js shiki shiki-themes github-light github-dark","CloseYourIt.capturePageview({ path: \"\u002Fwizard\u002Fstep-2\" })\n","js",[353,519,520],{"__ignoreMap":351},[356,521,522,525,528,531,534],{"class":358,"line":13},[356,523,524],{"class":361},"CloseYourIt.",[356,526,527],{"class":369},"capturePageview",[356,529,530],{"class":361},"({ path: ",[356,532,533],{"class":376},"\"\u002Fwizard\u002Fstep-2\"",[356,535,536],{"class":361}," })\n",[321,538,540],{"id":539},"what-you-see","What you see",[495,542,543,546,552,561,575,581],{},[332,544,545],{},"The numbers for the period: pageviews, visitors, bounce, average visit length, pages per visit. Changes are compared with the previous period of the same length.",[332,547,548,551],{},[317,549,550],{},"Now",": the visitors of the last 30 minutes.",[332,553,554,557,558,341],{},[317,555,556],{},"Top pages"," and ",[317,559,560],{},"Entry & exit pages",[332,562,563,564,567,568,571,572,341],{},"Where they come from: ",[317,565,566],{},"Top referrers",", ",[317,569,570],{},"Channels"," (direct, search, social, AI assistants, other sites, email, paid campaigns) and ",[317,573,574],{},"Campaigns (UTM)",[332,576,577,580],{},[317,578,579],{},"Locations",": the country.",[332,582,583,567,586,341],{},[317,584,585],{},"Browser & operating system",[317,587,588],{},"Device & screen",[314,590,591],{},"You can pick project, environment and period: last 24 hours, 7 days, 30 days or one year.",[321,593,595],{"id":594},"custom-events","Custom events",[314,597,598],{},"An event marks an action that matters, for example a sign-up:",[346,600,602],{"className":515,"code":601,"language":517,"meta":351,"style":351},"CloseYourIt.captureEvent(\"Signup\")\n",[353,603,604],{"__ignoreMap":351},[356,605,606,608,611,614,617],{"class":358,"line":13},[356,607,524],{"class":361},[356,609,610],{"class":369},"captureEvent",[356,612,613],{"class":361},"(",[356,615,616],{"class":376},"\"Signup\"",[356,618,619],{"class":361},")\n",[314,621,622],{},"Events do not count as visits: they feed the goals.",[321,624,626],{"id":625},"goals","Goals",[314,628,629],{},"A goal is a visit or an event that counts as a target reached.",[329,631,632,642,677],{},[332,633,634,635,638,639,341],{},"Press ",[317,636,637],{},"Manage goals",", then ",[317,640,641],{},"New goal",[332,643,644,645,648,649,652,653],{},"Give it a ",[317,646,647],{},"Name"," and pick the ",[317,650,651],{},"Type",":\n",[495,654,655,669],{},[332,656,657,660,661,664,665,668],{},[317,658,659],{},"Pageview path",": an exact path, or a prefix with ",[353,662,663],{},"*"," (for example ",[353,666,667],{},"\u002Fblog\u002F*",");",[332,670,671,674,675,341],{},[317,672,673],{},"Custom event",": the name passed to ",[353,676,610],{},[332,678,634,679,341],{},[317,680,681],{},"Save goal",[314,683,684],{},"For each goal you see unique visitors, the total and the conversion rate. Deleting a goal removes only its count: visits and events stay.",[321,686,688],{"id":687},"share-the-analytics","Share the analytics",[314,690,691,694],{},[317,692,693],{},"Create link"," publishes a read-only page with the project's analytics. You get the public address and a code to embed it in another site. The page shows only aggregated numbers, never single visitors.",[314,696,697,698,701],{},"To protect the link with a password, create it from the ",[487,699,700],{"href":110},"command line",":",[346,703,707],{"className":704,"code":705,"language":706,"meta":351,"style":351},"language-bash shiki shiki-themes github-light github-dark","cyi analytics share --project \u003Cid or key> --password \u003Cpassword>\n","bash",[353,708,709],{"__ignoreMap":351},[356,710,711,714,717,720,723,727,730,733,736,739,742,745,747,750,753],{"class":358,"line":13},[356,712,713],{"class":369},"cyi",[356,715,716],{"class":376}," analytics",[356,718,719],{"class":376}," share",[356,721,722],{"class":453}," --project",[356,724,726],{"class":725},"szBVR"," \u003C",[356,728,729],{"class":376},"id",[356,731,732],{"class":376}," or",[356,734,735],{"class":376}," ke",[356,737,738],{"class":361},"y",[356,740,741],{"class":725},">",[356,743,744],{"class":453}," --password",[356,746,726],{"class":725},[356,748,749],{"class":376},"passwor",[356,751,752],{"class":361},"d",[356,754,385],{"class":725},[314,756,757,760,761,489],{},[317,758,759],{},"Revoke"," turns the link off. Creating and revoking the link needs a dedicated permission (see ",[487,762,763],{"href":5},"Permissions",[321,765,767],{"id":766},"read-the-data-from-a-program","Read the data from a program",[314,769,770,771,774],{},"With a project token that has the ",[353,772,773],{},"read"," permission:",[346,776,778],{"className":704,"code":777,"language":706,"meta":351,"style":351},"curl https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Fanalytics?range=30d \\\n  -H \"Authorization: Bearer $CYI_TOKEN\"\n",[353,779,780,797],{"__ignoreMap":351},[356,781,782,785,788,791,794],{"class":358,"line":13},[356,783,784],{"class":369},"curl",[356,786,787],{"class":376}," https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F",[356,789,790],{"class":361},"$PROJECT_ID",[356,792,793],{"class":376},"\u002Fanalytics?range=30d",[356,795,796],{"class":453}," \\\n",[356,798,799,802,805,808],{"class":358,"line":19},[356,800,801],{"class":453},"  -H",[356,803,804],{"class":376}," \"Authorization: Bearer ",[356,806,807],{"class":361},"$CYI_TOKEN",[356,809,810],{"class":376},"\"\n",[314,812,813,816,817,567,820,567,823,826,827,830,831,834,835,341],{},[353,814,815],{},"range"," is ",[353,818,819],{},"24h",[353,821,822],{},"7d",[353,824,825],{},"30d"," or ",[353,828,829],{},"1y","; ",[353,832,833],{},"environment"," picks the environment. The answer holds the summary, the trend over time, the breakdowns, the channels and the goals. From the command line: ",[353,836,837],{},"cyi analytics show --project \u003Cid or key>",[321,839,841],{"id":840},"how-long-the-data-stays","How long the data stays",[314,843,844,845,848],{},"One year by default. Change it in ",[317,846,847],{},"Site analytics retention (days)",", in the organization or project settings.",[850,851,852],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":351,"searchDepth":19,"depth":19,"links":854},[855,856,857,858,859,860,861,862],{"id":323,"depth":19,"text":324},{"id":492,"depth":19,"text":493},{"id":539,"depth":19,"text":540},{"id":594,"depth":19,"text":595},{"id":625,"depth":19,"text":626},{"id":687,"depth":19,"text":688},{"id":766,"depth":19,"text":767},{"id":840,"depth":19,"text":841},"md",{},true,{"title":216,"description":217},"docs\u002Fanalytics","Nb7nA1EMjSpird6izzY5uahuano04yp_aEZr9qIO8w4",1791469657665]