PageSourceSearch

https://simplestats.io/blog/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server

html simplestats.io collected 2026-10-04 15:24:10 UTC 147,756 bytes, 87 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="min-h-screen">
3    <head>
4        <meta charset="utf-8">
5        <meta name="viewport" content="width=device-width, initial-scale=1">
6
7        
8        <title inertia>SimpleStats - Revenue attribution analytics tool for Laravel apps</title>
9        <meta name="description" content="Discover which channels actually drive revenue, not just traffic. Server-side analytics built for Laravel apps. GDPR compliant, 100% accurate, ad-blocker proof.">
10
11        <meta property="og:title" content="SimpleStats - Revenue attribution analytics tool for Laravel apps">
12        <meta property="og:description" content="Discover which channels actually drive revenue, not just traffic. Server-side analytics built for Laravel apps. GDPR compliant, 100% accurate, ad-blocker proof.">
13        <meta property="og:url" content="https://simplestats.io/blog/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server">
14        <meta property="og:type" content="website">
15
16                    <template data-og-image data-og-hash="2cef490b2c3a0d381768d37e6b8e27fa" data-og-format="jpeg"><div class="flex h-full w-full flex-col bg-gradient-to-br from-indigo-600 to-purple-700 p-16">
17    <span class="text-4xl font-semibold uppercase tracking-widest text-white/80">simplestats.io</span>
18
19    <div class="flex flex-1 items-center">
20        <div class="flex-1">
21            <h1 class="text-7xl font-bold leading-tight text-white">Ask Your Laravel Analytics Anything: AI Assistant &amp; MCP Server</h1>
22
23                            <div class="mt-6 flex space-x-3">
24                                            <span class="rounded-full bg-white/20 px-4 py-1 text-lg text-white">AI</span>
25                                            <span class="rounded-full bg-white/20 px-4 py-1 text-lg text-white">MCP</span>
26                                            <span class="rounded-full bg-white/20 px-4 py-1 text-lg text-white">Laravel</span>
27                                    </div>
28                    </div>
29
30                    <img src="https://simplestats.io/storage/profile-photos/7gkjrh8JqUAALZeJpgrom9gCN1J0qki88BnXhWVv.jpg" alt="Zacharias Creutznacher" class="ml-16 h-64 w-64 rounded-full border-4 border-white/30 object-cover">
31            </div>
32
33            <span class="text-2xl text-white/80">Zacharias Creutznacher</span>
34    </div>
35</template>        
36        
37        
38        
39        <link rel="canonical" href="https://simplestats.io/blog/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server">
40
41        <!-- Fonts -->
42        <link rel="preconnect" href="https://fonts.bunny.net">
43        <link rel="preload" as="style" href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap">
44        <link rel="stylesheet" href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" media="print" onload="this.media='all'">
45        <noscript>
46            <link rel="stylesheet" href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap">
47        </noscript>
48
49        <!-- Icons -->
50        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
51        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
52        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
53        <link rel="manifest" href="/site.webmanifest">
54
55        <!-- preloads -->
56        <link rel="prefetch" href="https://simplestats.io/images/side_bg.jpg" as="image">
57
58        <!-- Scripts -->
59        
59<script type="text/javascript">const Ziggy={"url":"https:\/\/simplestats.io","port":null,"defaults":{},"routes":{"filament.exports.download":{"uri":"filament\/exports\/{export}\/download","methods":["GET","HEAD"],"parameters":["export"],"bindings":{"export":"id"}},"filament.imports.failed-rows.download":{"uri":"filament\/imports\/{import}\/failed-rows\/download","methods":["GET","HEAD"],"parameters":["import"],"bindings":{"import":"id"}},"filament.admin.auth.login":{"uri":"admin\/login","methods":["GET","HEAD"]},"filament.admin.auth.logout":{"uri":"admin\/logout","methods":["POST"]},"filament.admin.pages.dashboard":{"uri":"admin","methods":["GET","HEAD"]},"filament.admin.pages.announcements":{"uri":"admin\/announcements","methods":["GET","HEAD"]},"filament.admin.pages.track-revenue":{"uri":"admin\/track-revenue","methods":["GET","HEAD"]},"filament.admin.resources.users.index":{"uri":"admin\/users","methods":["GET","HEAD"]},"filament.admin.resources.users.edit":{"uri":"admin\/users\/{record}\/edit","methods":["GET","HEAD"],"parameters":["record"]},"md-blog.image":{"uri":"md-blog\/images\/{path}","methods":["GET","HEAD"],"wheres":{"path":".*"},"parameters":["path"]},"oauth.callback.prompt":{"uri":"oauth\/{provider}\/callback\/prompt","methods":["GET","HEAD"],"parameters":["provider"]},"oauth.callback.confirm":{"uri":"oauth\/{provider}\/callback\/confirm","methods":["POST"],"parameters":["provider"]},"oauth.redirect":{"uri":"oauth\/{provider}","methods":["GET","HEAD"],"parameters":["provider"]},"oauth.callback":{"uri":"oauth\/{provider}\/callback","methods":["GET","POST","HEAD"],"parameters":["provider"]},"connected-accounts.destroy":{"uri":"user\/connected-account\/{id}","methods":["DELETE"],"parameters":["id"]},"user-password.set":{"uri":"user\/set-password","methods":["POST"]},"user-profile-photo.set":{"uri":"user\/profile-photo","methods":["PUT"]},"login":{"uri":"login","methods":["GET","HEAD"]},"login.store":{"uri":"login","methods":["POST"]},"logout":{"uri":"logout","methods":["POST"]},"password.request":{"uri":"forgot-password","methods":["GET","HEAD"]},"password.reset":{"uri":"reset-password\/{token}","methods":["GET","HEAD"],"parameters":["token"]},"password.email":{"uri":"forgot-password","methods":["POST"]},"password.update":{"uri":"reset-password","methods":["POST"]},"register":{"uri":"register","methods":["GET","HEAD"]},"register.store":{"uri":"register","methods":["POST"]},"verification.notice":{"uri":"email\/verify","methods":["GET","HEAD"]},"verification.verify":{"uri":"email\/verify\/{id}\/{hash}","methods":["GET","HEAD"],"parameters":["id","hash"]},"verification.send":{"uri":"email\/verification-notification","methods":["POST"]},"user-profile-information.update":{"uri":"user\/profile-information","methods":["PUT"]},"user-password.update":{"uri":"user\/password","methods":["PUT"]},"password.confirm":{"uri":"user\/confirm-password","methods":["GET","HEAD"]},"password.confirmation":{"uri":"user\/confirmed-password-status","methods":["GET","HEAD"]},"password.confirm.store":{"uri":"user\/confirm-password","methods":["POST"]},"passkey.login-options":{"uri":"passkeys\/login\/options","methods":["GET","HEAD"]},"passkey.login":{"uri":"passkeys\/login","methods":["POST"]},"passkey.confirm-options":{"uri":"passkeys\/confirm\/options","methods":["GET","HEAD"]},"passkey.confirm":{"uri":"passkeys\/confirm","methods":["POST"]},"passkey.registration-options":{"uri":"user\/passkeys\/options","methods":["GET","HEAD"]},"passkey.store":{"uri":"user\/passkeys","methods":["POST"]},"passkey.destroy":{"uri":"user\/passkeys\/{passkey}","methods":["DELETE"],"parameters":["passkey"],"bindings":{"passkey":"id"}},"terms.show":{"uri":"terms-of-service","methods":["GET","HEAD"]},"policy.show":{"uri":"privacy-policy","methods":["GET","HEAD"]},"profile.show":{"uri":"user\/profile","methods":["GET","HEAD"]},"other-browser-sessions.destroy":{"uri":"user\/other-browser-sessions","methods":["DELETE"]},"current-user-photo.destroy":{"uri":"user\/profile-photo","methods":["DELETE"]},"current-user.destroy":{"uri":"user","methods":["DELETE"]},"teams.create":{"uri":"teams\/create","methods":["GET","HEAD"]},"teams.store":{"uri":"teams","methods":["POST"]},"teams.show":{"uri":"teams\/{team}","methods":["GET","HEAD"],"parameters":["team"],"bindings":{"team":"uuid"}},"teams.update":{"uri":"teams\/{team}","methods":["PUT"],"parameters":["team"],"bindings":{"team":"uuid"}},"teams.destroy":{"uri":"teams\/{team}","methods":["DELETE"],"parameters":["team"],"bindings":{"team":"uuid"}},"current-team.update":{"uri":"current-team","methods":["PUT"]},"team-members.store":{"uri":"teams\/{team}\/members","methods":["POST"],"parameters":["team"],"bindings":{"team":"uuid"}},"team-members.update":{"uri":"teams\/{team}\/members\/{user}","methods":["PUT"],"parameters":["team","user"],"bindings":{"team":"uuid","user":"uuid"}},"team-members.destroy":{"uri":"teams\/{team}\/members\/{user}","methods":["DELETE"],"parameters":["team","user"],"bindings":{"team":"uuid","user":"uuid"}},"team-invitations.accept":{"uri":"team-invitations\/{invitation}","methods":["GET","HEAD"],"parameters":["invitation"]},"team-invitations.destroy":{"uri":"team-invitations\/{invitation}","methods":["DELETE"],"parameters":["invitation"]},"mcp.web":{"uri":"mcp","methods":["POST"]},"spark.invoices.download":{"uri":"spark\/{type}\/{id}\/invoices\/{transaction}\/download","methods":["GET","HEAD"],"parameters":["type","id","transaction"]},"spark.portal":{"uri":"billing\/{type?}\/{id?}","methods":["GET","HEAD"],"parameters":["type","id"]},"default-livewire.update":{"uri":"livewire-aa01f43e\/update","methods":["POST"]},"livewire.upload-file":{"uri":"livewire-aa01f43e\/upload-file","methods":["POST"]},"livewire.preview-file":{"uri":"livewire-aa01f43e\/preview-file\/{filename}","methods":["GET","HEAD"],"parameters":["filename"]},"og-image.serve":{"uri":"og-image\/{filename}","methods":["GET","HEAD"],"wheres":{"filename":"[a-f0-9]+\\.(png|jpeg|jpg|webp)"},"parameters":["filename"]},"stats-custom-event.store":{"uri":"api\/v1\/stats-custom-event","methods":["POST"]},"stats-custom-properties.store":{"uri":"api\/v1\/stats-custom-properties","methods":["POST"]},"home":{"uri":"\/","methods":["GET","HEAD"]},"imprint":{"uri":"imprint","methods":["GET","HEAD"]},"blog.index":{"uri":"blog","methods":["GET","HEAD"]},"blog.show":{"uri":"blog\/{slug}","methods":["GET","HEAD"],"parameters":["slug"]},"timezones.index":{"uri":"timezones","methods":["GET","HEAD"]},"tracking.get-started-click":{"uri":"tracking\/get-started-click","methods":["POST"]},"setup.team.index":{"uri":"setup\/team","methods":["GET","HEAD"]},"setup.team.store":{"uri":"setup\/team","methods":["POST"]},"setup.project.index":{"uri":"setup\/project","methods":["GET","HEAD"]},"setup.project.store":{"uri":"setup\/project","methods":["POST"]},"setup.installation.index":{"uri":"setup\/installation","methods":["GET","HEAD"]},"teams.ai-settings.update":{"uri":"teams\/{team}\/ai-settings","methods":["PUT"],"parameters":["team"],"bindings":{"team":"uuid"}},"dashboard":{"uri":"dashboard","methods":["GET","HEAD"]},"dashboard.metric":{"uri":"dashboard\/metric\/{kpi}","methods":["GET","HEAD"],"parameters":["kpi"]},"revenue":{"uri":"revenue","methods":["GET","HEAD"]},"retention":{"uri":"retention","methods":["GET","HEAD"]},"power-users":{"uri":"power-users","methods":["GET","HEAD"]},"campaigns":{"uri":"campaigns","methods":["GET","HEAD"]},"campaigns.store":{"uri":"campaigns","methods":["POST"]},"campaigns.show":{"uri":"campaigns\/{campaign}","methods":["GET","HEAD"],"parameters":["campaign"],"bindings":{"campaign":"uuid"}},"campaigns.update":{"uri":"campaigns\/{campaign}","methods":["PATCH"],"parameters":["campaign"],"bindings":{"campaign":"uuid"}},"campaigns.track-campaigns.link":{"uri":"campaigns\/{campaign}\/track-campaigns","methods":["POST"],"parameters":["campaign"],"bindings":{"campaign":"uuid"}},"campaigns.track-campaigns.unlink":{"uri":"campaigns\/{campaign}\/track-campaigns\/{trackCampaign}","methods":["DELETE"],"parameters":["campaign","trackCampaign"],"bindings":{"campaign":"uuid","trackCampaign":"uuid"}},"ad-spends.store":{"uri":"ad-spends","methods":["POST"]},"ad-spends.update":{"uri":"ad-spends\/{ad_spend}","methods":["PUT","PATCH"],"parameters":["ad_spend"]},"ad-spends.destroy":{"uri":"ad-spends\/{ad_spend}","methods":["DELETE"],"parameters":["ad_spend"]},"stats.grouped":{"uri":"stats\/grouped","methods":["GET","HEAD"]},"ai.chat.store":{"uri":"ai\/chat","methods":["POST"]},"ai.conversations.index":{"uri":"ai\/conversations","methods":["GET","HEAD"]},"ai.conversations.show":{"uri":"ai\/conversations\/{conversation}","methods":["GET","HEAD"],"parameters":["conversation"],"bindings":{"conversation":"id"}},"stats.hide-free-plan-warning":{"uri":"stats\/hide-free-plan-warning","methods":["POST"]},"stats.hide-read-docs-warning":{"uri":"stats\/hide-read-docs-warning","methods":["POST"]}
59,"custom-presets.index":{"uri":"custom-presets","methods":["GET","HEAD"]},"custom-presets.store":{"uri":"custom-presets","methods":["POST"]},"custom-presets.update":{"uri":"custom-presets\/{custom_preset}","methods":["PUT","PATCH"],"parameters":["custom_preset"]},"custom-presets.destroy":{"uri":"custom-presets\/{custom_preset}","methods":["DELETE"],"parameters":["custom_preset"]},"custom-presets.builtin-visibility":{"uri":"custom-presets\/builtin-visibility","methods":["POST"]},"data-import.index":{"uri":"data-import","methods":["GET","HEAD"]},"data-import.store":{"uri":"data-import","methods":["POST"]},"data-import.cancel":{"uri":"data-import\/{data_import}\/cancel","methods":["POST"],"parameters":["data_import"]},"data-import.rollback":{"uri":"data-import\/{data_import}\/rollback","methods":["POST"],"parameters":["data_import"]},"projects.index":{"uri":"projects","methods":["GET","HEAD"]},"projects.store":{"uri":"projects","methods":["POST"]},"projects.show":{"uri":"projects\/{project}","methods":["GET","HEAD"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.update":{"uri":"projects\/{project}","methods":["PUT","PATCH"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.destroy":{"uri":"projects\/{project}","methods":["DELETE"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.token-view":{"uri":"projects\/{project}\/token-view","methods":["GET","HEAD"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.token-regenerate":{"uri":"projects\/{project}\/token-regenerate","methods":["GET","HEAD"],"parameters":["project"],"bindings":{"project":"uuid"}},"projects.user-link-url.update":{"uri":"projects\/{project}\/user-link-url","methods":["PUT"],"parameters":["project"],"bindings":{"project":"uuid"}},"user-settings.set-dashboard-preset":{"uri":"user-settings\/dashboard-preset","methods":["POST"]},"user-settings.complete-tour":{"uri":"user-settings\/complete-tour","methods":["POST"]},"user-settings.property-lifetime":{"uri":"user-settings\/property-lifetime","methods":["POST"]},"user-settings.login-summary":{"uri":"user-settings\/login-summary","methods":["POST"]},"login-summary":{"uri":"login-summary","methods":["GET","HEAD"]},"feedback.store":{"uri":"feedback","methods":["POST"]},"notifications.index":{"uri":"user\/notifications","methods":["GET","HEAD"]},"notifications.update":{"uri":"user\/notifications\/{notification}","methods":["PUT","PATCH"],"parameters":["notification"],"bindings":{"notification":"uuid"}},"notifications.trigger":{"uri":"user\/notifications\/{notification}\/trigger","methods":["POST"],"parameters":["notification"],"bindings":{"notification":"uuid"}}}};!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t||self).route=e()}(this,function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,u(r.key),r)}}function e(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},n.apply(null,arguments)}function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}function o(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(o=function(){return!!t})()}function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}function u(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}function f(t){var e="function"==typeof Map?new Map:void 0;return f=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(o())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var u=new(t.bind.apply(t,r));return n&&i(u,n.prototype),u}(t,arguments,r(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i(n,t)},f(t)}const c=String.prototype.replace,l=/%20/g,a={RFC1738:function(t){return c.call(t,l,"+")},RFC3986:function(t){return String(t)}};var s="RFC3986";const p=Object.prototype.hasOwnProperty,y=Array.isArray,d=new WeakMap;var b=function(t,e){return d.set(t,e),t};function v(t){return d.has(t)}var h=function(t){return d.get(t)},m=function(t,e){d.set(t,e)};const g=function(){const t=[];for(let e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),w=function(t,e){const n=e&&e.plainObjects?Object.create(null):{};for(let e=0;e<t.length;++e)void 0!==t[e]&&(n[e]=t[e]);return n},j=function t(e,n,r){if(!n)return e;if("object"!=typeof n){if(y(e))e.push(n);else{if(!e||"object"!=typeof e)return[e,n];if(v(e)){var o=h(e)+1;e[o]=n,m(e,o)}else(r&&(r.plainObjects||r.allowPrototypes)||!p.call(Object.prototype,n))&&(e[n]=!0)}return e}if(!e||"object"!=typeof e){if(v(n)){for(var i=Object.keys(n),u=r&&r.plainObjects?{__proto__:null,0:e}:{0:e},f=0;f<i.length;f++)u[parseInt(i[f],10)+1]=n[i[f]];return b(u,h(n)+1)}return[e].concat(n)}let c=e;return y(e)&&!y(n)&&(c=w(e,r)),y(e)&&y(n)?(n.forEach(function(n,o){if(p.call(e,o)){const i=e[o];i&&"object"==typeof i&&n&&"object"==typeof n?e[o]=t(i,n,r):e.push(n)}else e[o]=n}),e):Object.keys(n).reduce(function(e,o){const i=n[o];return e[o]=p.call(e,o)?t(e[o],i,r):i,e},c)},O=1024,E=function(t,e,n,r){if(v(t)){var o=h(t)+1;return t[o]=e,m(t,o),t}var i=[].concat(t,e);return i.length>n?b(w(i,{plainObjects:r}),i.length-1):i},T=function(t,e){if(y(t)){const n=[];for(let r=0;r<t.length;r+=1)n.push(e(t[r]));return n}return e(t)},R=Object.prototype.hasOwnProperty,k={brackets:function(t){return t+"[]"},comma:"comma",indices:function(t,e){return t+"["+e+"]"},repeat:function(t){return t}},S=Array.isArray,I=Array.prototype.push,A=function(t,e){I.apply(t,S(e)?e:[e])},D=Date.prototype.toISOString,$={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset
59:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:function(t,e,n,r,o){if(0===t.length)return t;let i=t;if("symbol"==typeof t?i=Symbol.prototype.toString.call(t):"string"!=typeof t&&(i=String(t)),"iso-8859-1"===n)return escape(i).replace(/%u[0-9a-f]{4}/gi,function(t){return"%26%23"+parseInt(t.slice(2),16)+"%3B"});let u="";for(let t=0;t<i.length;t+=O){const e=i.length>=O?i.slice(t,t+O):i,n=[];for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);45===r||46===r||95===r||126===r||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||"RFC1738"===o&&(40===r||41===r)?n[n.length]=e.charAt(t):r<128?n[n.length]=g[r]:r<2048?n[n.length]=g[192|r>>6]+g[128|63&r]:r<55296||r>=57344?n[n.length]=g[224|r>>12]+g[128|r>>6&63]+g[128|63&r]:(t+=1,r=65536+((1023&r)<<10|1023&e.charCodeAt(t)),n[n.length]=g[240|r>>18]+g[128|r>>12&63]+g[128|r>>6&63]+g[128|63&r])}u+=n.join("")}return u},encodeValuesOnly:!1,format:s,formatter:a[s],indices:!1,serializeDate:function(t){return D.call(t)},skipNulls:!1,strictNullHandling:!1},N={},_=function(t,e,n,r,o,i,u,f,c,l,a,s,p,y,d,b,v,h){let m=t,g=h,w=0,j=!1;for(;void 0!==(g=g.get(N))&&!j;){const e=g.get(t);if(w+=1,void 0!==e){if(e===w)throw new RangeError("Cyclic object value");j=!0}void 0===g.get(N)&&(w=0)}if("function"==typeof l?m=l(e,m):m instanceof Date?m=p(m):"comma"===n&&S(m)&&(m=T(m,function(t){return t instanceof Date?p(t):t})),null===m){if(i)return c&&!b?c(e,$.encoder,v,"key",y):e;m=""}if("string"==typeof(O=m)||"number"==typeof O||"boolean"==typeof O||"symbol"==typeof O||"bigint"==typeof O||function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))}(m))return c?[d(b?e:c(e,$.encoder,v,"key",y))+"="+d(c(m,$.encoder,v,"value",y))]:[d(e)+"="+d(String(m))];var O;const E=[];if(void 0===m)return E;let R;if("comma"===n&&S(m))b&&c&&(m=T(m,c)),R=[{value:m.length>0?m.join(",")||null:void 0}];else if(S(l))R=l;else{const t=Object.keys(m);R=a?t.sort(a):t}const k=f?e.replace(/\./g,"%2E"):e,I=r&&S(m)&&1===m.length?k+"[]":k;if(o&&S(m)&&0===m.length)return I+"[]";for(let e=0;e<R.length;++e){const g=R[e],j="object"==typeof g&&void 0!==g.value?g.value:m[g];if(u&&null===j)continue;const O=s&&f?g.replace(/\./g,"%2E"):g,T=S(m)?"function"==typeof n?n(I,O):I:I+(s?"."+O:"["+O+"]");h.set(t,w);const k=new WeakMap;k.set(N,h),A(E,_(j,T,n,r,o,i,u,f,"comma"===n&&b&&S(m)?null:c,l,a,s,p,y,d,b,v,k))}return E},x=Object.prototype.hasOwnProperty,C=Array.isArray,P={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:function(t,e,n){const r=t.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(t){return r}},delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},F=function(t){return t.replace(/&#(\d+);/g,function(t,e){return String.fromCharCode(parseInt(e,10))})},U=function(t,e){return t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1?t.split(","):t},q=function(t,e,n,r){if(!t)return;const o=n.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,i=/(\[[^[\]]*])/g;let u=n.depth>0&&/(\[[^[\]]*])/.exec(o);const f=u?o.slice(0,u.index):o,c=[];if(f){if(!n.plainObjects&&x.call(Object.prototype,f)&&!n.allowPrototypes)return;c.push(f)}let l=0;for(;n.depth>0&&null!==(u=i.exec(o))&&l<n.depth;){if(l+=1,!n.plainObjects&&x.call(Object.prototype,u[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(u[1])}return u&&c.push("["+o.slice(u.index)+"]"),function(t,e,n,r){let o=r?e:U(e,n);for(let e=t.length-1;e>=0;--e){let r;const i=t[e];if("[]"===i&&n.parseArrays)r=v(o)?o:n.allowEmptyArrays&&(""===o||n.strictNullHandling&&null===o)?[]:E([],o,n.arrayLimit,n.plainObjects);else{r=n.plainObjects?Object.create(null):{};const t="["===i.charAt(0)&&"]"===i.charAt(i.length-1)?i.slice(1,-1):i,e=n.decodeDotInKeys?t.replace(/%2E/g,"."):t,u=parseInt(e,10);n.parseArrays||""!==e?!isNaN(u)&&i!==e&&String(u)===e&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(r=[],r[u]=o):"__proto__"!==e&&(r[e]=o):r={0:o}}o=r}return o}(c,e,n,r)};function K(t,e){const n=function(t){if(!t)return P;if(void 0!==t.allowEmptyArrays&&"boolean"!=typeof t.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
59if(void 0!==t.decodeDotInKeys&&"boolean"!=typeof t.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!=t.decoder&&"function"!=typeof t.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");const e=void 0===t.charset?P.charset:t.charset,n=void 0===t.duplicates?P.duplicates:t.duplicates;if("combine"!==n&&"first"!==n&&"last"!==n)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===t.allowDots?!0===t.decodeDotInKeys||P.allowDots:!!t.allowDots,allowEmptyArrays:"boolean"==typeof t.allowEmptyArrays?!!t.allowEmptyArrays:P.allowEmptyArrays,allowPrototypes:"boolean"==typeof t.allowPrototypes?t.allowPrototypes:P.allowPrototypes,allowSparse:"boolean"==typeof t.allowSparse?t.allowSparse:P.allowSparse,arrayLimit:"number"==typeof t.arrayLimit?t.arrayLimit:P.arrayLimit,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:P.charsetSentinel,comma:"boolean"==typeof t.comma?t.comma:P.comma,decodeDotInKeys:"boolean"==typeof t.decodeDotInKeys?t.decodeDotInKeys:P.decodeDotInKeys,decoder:"function"==typeof t.decoder?t.decoder:P.decoder,delimiter:"string"==typeof t.delimiter||(r=t.delimiter,"[object RegExp]"===Object.prototype.toString.call(r))?t.delimiter:P.delimiter,depth:"number"==typeof t.depth||!1===t.depth?+t.depth:P.depth,duplicates:n,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof t.interpretNumericEntities?t.interpretNumericEntities:P.interpretNumericEntities,parameterLimit:"number"==typeof t.parameterLimit?t.parameterLimit:P.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:"boolean"==typeof t.plainObjects?t.plainObjects:P.plainObjects,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:P.
59strictNullHandling};var r}(e);if(""===t||null==t)return n.plainObjects?Object.create(null):{};const r="string"==typeof t?function(t,e){const n={__proto__:null},r=(e.ignoreQueryPrefix?t.replace(/^\?/,""):t).split(e.delimiter,Infinity===e.parameterLimit?void 0:e.parameterLimit);let o,i=-1,u=e.charset;if(e.charsetSentinel)for(o=0;o<r.length;++o)0===r[o].indexOf("utf8=")&&("utf8=%E2%9C%93"===r[o]?u="utf-8":"utf8=%26%2310003%3B"===r[o]&&(u="iso-8859-1"),i=o,o=r.length);for(o=0;o<r.length;++o){if(o===i)continue;const t=r[o],f=t.indexOf("]="),c=-1===f?t.indexOf("="):f+1;let l,a;-1===c?(l=e.decoder(t,P.decoder,u,"key"),a=e.strictNullHandling?null:""):(l=e.decoder(t.slice(0,c),P.decoder,u,"key"),a=T(U(t.slice(c+1),e),function(t){return e.decoder(t,P.decoder,u,"value")})),a&&e.interpretNumericEntities&&"iso-8859-1"===u&&(a=F(a)),t.indexOf("[]=")>-1&&(a=C(a)?[a]:a);const s=x.call(n,l);s&&"combine"===e.duplicates?n[l]=E(n[l],a,e.arrayLimit,e.plainObjects):s&&"last"!==e.duplicates||(n[l]=a)}return n}(t,n):t;let o=n.plainObjects?Object.create(null):{};const i=Object.keys(r);for(let e=0;e<i.length;++e){const u=i[e],f=q(u,r[u],n,"string"==typeof t);o=j(o,f,n)}return!0===n.allowSparse?o:function(t){const e=[{obj:{o:t},prop:"o"}],n=[];for(let t=0;t<e.length;++t){const r=e[t],o=r.obj[r.prop],i=Object.keys(o);for(let t=0;t<i.length;++t){const r=i[t],u=o[r];"object"==typeof u&&null!==u&&-1===n.indexOf(u)&&(e.push({obj:o,prop:r}),n.push(u))}}return function(t){for(;t.length>1;){const e=t.pop(),n=e.obj[e.prop];if(y(n)){const t=[];for(let e=0;e<n.length;++e)void 0!==n[e]&&t.push(n[e]);e.obj[e.prop]=t}}}(e),t}(o)}var Z=/*#__PURE__*/function(){function t(t,e,n){var r,o;this.name=t,this.definition=e,this.bindings=null!=(r=e.bindings)?r:{},this.wheres=null!=(o=e.wheres)?o:{},this.config=n}var n=t.prototype;return n.matchesUrl=function(t){var e,n=this;if(!this.definition.methods.includes("GET"))return!1;var r=this.template.replace(/[.*+$()[\]]/g,"\\$&").replace(/(\/?){([^}?]*)(\??)}/g,function(t,e,r,o){var i,u="(?<"+r+">"+((null==(i=n.wheres[r])?void 0:i.replace(/(^\^)|(\$$)/g,""))||"[^/?]+")+")";return o?"("+e+u+")?":""+e+u}).replace(/^\w+:\/\//,""),o=t.replace(/^\w+:\/\//,"").split("?"),i=o[0],u=o[1],f=null!=(e=new RegExp("^"+r+"/?$").exec(i))?e:new RegExp("^"+r+"/?$").exec(decodeURI(i));if(f){for(var c in f.groups)f.groups[c]="string"==typeof f.groups[c]?decodeURIComponent(f.groups[c]):f.groups[c];return{params:f.groups,query:K(u)}}return!1},n.compile=function(t){var e=this;return this.parameterSegments.length?this.template.replace(/{([^}?]+)(\??)}/g,function(n,r,o){var i,u;if(!o&&[null,void 0].includes(t[r]))throw new Error("Ziggy error: '"+r+"' parameter is required for route '"+e.name+"'.");if(e.wheres[r]&&!new RegExp("^"+(o?"("+e.wheres[r]+")?":e.wheres[r])+"$").test(null!=(u=t[r])?u:""))throw new Error("Ziggy error: '"+r+"' parameter '"+t[r]+"' does not match required format '"+e.wheres[r]+"' for route '"+e.name+"'.");return encodeURI(null!=(i=t[r])?i:"").replace(/%7C/g,"|").replace(/%25/g,"%").replace(/\$/g,"%24")}).replace(this.config.absolute?/(\.[^/]+?)(\/\/)/:/(^)(\/\/)/,"$1/").replace(/\/+$/,""):this.template},e(t,[{key:"template",get:function(){var t=(this.origin+"/"+this.definition.uri).replace(/\/+$/,"");return""===t?"/":t}},{key:"origin",get:function(){return this.config.absolute?this.definition.domain?""+this.config.url.match(/^\w+:\/\//)[0]+this.definition.domain+(this.config.port?":"+this.config.port:""):this.config.url:""}},{key:"parameterSegments",get:function(){var t,e;return null!=(t=null==(e=this.template.match(/{[^}?]+\??}/g))?void 0:e.map(function(t){return{name:t.replace(/{|\??}/g,""),required:!/\?}$/.test(t)}}))?t:[]}}])}(),B=/*#__PURE__*/function(t){function r(e,r,o,i){var u;if(void 0===o&&(o=!0),(u=t.call(this)||this).t=null!=i?i:"undefined"!=typeof Ziggy?Ziggy:null==globalThis?void 0:globalThis.Ziggy,!u.t&&"undefined"!=typeof document&&document.getElementById("ziggy-routes-json")&&(globalThis.Ziggy=JSON.parse(document.getElementById("ziggy-routes-json").textContent),u.t=globalThis.Ziggy),u.t=n({},u.t,{absolute:o}),e){if(!u.t.routes[e])throw new Error("Ziggy error: route '"+e+"' is not in the route list.");u.i=new Z(e,u.t.routes[e],u.t),u.u=u.l(r)}return u}var o,u;u=t,(o=r).prototype=Object.create(u.prototype),o.prototype.constructor=o,i(o,u);var f=r.prototype;return f.toString=function(){var t=this,e=Object.keys(this.u).filter(function(e){return!t.i.parameterSegments.some(function(t){return t.name===e})}).filter(function(t){return"_query"!==t}).reduce(function(e,r){var o;return n({},e,((o={})[r]=t.u[r],o))},{});return this.i.compile(this.u)+function(t,e){let n=t;const r=function(t){if(!t)return $;if(void 0!==t.allowEmptyArrays&&"boolean"!=typeof t.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
59if(void 0!==t.encodeDotInKeys&&"boolean"!=typeof t.encodeDotInKeys)throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(null!=t.encoder&&"function"!=typeof t.encoder)throw new TypeError("Encoder has to be a function.");const e=t.charset||$.charset;if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=s;if(void 0!==t.format){if(!R.call(a,t.format))throw new TypeError("Unknown format option provided.");n=t.format}const r=a[n];let o,i=$.filter;if(("function"==typeof t.filter||S(t.filter))&&(i=t.filter),o=t.arrayFormat in k?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":$.arrayFormat,"commaRoundTrip"in t&&"boolean"!=typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");return{addQueryPrefix:"boolean"==typeof t.addQueryPrefix?t.addQueryPrefix:$.addQueryPrefix,allowDots:void 0===t.allowDots?!0===t.encodeDotInKeys||$.allowDots:!!t.allowDots,allowEmptyArrays:"boolean"==typeof t.allowEmptyArrays?!!t.allowEmptyArrays:$.allowEmptyArrays,arrayFormat:o,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:$.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:void 0===t.delimiter?$.delimiter:t.delimiter,encode:"boolean"==typeof t.encode?t.encode:$.encode,encodeDotInKeys:"boolean"==typeof t.encodeDotInKeys?t.encodeDotInKeys:$.encodeDotInKeys,encoder:"function"==typeof t.encoder?t.encoder:$.encoder,encodeValuesOnly:"boolean"==typeof t.encodeValuesOnly?t.encodeValuesOnly:$.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:"function"==typeof t.serializeDate?t.serializeDate:$.serializeDate,skipNulls:"boolean"==typeof t.skipNulls?t.skipNulls:$.skipNulls,sort:"function"==typeof t.sort?t.sort:null,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:$.strictNullHandling}}(e);let o,i;"function"==typeof r.filter?(i=r.filter,n=i("",n)):S(r.filter)&&(i=r.filter,o=i);const u=[];if("object"!=typeof n||null===n)return"";const f=k[r.arrayFormat],c="comma"===f&&r.commaRoundTrip;o||(o=Object.keys(n)),r.sort&&o.sort(r.sort);const l=new WeakMap;for(let t=0;t<o.length;++t){const e=o[t];r.skipNulls&&null===n[e]||A(u,_(n[e],e,f,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,l))}const p=u.join(r.delimiter);let y=!0===r.addQueryPrefix?"?":"";return r.charsetSentinel&&(y+="iso-8859-1"===r.charset?"utf8=%26%2310003%3B&":"utf8=%E2%9C%93&"),p.length>0?y+p:""}(n({},e,this.u._query),{addQueryPrefix:!0,arrayFormat:"indices",encodeValuesOnly:!0,skipNulls:!0,encoder:function(t,e){return"boolean"==typeof t?Number(t):e(t)}})},f.p=function(t){var e=this;t?this.t.absolute&&t.startsWith("/")&&(t=this.v().host+t):t=this.h();var r={},o=Object.entries(this.t.routes).find(function(n){return r=new Z(n[0],n[1],e.t).matchesUrl(t)})||[void 0,void 0];return n({name:o[0]},r,{route:o[1]})},f.h=function(){var t=this.v(),e=t.pathname,n=t.search;return(this.t.absolute?t.host+e:e.replace(this.t.url.replace(/^\w*:\/\/[^/]+/,""),"").replace(/^\/+/,"/"))+n},f.current=function(t,e){var r=this.p(),o=r.name,i=r.params,u=r.query,f=r.route;if(!t)return o;var c=new RegExp("^"+t.replace(/\./g,"\\.").replace(/\*/g,".*")+"$").test(o);if([null,void 0].includes(e)||!c)return c;var l=new Z(o,f,this.t);e=this.l(e,l);var a=n({},i,u);if(Object.values(e).every(function(t){return!t})&&!Object.values(a).some(function(t){return void 0!==t}))return!0;var s=function(t,e){return Object.entries(t).every(function(t){var n=t[0],r=t[1];return Array.isArray(r)&&Array.isArray(e[n])?r.every(function(t){return e[n].includes(t)||e[n].includes(decodeURIComponent(t))}):"object"==typeof r&&"object"==typeof e[n]&&null!==r&&null!==e[n]?s(r,e[n]):e[n]==r||e[n]==decodeURIComponent(r)})};return s(e,a)},f.v=function(){var t,e,n,r,o,i,u="undefined"!=typeof window?window.location:{},f=u.host,c=u.pathname,l=u.search;return{host:null!=(t=null==(e=this.t.location)?void 0:e.host)?t:void 0===f?"":f,pathname:null!=(n=null==(r=this.t.location)?void 0:r.pathname)?n:void 0===c?"":c,search:null!=(o=null==(i=this.t.location)?void 0:i.search)?o:void 0===l?"":l}},f.has=function(t){return this.t.routes.hasOwnProperty(t)},f.l=function(t,e){var r=this;void 0===t&&(t={}),void 0===e&&(e=this.i),null!=t||(t={}),t=["string","number"].includes(typeof t)?[t]:t;var o=e.parameterSegments.filter(function(t){return!r.t.defaults[t.name]});if(Array.isArray(t))t=t.reduce(function(t,e,r){var i,u;return n({},t,o[r]?((i={}
59)[o[r].name]=e,i):"object"==typeof e?e:((u={})[e]="",u))},{});else if(1===o.length&&!t.hasOwnProperty(o[0].name)&&(t.hasOwnProperty(Object.values(e.bindings)[0])||t.hasOwnProperty("id"))){var i;(i={})[o[0].name]=t,t=i}return n({},this.m(e),this.j(t,e))},f.m=function(t){var e=this;return t.parameterSegments.filter(function(t){return e.t.defaults[t.name]}).reduce(function(t,r,o){var i,u=r.name;return n({},t,((i={})[u]=e.t.defaults[u],i))},{})},f.j=function(t,e){var r=e.bindings,o=e.parameterSegments;return Object.entries(t).reduce(function(t,e){var i,u,f=e[0],c=e[1];if(!c||"object"!=typeof c||Array.isArray(c)||!o.some(function(t){return t.name===f}))return n({},t,((u={})[f]=c,u));var l=c.hasOwnProperty(r[f])?r[f]:c.hasOwnProperty("id")?"id":void 0;if(void 0===l)throw new Error("Ziggy error: object passed as '"+f+"' parameter is missing route model binding key '"+r[f]+"'.");return n({},t,((i={})[f]=c[l],i))},{})},f.valueOf=function(){return this.toString()},e(r,[{key:"params",get:function(){var t=this.p();return n({},t.params,t.query)}},{key:"routeParams",get:function(){return this.p().params}},{key:"queryParams",get:function(){return this.p().query}}])}(/*#__PURE__*/f(String));return function(t,e,n,r){var o=new B(t,e,n,r);return t?o.toString():o}});
60</script>
60        <link rel="preload" as="style" href="https://simplestats.io/build/assets/app-BQ4jmCrs.css" /><link rel="preload" as="style" href="https://simplestats.io/build/assets/Header-DAvvkyTS.css" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/app-DLVO1ZW7.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/Show-Cpq0_viK.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/Header-CCOoUp2H.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/Footer-cqdwweYs.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/Gradient-B5UdhvON.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/arrow-left-CoU7GcUF.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/ApplicationLogo-DMZxIaX_.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/_plugin-vue_export-helper-DlAUqK2U.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/ApplicationIcon-fno-VSti.js" /><link rel="modulepreload" as="script" href="https://simplestats.io/build/assets/useLocale-pjq_XKUu.js" /><link rel="stylesheet" href="https://simplestats.io/build/assets/app-BQ4jmCrs.css" data-navigate-track="reload" /><link rel="stylesheet" href="https://simplestats.io/build/assets/Header-DAvvkyTS.css" data-navigate-track="reload" />
60<script type="module" src="https://simplestats.io/build/assets/app-DLVO1ZW7.js" data-navigate-track="reload"></script>
60<script type="module" src="https://simplestats.io/build/assets/Show-Cpq0_viK.js" data-navigate-track="reload"></script>
vendor: 1 bytes, line 60
60
61<script>
62     window.addEventListener('load', () => window.setTimeout(() => {
63        const makeLink = (asset) => {
64            const link = document.createElement('link')
65
66            Object.keys(asset).forEach((attribute) => {
67                link.setAttribute(attribute, asset[attribute])
68            })
69
70            return link
71        }
72
73        const fragment = new DocumentFragment;
74        JSON.parse('[{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-CT_Ru7EA.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ApiTokenManager-ClYDtKFK.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/AppLayout-B0Cmnei1.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ConfirmPassword-DO43lZKA.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/fingerprint-1eGch_PR.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/AuthenticationCardLogo-DiQI79nx.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/AuthenticationCardLogo-B9wT47zl.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StringHelpers-MQ2xUv1P.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/testimonials-D4KPpLvq.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ForgotPassword-DdH9QTEh.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Header-Blg34utB.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Login-DraMXeaf.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Socialstream-lXFniIm5.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ProviderIcon-CTA1lliV.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Register-Cglg3D41.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ResetPassword-B53cSLII.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TwoFactorChallenge-BVVYVT7X.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/VerifyEmail-BxXms3mS.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-vXUw5wXY.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/BlogPostCard-BMpgYFmz.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-BaI0wbog.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ActionTable-DeTykuyk.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/InfoTooltip-CPi1ys-b.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/useUsage-DWpGMEUS.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CampaignKpiHelpers-B4uyZFIS.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CampaignMetricInfo-_BHIzmtH.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ScopeSelector-CtZMZycD.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ProjectFavicon-BlJGoRrW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/dot-D16rYBBD.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/WarningBox-CaAKCMtN.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/info-circle-Bed_7EX6.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TooltipHelpers-BfXJe2AN.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/AdSpendModal-lOcaXlSc.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CampaignFilter-DxswfoQ3.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CampaignKpiBar-DeitRRaB.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CampaignModal-DbWdpDXE.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Show-u8uGlEmN.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-_eH4rMcE.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/format-BmN4b9Vs.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/isAfter-DYZ7c36c.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/arrow-repeat-CX5wMpqZ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/useChartDefinitions-lhPRWiZ_.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/vue3-apexcharts-DUfcJClU.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/arrow-up-right-D88nV_eM.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsIcon-Cklvk4b7.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/country-flag-emoji.umd-CGPnCJ97.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/x-circle-BRPEQCO4.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-BmhU-YmB.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Metric-C6JovDtL.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsChartCanvas-BGr2UOi6.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsChartCanvas-PsEfZ9wV.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsSmallChart-C7m9bJKJ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsSmallChartGrid-BK-FndMO.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CohortPicker-lra85Tx0.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CohortPicker-DQ2xE913.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CohortRetentionTable-DoCWypil.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CustomPresetModal-BaKV5GWd.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CustomRangePicker-DXviVe1D.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/EngagementCharts-DsVZ_0OZ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/FreePlanWarning-Q8o2nqsZ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/HeadlineKpiTile-D3Rq_8Hw.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/MetricPlanBreakdown-0oA3SZPg.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/MrrMovementsChart-BzwqeC3k.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ReadDocsWarning-BUsaUHMu.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/RetentionCurveChart-BZPzC8FU.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsCharts-COJ-kiGQ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsFilter-A0oifHVD.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsCustomPropertyGroup-BPYy5XH5.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsGroup-RR_gb_Mr.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsGroupTable-BalpFHpj.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StatsGroups-C66
74F_PtO.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SubscriptionPlanAlarm-CgmrGzZh.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-CjOp-DXE.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CreateDataImportForm-DXGTM3zJ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ShowDataImportRow-BEO3CPYF.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Faq-Dv_-2rFi.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/LandingPage-IhUC6mwE.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/arrow-right-DuzyYK2r.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/check-circle-fill-D-oLbxJh.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Banners-D1LPFTAV.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/BlogPosts-CI-ZUODl.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Bottom-5V-lkRa2.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Brands-BphZZDv7.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Comparison-rU4C9wmw.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Features-nXlmtYqQ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Hero-BqvcX6Mb.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Hero-DtLBT25i.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Integration-Dg59raZq.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/BigStepBullet-CKwFcjTX.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/BigStepText-Ca-410Em.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/GridPlaceholder-Cav2fFr_.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SmallStepBullet-nC-n22BH.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SmallStepText-BNvOAK_3.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/StepText-DxHbyHpJ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Presentation-CfHPOPQf.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Presentation-BLayQpH-.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Pricing-
74DO-nBsNu.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SectionHeader-ILU7iHVR.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SelfHosted-B8xncWx7.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Testimonials-Bppx5Bee.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Welcome-D2cz2ttx.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Imprint-BAy9bfjH.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-w6oymAXS.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-Bv0hwyB8.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/PrivacyPolicy-iS9I3D8x.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/AppearanceSettingsForm-BwtbH0jF.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/display-CEKe0LfN.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ConnectedAccountsForm-CaqjVfow.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/PasskeyConfirmButton-CFCwj6fw.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/DeleteUserForm-DiSpFN3t.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/LogoutOtherBrowserSessionsForm-5d5VbtWk.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/PasskeysForm-Ddy4hat6.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ConfirmsPassword-B7VOtvtd.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SetPasswordForm-CYYDhTvD.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TwoFactorAuthenticationForm-sK9WGKwv.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/UpdatePasswordForm-VRa0UCZ-.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/UpdateProfileInformationForm-C8WCwBMN.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Show-DFhmgTbn.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-DXaIeNAh.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/FlagsField-C35fh8wH.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/CreateProjectForm-M8rfHk6P.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/DeleteProjectForm-DJY8kfzg.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/UpdateProjectForm-Cs7F-fA5.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Show-Gy8W_YT9.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/clipboard-DezwtkDk.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Index-CCGTzRb_.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Installation-D0h-nVEW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/FullscreenCard-gbhtma1c.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022style\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/FullscreenCard-DrQMjMNh.css\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Project-CnRDplpH.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Team-2S9gEULW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/DeleteTeamForm-DSwFE-QE.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TeamEventUsage-DUP1RyDJ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TeamMemberManager-DHdNHjJK.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/UpdateTeamAiSettingsForm-M6n4oOhl.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/UpdateTeamNameForm-DyA2yRi2.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Show-CMqVDclM.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TermsOfService-CnMF-onC.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/de-BxNbiAr_.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/en-y_zB8N87.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/es-DJYS5N7m.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/fr-CVKwKfU7.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/it-Clp64TUj.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/nl-Dox1Xn7w.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/index-CuQfO8Qx.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ActionMessage-DhICG7a3.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ActionSection-CKrR80K3.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SectionTitle-Ck_-AcLR.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Checkbox-CA4dVLQ8.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ConfirmationModal-Do1C9Cov.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Modal-OlAJDJbv.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/exclamation-triangle-Cmrb2NSi.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/DangerButton-y_Bu0VgM.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/DialogModal-wxNwyPZs.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/FormSection-DDKsfYqb.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/InputError-CwfYutKL.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/InputLabel-CJnlfqWU.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/PrimaryButton-CSF-wAFW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SecondaryButton-D0rOEO-k.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SectionBorder-CMeNITRW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TextInput-B143xEbU.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Banner-CIXvZ3mq.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/check-circle-haP4YCd-.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/x-lg-CRE3r70l.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/NumberHelpers-BClf9MwZ.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/people-CKsO-4-V.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/eye-fill-UVb03g_x.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/ProfileDropdown-CSLi4jA4.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/Dropdown-DYgT3Izq.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/chevron-down-1-r_O6Bg.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/gear-B1h2v8sF.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022
74:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/lightbulb-CNPxwNwW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/question-circle-r_noteVi.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/SelectInput-CMBGBXWB.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/chevron-expand-B1bsqysm.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/use-text-value-CNhLEtXk.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/wallet2-BlMqbv5k.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/useAiChat-DaHFslv5.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/stars-eFhXlcoC.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/plus-lg-DUJq-pDW.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022},{\u0022rel\u0022:\u0022prefetch\u0022,\u0022as\u0022:\u0022script\u0022,\u0022href\u0022:\u0022https:\\\/\\\/simplestats.io\\\/build\\\/assets\\\/TeamDropdown-C4ClEqQU.js\u0022,\u0022fetchpriority\u0022:\u0022low\u0022}]').forEach((asset) => fragment.append(makeLink(asset)))
75        document.head.append(fragment)
76     }))
77</script>
77            <meta property="og:image" content="https://simplestats.io/og-image/2cef490b2c3a0d381768d37e6b8e27fa.jpeg">
78<meta name="twitter:image" content="https://simplestats.io/og-image/2cef490b2c3a0d381768d37e6b8e27fa.jpeg">
79<meta name="twitter:card" content="summary_large_image">
80</head>
81    <body class="font-sans min-h-screen bg-white dark:bg-dark-900 font-normal text-gray-950 dark:text-white antialiased">
82        
83        <div id="app" data-page="{&quot;component&quot;:&quot;Blog\/Show&quot;,&quot;props&quot;:{&quot;errors&quot;:{},&quot;socialstream&quot;:{&quot;show&quot;:true,&quot;prompt&quot;:&quot;Or&quot;,&quot;providers&quot;:[{&quot;id&quot;:&quot;google&quot;,&quot;name&quot;:&quot;Google&quot;,&quot;buttonLabel&quot;:&quot;Google&quot;},{&quot;id&quot;:&quot;github&quot;,&quot;name&quot;:&quot;GitHub&quot;,&quot;buttonLabel&quot;:&quot;GitHub&quot;}],&quot;hasPassword&quot;:false,&quot;connectedAccounts&quot;:[]},&quot;jetstream&quot;:{&quot;canCreateTeams&quot;:false,&quot;canManageTwoFactorAuthentication&quot;:false,&quot;canUpdatePassword&quot;:true,&quot;canUpdateProfileInformation&quot;:true,&quot;hasEmailVerification&quot;:true,&quot;flash&quot;:[],&quot;hasAccountDeletionFeatures&quot;:true,&quot;hasApiFeatures&quot;:false,&quot;hasTeamFeatures&quot;:true,&quot;hasTermsAndPrivacyPolicyFeature&quot;:true,&quot;managesProfilePhotos&quot;:true},&quot;auth&quot;:{&quot;user&quot;:null},&quot;errorBags&quot;:[],&quot;canLogin&quot;:true,&quot;canRegister&quot;:true,&quot;branding&quot;:{&quot;app_mark&quot;:null,&quot;app_logo&quot;:null,&quot;app_logo_mail&quot;:&quot;\/images\/logo.png&quot;,&quot;app_background&quot;:&quot;\/images\/side_bg.jpg&quot;},&quot;locale&quot;:&quot;en&quot;,&quot;ziggy&quot;:{&quot;url&quot;:&quot;https:\/\/simplestats.io&quot;,&quot;port&quot;:null,&quot;defaults&quot;:[],&quot;routes&quot;:{&quot;filament.exports.download&quot;:{&quot;uri&quot;:&quot;filament\/exports\/{export}\/download&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;export&quot;],&quot;bindings&quot;:{&quot;export&quot;:&quot;id&quot;}},&quot;filament.imports.failed-rows.download&quot;:{&quot;uri&quot;:&quot;filament\/imports\/{import}\/failed-rows\/download&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;import&quot;],&quot;bindings&quot;:{&quot;import&quot;:&quot;id&quot;}},&quot;filament.admin.auth.login&quot;:{&quot;uri&quot;:&quot;admin\/login&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;filament.admin.auth.logout&quot;:{&quot;uri&quot;:&quot;admin\/logout&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;filament.admin.pages.dashboard&quot;:{&quot;uri&quot;:&quot;admin&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;filament.admin.pages.announcements&quot;:{&quot;uri&quot;:&quot;admin\/announcements&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;filament.admin.pages.track-revenue&quot;:{&quot;uri&quot;:&quot;admin\/track-revenue&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;filament.admin.resources.users.index&quot;:{&quot;uri&quot;:&quot;admin\/users&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;filament.admin.resources.users.edit&quot;:{&quot;uri&quot;:&quot;admin\/users\/{record}\/edit&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;record&quot;]},&quot;md-blog.image&quot;:{&quot;uri&quot;:&quot;md-blog\/images\/{path}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;path&quot;:&quot;.*&quot;},&quot;parameters&quot;:[&quot;path&quot;]},&quot;oauth.callback.prompt&quot;:{&quot;uri&quot;:&quot;oauth\/{provider}\/callback\/prompt&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;provider&quot;]},&quot;oauth.callback.confirm&quot;:{&quot;uri&quot;:&quot;oauth\/{provider}\/callback\/confirm&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;provider&quot;]},&quot;oauth.redirect&quot;:{&quot;uri&quot;:&quot;oauth\/{provider}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;provider&quot;]},&quot;oauth.callback&quot;:{&quot;uri&quot;:&quot;oauth\/{provider}\/callback&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;POST&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;provider&quot;]},&quot;connected-accounts.destroy&quot;:{&quot;uri&quot;:&quot;user\/connected-account\/{id}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;id&quot;]},&quot;user-password.set&quot;:{&quot;uri&quot;:&quot;user\/set-password&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;user-profile-photo.set&quot;:{&quot;uri&quot;:&quot;user\/profile-photo&quot;,&quot;methods&quot;:[&quot;PUT&quot;]},&quot;login&quot;:{&quot;uri&quot;:&quot;login&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;login.store&quot;:{&quot;uri&quot;:&quot;login&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;logout&quot;:{&quot;uri&quot;:&quot;logout&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;password.request&quot;:{&quot;uri&quot;:&quot;forgot-password&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;password.reset&quot;:{&quot;uri&quot;:&quot;reset-password\/{token}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;token&quot;]},&quot;password.email&quot;:{&quot;uri&quot;:&quot;forgot-password&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;password.update&quot;:{&quot;uri&quot;:&quot;reset-password&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;register&quot;:{&quot;uri&quot;:&quot;register&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;register.store&quot;:{&quot;uri&quot;:&quot;register&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;verification.notice&quot;:{&quot;uri&quot;:&quot;email\/verify&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;verification.verify&quot;:{&quot;uri&quot;:&quot;email\/verify\/{id}\/{hash}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;id&quot;,&quot;hash&quot;]},&quot;verification.send&quot;:{&quot;uri&quot;:&quot;email\/verification-notification&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;user-profile-information.update&quot;:{&quot;uri&quot;:&quot;user\/profile-information&quot;,&quot;methods&quot;:[&quot;PUT&quot;]},&quot;user-password.update&quot;:{&quot;uri&quot;:&quot;user\/password&quot;,&quot;methods&quot;:[&quot;PUT&quot;]},&quot;password.confirm&quot;:{&quot;uri&quot;:&quot;user\/confirm-password&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;password.confirmation&quot;:{&quot;uri&quot;:&quot;user\/confirmed-password-status&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;password.confirm.store&quot;:{&quot;uri&quot;:&quot;user\/confirm-password&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passkey.login-options&quot;:{&quot;uri&quot;:&quot;passkeys\/login\/options&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;passkey.login&quot;:{&quot;uri&quot;:&quot;passkeys\/login&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passkey.confirm-options&quot;:{&quot;uri&quot;:&quot;passkeys\/confirm\/options&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;passkey.confirm&quot;:{&quot;uri&quot;:&quot;passkeys\/confirm&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passkey.registration-options&quot;:{&quot;uri&quot;:&quot;user\/passkeys\/options&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;passkey.store&quot;:{&quot;uri&quot;:&quot;user\/passkeys&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;passkey.destroy&quot;:{&quot;uri&quot;:&quot;user\/passkeys\/{passkey}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;passkey&quot;],&quot;bindings&quot;:{&quot;passkey&quot;:&quot;id&quot;}},&quot;terms.show&quot;:{&quot;uri&quot;:&quot;terms-of-service&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;policy.show&quot;:{&quot;uri&quot;:&quot;privacy-policy&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;profile.show&quot;:{&quot;uri&quot;:&quot;user\/profile&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;other-browser-sessions.destroy&quot;:{&quot;uri&quot;:&quot;user\/other-browser-sessions&quot;,&quot;methods&quot;:[&quot;DELETE&quot;]},&quot;current-user-photo.destroy&quot;:{&quot;uri&quot;:&quot;user\/profile-photo&quot;,&quot;methods&quot;:[&quot;DELETE&quot;]},&quot;current-user.destroy&quot;:{&quot;uri&quot;:&quot;user&quot;,&quot;methods&quot;:[&quot;DELETE&quot;]},&quot;teams.create&quot;:{&quot;uri&quot;:&quot;teams\/create&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;teams.store&quot;:{&quot;uri&quot;:&quot;teams&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;teams.show&quot;:{&quot;uri&quot;:&quot;teams\/{team}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;}},&quot;teams.update&quot;:{&quot;uri&quot;:&quot;teams\/{team}&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;}},&quot;teams.destroy&quot;:{&quot;uri&quot;:&quot;teams\/{team}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;}},&quot;current-team.update&quot;:{&quot;uri&quot;:&quot;current-team&quot;,&quot;methods&quot;:[&quot;PUT&quot;]},&quot;team-members.store&quot;:{&quot;uri&quot;:&quot;teams\/{team}\/members&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;}},&quot;team-members.update&quot;:{&quot;uri&quot;:&quot;teams\/{team}\/members\/{user}&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;parameters&quot;:[&quot;team&quot;,&quot;user&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;,&quot;user&quot;:&quot;uuid&quot;}},&quot;team-members.destroy&quot;:{&quot;uri&quot;:&quot;teams\/{team}\/members\/{user}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;team&quot;,&quot;user&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;,&quot;user&quot;:&quot;uuid&quot;}},&quot;team-invitations.accept&quot;:{&quot;uri&quot;:&quot;team-invitations\/{invitation}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;invitation&quot;]},&quot;team-invitations.destroy&quot;:{&quot;uri&quot;:&quot;team-invitations\/{invitation}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;invitation&quot;]},&quot;mcp.web&quot;:{&quot;uri&quot;:&quot;mcp&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;spark.invoices.download&quot;:{&quot;uri&quot;:&quot;spark\/{type}\/{id}\/invoices\/{transaction}\/download&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;type&quot;,&quot;id&quot;,&quot;transaction&quot;]},&quot;spark.portal&quot;:{&quot;uri&quot;:&quot;billing\/{type?}\/{id?}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;type&quot;,&quot;id&quot;]},&quot;default-livewire.update&quot;:{&quot;uri&quot;:&quot;livewire-aa01f43e\/update&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;livewire.upload-file&quot;:{&quot;uri&quot;:&quot;livewire-aa01f43e\/upload-file&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;livewire.preview-file&quot;:{&quot;uri&quot;:&quot;livewire-aa01f43e\/preview-file\/{filename}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;filename&quot;]},&quot;og-image.serve&quot;:{&quot;uri&quot;:&quot;og-image\/{filename}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;wheres&quot;:{&quot;filename&quot;:&quot;[a-f0-9]+\\.(png|jpeg|jpg|webp)&quot;},&quot;parameters&quot;:[&quot;filename&quot;]},&quot;stats-custom-event.store&quot;:{&quot;uri&quot;:&quot;api\/v1\/stats-custom-event&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;stats-custom-properties.store&quot;:{&quot;uri&quot;:&quot;api\/v1\/stats-custom-properties&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;home&quot;:{&quot;uri&quot;:&quot;\/&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;imprint&quot;:{&quot;uri&quot;:&quot;imprint&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;blog.index&quot;:{&quot;uri&quot;:&quot;blog&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;blog.show&quot;:{&quot;uri&quot;:&quot;blog\/{slug}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;slug&quot;]},&quot;timezones.index&quot;:{&quot;uri&quot;:&quot;timezones&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;tracking.get-started-click&quot;:{&quot;uri&quot;:&quot;tracking\/get-started-click&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;setup.team.index&quot;:{&quot;uri&quot;:&quot;setup\/team&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;setup.team.store&quot;:{&quot;uri&quot;:&quot;setup\/team&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;setup.project.index&quot;:{&quot;uri&quot;:&quot;setup\/project&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;setup.project.store&quot;:{&quot;uri&quot;:&quot;setup\/project&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;setup.installation.index&quot;:{&quot;uri&quot;:&quot;setup\/installation&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;teams.ai-settings.update&quot;:{&quot;uri&quot;:&quot;teams\/{team}\/ai-settings&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;parameters&quot;:[&quot;team&quot;],&quot;bindings&quot;:{&quot;team&quot;:&quot;uuid&quot;}},&quot;dashboard&quot;:{&quot;uri&quot;:&quot;dashboard&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;dashboard.metric&quot;:{&quot;uri&quot;:&quot;dashboard\/metric\/{kpi}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;kpi&quot;]},&quot;revenue&quot;:{&quot;uri&quot;:&quot;revenue&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;retention&quot;:{&quot;uri&quot;:&quot;retention&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;power-users&quot;:{&quot;uri&quot;:&quot;power-users&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;campaigns&quot;:{&quot;uri&quot;:&quot;campaigns&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;campaigns.store&quot;:{&quot;uri&quot;:&quot;campaigns&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;campaigns.show&quot;:{&quot;uri&quot;:&quot;campaigns\/{campaign}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;campaign&quot;],&quot;bindings&quot;:{&quot;campaign&quot;:&quot;uuid&quot;}},&quot;campaigns.update&quot;:{&quot;uri&quot;:&quot;campaigns\/{campaign}&quot;,&quot;methods&quot;:[&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;campaign&quot;],&quot;bindings&quot;:{&quot;campaign&quot;:&quot;uuid&quot;}},&quot;campaigns.track-campaigns.link&quot;:{&quot;uri&quot;:&quot;campaigns\/{campaign}\/track-campaigns&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;campaign&quot;],&quot;bindings&quot;:{&quot;campaign&quot;:&quot;uuid&quot;}},&quot;campaigns.track-campaigns.unlink&quot;:{&quot;uri&quot;:&quot;campaigns\/{campaign}\/track-campaigns\/{trackCampaign}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;campaign&quot;,&quot;trackCampaign&quot;],&quot;bindings&quot;:{&quot;campaign&quot;:&quot;uuid&quot;,&quot;trackCampaign&quot;:&quot;uuid&quot;}},&quot;ad-spends.store&quot;:{&quot;uri&quot;:&quot;ad-spends&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;ad-spends.update&quot;:{&quot;uri&quot;:&quot;ad-spends\/{ad_spend}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;ad_spend
83&quot;]},&quot;ad-spends.destroy&quot;:{&quot;uri&quot;:&quot;ad-spends\/{ad_spend}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;ad_spend&quot;]},&quot;stats.grouped&quot;:{&quot;uri&quot;:&quot;stats\/grouped&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;ai.chat.store&quot;:{&quot;uri&quot;:&quot;ai\/chat&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;ai.conversations.index&quot;:{&quot;uri&quot;:&quot;ai\/conversations&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;ai.conversations.show&quot;:{&quot;uri&quot;:&quot;ai\/conversations\/{conversation}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;conversation&quot;],&quot;bindings&quot;:{&quot;conversation&quot;:&quot;id&quot;}},&quot;stats.hide-free-plan-warning&quot;:{&quot;uri&quot;:&quot;stats\/hide-free-plan-warning&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;stats.hide-read-docs-warning&quot;:{&quot;uri&quot;:&quot;stats\/hide-read-docs-warning&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;custom-presets.index&quot;:{&quot;uri&quot;:&quot;custom-presets&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;custom-presets.store&quot;:{&quot;uri&quot;:&quot;custom-presets&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;custom-presets.update&quot;:{&quot;uri&quot;:&quot;custom-presets\/{custom_preset}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;custom_preset&quot;]},&quot;custom-presets.destroy&quot;:{&quot;uri&quot;:&quot;custom-presets\/{custom_preset}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;custom_preset&quot;]},&quot;custom-presets.builtin-visibility&quot;:{&quot;uri&quot;:&quot;custom-presets\/builtin-visibility&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;data-import.index&quot;:{&quot;uri&quot;:&quot;data-import&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;data-import.store&quot;:{&quot;uri&quot;:&quot;data-import&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;data-import.cancel&quot;:{&quot;uri&quot;:&quot;data-import\/{data_import}\/cancel&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;data_import&quot;]},&quot;data-import.rollback&quot;:{&quot;uri&quot;:&quot;data-import\/{data_import}\/rollback&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;data_import&quot;]},&quot;projects.index&quot;:{&quot;uri&quot;:&quot;projects&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;projects.store&quot;:{&quot;uri&quot;:&quot;projects&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;projects.show&quot;:{&quot;uri&quot;:&quot;projects\/{project}&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.update&quot;:{&quot;uri&quot;:&quot;projects\/{project}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.destroy&quot;:{&quot;uri&quot;:&quot;projects\/{project}&quot;,&quot;methods&quot;:[&quot;DELETE&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.token-view&quot;:{&quot;uri&quot;:&quot;projects\/{project}\/token-view&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.token-regenerate&quot;:{&quot;uri&quot;:&quot;projects\/{project}\/token-regenerate&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;projects.user-link-url.update&quot;:{&quot;uri&quot;:&quot;projects\/{project}\/user-link-url&quot;,&quot;methods&quot;:[&quot;PUT&quot;],&quot;parameters&quot;:[&quot;project&quot;],&quot;bindings&quot;:{&quot;project&quot;:&quot;uuid&quot;}},&quot;user-settings.set-dashboard-preset&quot;:{&quot;uri&quot;:&quot;user-settings\/dashboard-preset&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;user-settings.complete-tour&quot;:{&quot;uri&quot;:&quot;user-settings\/complete-tour&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;user-settings.property-lifetime&quot;:{&quot;uri&quot;:&quot;user-settings\/property-lifetime&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;user-settings.login-summary&quot;:{&quot;uri&quot;:&quot;user-settings\/login-summary&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;login-summary&quot;:{&quot;uri&quot;:&quot;login-summary&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;feedback.store&quot;:{&quot;uri&quot;:&quot;feedback&quot;,&quot;methods&quot;:[&quot;POST&quot;]},&quot;notifications.index&quot;:{&quot;uri&quot;:&quot;user\/notifications&quot;,&quot;methods&quot;:[&quot;GET&quot;,&quot;HEAD&quot;]},&quot;notifications.update&quot;:{&quot;uri&quot;:&quot;user\/notifications\/{notification}&quot;,&quot;methods&quot;:[&quot;PUT&quot;,&quot;PATCH&quot;],&quot;parameters&quot;:[&quot;notification&quot;],&quot;bindings&quot;:{&quot;notification&quot;:&quot;uuid&quot;}},&quot;notifications.trigger&quot;:{&quot;uri&quot;:&quot;user\/notifications\/{notification}\/trigger&quot;,&quot;methods&quot;:[&quot;POST&quot;],&quot;parameters&quot;:[&quot;notification&quot;],&quot;bindings&quot;:{&quot;notification&quot;:&quot;uuid&quot;}}}},&quot;translations&quot;:{&quot;Revenue attribution analytics tool for Laravel apps&quot;:&quot;Revenue attribution analytics tool for Laravel apps&quot;,&quot;Discover which channels actually drive revenue, not just traffic. Server-side analytics built for Laravel apps. GDPR compliant, 100% accurate, ad-blocker proof.&quot;:&quot;Discover which channels actually drive revenue, not just traffic. Server-side analytics built for Laravel apps. GDPR compliant, 100% accurate, ad-blocker proof.&quot;,&quot;Features&quot;:&quot;Features&quot;,&quot;Pricing&quot;:&quot;Pricing&quot;,&quot;Self-Hosted&quot;:&quot;Self-Hosted&quot;,&quot;Docs&quot;:&quot;Docs&quot;,&quot;Dashboard&quot;:&quot;Dashboard&quot;,&quot;Sign in&quot;:&quot;Sign in&quot;,&quot;Passkey&quot;:&quot;Passkey&quot;,&quot;Get started&quot;:&quot;Get started&quot;,&quot;Analytics for :laravel&quot;:&quot;Analytics for :laravel&quot;,&quot;Loved by the Laravel community&quot;:&quot;Loved by the Laravel community&quot;,&quot;Track visitors, registrations, and payments. Discover which channels actually drive revenue, not just traffic. Server-side, GDPR compliant, 100% accurate.&quot;:&quot;Track visitors, registrations, and payments. Discover which channels actually drive revenue, not just traffic. Server-side, GDPR compliant, 100% accurate.&quot;,&quot;From :visitor to :revenue.&quot;:&quot;From :visitor to :revenue.&quot;,&quot;visitor&quot;:&quot;visitor&quot;,&quot;revenue&quot;:&quot;revenue&quot;,&quot;See the full picture: every visit, signup and payment, attributed to the channel that drove it. Server-side and ad-blocker proof, built for Laravel.&quot;:&quot;See the full picture: every visit, signup and payment, attributed to the channel that drove it. Server-side and ad-blocker proof, built for Laravel.&quot;,&quot;Know which channels :break drive your :revenue.&quot;:&quot;Know which channels :break drive your :revenue.&quot;,&quot;SimpleStats tracks the full funnel, from first visit to payment, and ties every result back to the channel that caused it. Server-side, GDPR compliant, ad-blocker proof.&quot;:&quot;SimpleStats tracks the full funnel, from first visit to payment, and ties every result back to the channel that caused it. Server-side, GDPR compliant, ad-blocker proof.&quot;,&quot;Get started for free&quot;:&quot;Get started for free&quot;,&quot;Live demo&quot;:&quot;Live demo&quot;,&quot;What makes us&quot;:&quot;What makes us&quot;,&quot;unique&quot;:&quot;unique&quot;,&quot;Different&quot;:&quot;Different&quot;,&quot;Traditional client-side analytic tools are only about 70% accurate because of ad blockers and they often only show you data like visits and views. That&#039;s where server-side analytics like SimpleStats shines; it gives you superpowers without the integration hustle!&quot;:&quot;Traditional client-side analytic tools are only about 70% accurate because of ad blockers and they often only show you data like visits and views. That&#039;s where server-side analytics like SimpleStats shines; it gives you superpowers without the integration hustle!&quot;,&quot;Simple&quot;:&quot;Simple&quot;,&quot;Install the Composer package, add your token to the .env file, and you&#039;re ready to analyze your campaigns and users.&quot;:&quot;Install the Composer package, add your token to the .env file, and you&#039;re ready to analyze your campaigns and users.&quot;,&quot;Reporting&quot;:&quot;Reporting&quot;,&quot;The tool provides you with a powerful reporting system that allows you to create custom reports, filter them by location, device, and UTM parameters. The frequency of the reports can be saved and scheduled individually, so you never miss important updates!&quot;:&quot;The tool provides you with a powerful reporting system that allows you to create custom reports, filter them by location, device, and UTM parameters. The frequency of the reports can be saved and scheduled individually, so you never miss important updates!&quot;,&quot;API&quot;:&quot;API&quot;,&quot;The REST API works with any stack, not just Laravel. Trigger the requests manually and track any custom project.&quot;:&quot;The REST API works with any stack, not just Laravel. Trigger the requests manually and track any custom project.&quot;,&quot;UTMs and Referrers&quot;:&quot;UTMs and Referrers&quot;,&quot;UTMs and Referrers are collected automatically and linked to your users and payments, so you see the real ROI and best-performing channel of every campaign.&quot;:&quot;UTMs and Referrers are collected automatically and linked to your users and payments, so you see the real ROI and best-performing channel of every campaign.&quot;,&quot;KPIs&quot;:&quot;KPIs&quot;,&quot;Unique Visitors, Conversion Rate, Daily Active Users, ARPU, Revenue and many more KPIs out of the box, all filterable by date, location, device and UTM.&quot;:&quot;Unique Visitors, Conversion Rate, Daily Active Users, ARPU, Revenue and many more KPIs out of the box, all filterable by date, location, device and UTM.&quot;,&quot;Privacy&quot;:&quot;Privacy&quot;,&quot;We are fully committed to GDPR compliance! No cookies are required or stored, ensuring your data remains confidential. You can rely on SimpleStats to respect your privacy and guarantee that your data will never be shared.&quot;:&quot;We are fully committed to GDPR compliance! No cookies are required or stored, ensuring your data remains confidential. You can rely on SimpleStats to respect your privacy and guarantee that your data will never be shared.&quot;,&quot;Collaborate&quot;:&quot;Collaborate&quot;,&quot;
83Create a team, invite co-workers to your projects, and assign permissions. Each team is fully separated by tenancy.&quot;:&quot;Create a team, invite co-workers to your projects, and assign permissions. Each team is fully separated by tenancy.&quot;,&quot;Free&quot;:&quot;Free&quot;,&quot;There will always be a free plan, with no credit card required to sign up. Subscribe to support us as your business grows.&quot;:&quot;There will always be a free plan, with no credit card required to sign up. Subscribe to support us as your business grows.&quot;,&quot;AI Assistant&quot;:&quot;AI Assistant&quot;,&quot;AI analytics assistant&quot;:&quot;AI analytics assistant&quot;,&quot;Ask AI&quot;:&quot;Ask AI&quot;,&quot;Chat &amp; MCP&quot;:&quot;Chat &amp; MCP&quot;,&quot;Ask questions about your stats in plain language and get answers backed by your real numbers. Chat right in your dashboard, or connect Claude, Cursor and other AI tools to your data via the built-in MCP server.&quot;:&quot;Ask questions about your stats in plain language and get answers backed by your real numbers. Chat right in your dashboard, or connect Claude, Cursor and other AI tools to your data via the built-in MCP server.&quot;,&quot;Subscribe at your&quot;:&quot;Subscribe at your&quot;,&quot;scale&quot;:&quot;scale&quot;,&quot;monthly&quot;:&quot;monthly&quot;,&quot;yearly&quot;:&quot;yearly&quot;,&quot;month&quot;:&quot;month&quot;,&quot;year&quot;:&quot;year&quot;,&quot;monthly events&quot;:&quot;monthly events&quot;,&quot;Monthly events&quot;:&quot;Monthly events&quot;,&quot;Recommended&quot;:&quot;Recommended&quot;,&quot;free&quot;:&quot;free&quot;,&quot;No credit card required&quot;:&quot;No credit card required&quot;,&quot;All prices are net prices. Local taxes and VAT may be added in the checkout. You can remove VAT by adding your VAT id.&quot;:&quot;All prices are net prices. Local taxes and VAT may be added in the checkout. You can remove VAT by adding your VAT id.&quot;,&quot;If these plans do not fit your needs, feel free to&quot;:&quot;If these plans do not fit your needs, feel free to&quot;,&quot;contact sales&quot;:&quot;contact sales&quot;,&quot;Wonder what an&quot;:&quot;Wonder what an&quot;,&quot;event&quot;:&quot;event&quot;,&quot;is?&quot;:&quot;is?&quot;,&quot;Powerful analytics&quot;:&quot;Powerful analytics&quot;,&quot;in no time&quot;:&quot;in no time&quot;,&quot;Install&quot;:&quot;Install&quot;,&quot;Install the client&quot;:&quot;Install the client&quot;,&quot;Track&quot;:&quot;Track&quot;,&quot;Track your users&quot;:&quot;Track your users&quot;,&quot;Example of the TrackablePerson contract&quot;:&quot;Example of the TrackablePerson contract&quot;,&quot;Track your sales&quot;:&quot;Track your sales&quot;,&quot;Example of the TrackablePayment contract&quot;:&quot;Example of the TrackablePayment contract&quot;,&quot;Analyze&quot;:&quot;Analyze&quot;,&quot;Make sure to check out the&quot;:&quot;Make sure to check out the&quot;,&quot;documentation&quot;:&quot;documentation&quot;,&quot;for more details.&quot;:&quot;for more details.&quot;,&quot;Take full control with&quot;:&quot;Take full control with&quot;,&quot;Single domain&quot;:&quot;Single domain&quot;,&quot;For one domain or subdomain. Powerful analytics with package and API. One year of updates, no subscription.&quot;:&quot;For one domain or subdomain. Powerful analytics with package and API. One year of updates, no subscription.&quot;,&quot;One domain or subdomain&quot;:&quot;One domain or subdomain&quot;,&quot;Package and API included&quot;:&quot;Package and API included&quot;,&quot;Robust analytics features&quot;:&quot;Robust analytics features&quot;,&quot;Great for running SimpleStats standalone&quot;:&quot;Great for running SimpleStats standalone&quot;,&quot;1 year of free updates, no subscription&quot;:&quot;1 year of free updates, no subscription&quot;,&quot;Unlimited domains&quot;:&quot;Unlimited domains&quot;,&quot;No domain limits. Integrate into products. Full analytics suite. One year of updates, no subscription.&quot;:&quot;No domain limits. Integrate into products. Full analytics suite. One year of updates, no subscription.&quot;,&quot;No domain restrictions&quot;:&quot;No domain restrictions&quot;,&quot;May be integrated into products&quot;:&quot;May be integrated into products&quot;,&quot;Contact Sales&quot;:&quot;Contact Sales&quot;,&quot;Book a call&quot;:&quot;Book a call&quot;,&quot;today and take full control!&quot;:&quot;today and take full control!&quot;,&quot;Start&quot;:&quot;Start&quot;,&quot;Frequently asked&quot;:&quot;Frequently asked&quot;,&quot;questions&quot;:&quot;questions&quot;,&quot;Why is tracking not working even though everything is set up correctly?&quot;:&quot;Why is tracking not working even though everything is set up correctly?&quot;,&quot;Most often, this is a queue-related issue. Ensure you have cleared your config cache and restarted your queue after adding the API token to your .env file.&quot;:&quot;Most often, this is a queue-related issue. Ensure you have cleared your config cache and restarted your queue after adding the API token to your .env file.&quot;,&quot;What is an event?&quot;:&quot;What is an event?&quot;,&quot;An event is any tracked activity - such as a unique visitor, registration, login, or payment. Each of these counts as one event towards your monthly usage.&quot;:&quot;An event is any tracked activity - such as a unique visitor, registration, login, or payment. Each of these counts as one event towards your monthly usage.&quot;,&quot;How are unique visitors tracked?&quot;:&quot;How are unique visitors tracked?&quot;,&quot;We track unique visitors in a GDPR-compliant way by generating a unique visitor hash each time a new visitor accesses your site. This hash is derived from a combination of the visitor&#039;s User-Agent, IP address, and a daily salt. This method enables unique visitor tracking without storing personally identifiable information such as cookies, ensuring privacy and data protection.&quot;:&quot;We track unique visitors in a GDPR-compliant way by generating a unique visitor hash each time a new visitor accesses your site. This hash is derived from a combination of the visitor&#039;s User-Agent, IP address, and a daily salt. This method enables unique visitor tracking without storing personally identifiable information such as cookies, ensuring privacy and data protection.&quot;,&quot;Do you support custom events?&quot;:&quot;Do you support custom events?&quot;,&quot;Yes! You can track custom events to measure any activity that matters to your application. Check out our &lt;a href=\&quot;\/docs\/how-to-track-a-custom-event.html\&quot; target=\&quot;_blank\&quot; class=\&quot;simpleLink\&quot;&gt;documentation&lt;\/a&gt; to get started.&quot;:&quot;Yes! You can track custom events to measure any activity that matters to your application. Check out our &lt;a href=\&quot;\/docs\/how-to-track-a-custom-event.html\&quot; target=\&quot;_blank\&quot; class=\&quot;simpleLink\&quot;&gt;documentation&lt;\/a&gt; to get started.&quot;,&quot;If you need more help, check out our&quot;:&quot;If you need more help, check out our&quot;,&quot;Troubleshooting&quot;:&quot;Troubleshooting&quot;,&quot;page!&quot;:&quot;page!&quot;,&quot;Based and hosted in the EU&quot;:&quot;Based and hosted in the EU&quot;,&quot;Why :appName?&quot;:&quot;Why :appName?&quot;,&quot;Powerful KPIs&quot;:&quot;Powerful KPIs&quot;,&quot;Simple Setup&quot;:&quot;Simple Setup&quot;,&quot;Server-side Tracking&quot;:&quot;Server-side Tracking&quot;,&quot;Data Import&quot;:&quot;Data Import&quot;,&quot;Community&quot;:&quot;Community&quot;,&quot;Company&quot;:&quot;Company&quot;,&quot;Status&quot;:&quot;Status&quot;,&quot;Help &amp; Support&quot;:&quot;Help &amp; Support&quot;,&quot;Documentation&quot;:&quot;Documentation&quot;,&quot;Imprint&quot;:&quot;Imprint&quot;,&quot;Terms&quot;:&quot;Terms&quot;,&quot;A product by&quot;:&quot;A product by&quot;,&quot;Sign in to :appName&quot;:&quot;Sign in to :appName&quot;,&quot;Email&quot;:&quot;Email&quot;,&quot;Password&quot;:&quot;Password&quot;,&quot;Remember me&quot;:&quot;Remember me&quot;,&quot;Sign up&quot;:&quot;Sign up&quot;,&quot;Forgot your password?&quot;:&quot;Forgot your password?&quot;,&quot;Home&quot;:&quot;Home&quot;,&quot;Sign up to :appName&quot;:&quot;Sign up to :appName&quot;,&quot;and join the following team:&quot;:&quot;and join the following team:&quot;,&quot;Name&quot;:&quot;Name&quot;,&quot;Confirm Password&quot;:&quot;Confirm Password&quot;,&quot;Create account&quot;:&quot;Create account&quot;,&quot;Signing up for a :appName account means you agree to the&quot;:&quot;Signing up for a :appName account means you agree to the&quot;,&quot;Terms of Service&quot;:&quot;Terms of Service&quot;,&quot;and&quot;:&quot;and&quot;,&quot;Privacy Policy&quot;:&quot;Privacy Policy&quot;,&quot;Already have an account?&quot;:&quot;Already have an account?&quot;,&quot;Forgot Password&quot;:&quot;Forgot Password&quot;,&quot;Reset your password&quot;:&quot;Reset your password&quot;,&quot;Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.&quot;:&quot;Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.&quot;,&quot;Email password reset link&quot;:&quot;Email password reset link&quot;,&quot;Back to sign in&quot;:&quot;Back to sign in&quot;,&quot;Reset Password&quot;:&quot;Reset Password&quot;,&quot;interactive demo&quot;:&quot;interactive demo&quot;,&quot;Testimonials of our&quot;:&quot;Testimonials of our&quot;,&quot;fans&quot;:&quot;fans&quot;,&quot;Install :appName&quot;:&quot;Install :appName&quot;,&quot;In your Laravel project, you just need to &lt;b&gt;install&lt;\/b&gt; the :appName &lt;b&gt;client&lt;\/b&gt;. Congrats, the tool is now already tracking your visitors!&quot;:&quot;In your Laravel project, you just need to &lt;b&gt;install&lt;\/b&gt; the :appName &lt;b&gt;client&lt;\/b&gt;. Congrats, the tool is now already tracking your visitors!&quot;,&quot;To make the client &lt;b&gt;track&lt;\/b&gt; your user &lt;b&gt;registrations&lt;\/b&gt;, you only have to add the &lt;b&gt;TrackablePerson&lt;\/b&gt; interface and implement the contract.&quot;:&quot;To make the client &lt;b&gt;track&lt;\/b&gt; your user &lt;b&gt;registrations&lt;\/b&gt;, you only have to add the &lt;b&gt;TrackablePerson&lt;\/b&gt; interface and implement the contract.&quot;,&quot;To enable the client to &lt;b&gt;track&lt;\/b&gt; your app&#039;s &lt;b&gt;payments&lt;\/b&gt;, you need to add the &lt;b&gt;TrackablePayment&lt;\/b&gt; interface to your payment\/transaction model and implement the contract.&quot;:&quot;To enable the client to &lt;b&gt;track&lt;\/b&gt; your app&#039;s &lt;b&gt;payments&lt;\/b&gt;, you need to add the &lt;b&gt;TrackablePayment&lt;\/b&gt; interface to your payment\/transaction model and implement the contract.&quot;,&quot;You&#039;re all set! &lt;b&gt;:appName&lt;\/b&gt; is now tracking your data. Head over to your &lt;b&gt;dashboard&lt;\/b&gt; and discover what&#039;s happening in your app - in real time.&quot;:&quot;You&#039;re all set! &lt;b&gt;:appName&lt;\/b&gt; is now tracking your data. Head over to your &lt;b&gt;dashboard&lt;\/b&gt; and discover what&#039;s happening in your app - in real time.&quot;,&quot;Secure Area&quot;:&quot;Secure Area&quot;,&quot;Password Confirmation&quot;:&quot;Password Confirmation&quot;,&quot;This is a secure area of the application. Please confirm your password before continuing.&quot;:&quot;This is a secure area of the application. Please confirm your password before continuing.&quot;,&quot;Confirm&quot;:&quot;Confirm&quot;,&quot;Confirm with passkey&quot;:&quot;Confirm with passkey&quot;,&quot;Two-factor Confirmation&quot;:&quot;Two-factor Confirmation&quot;,&quot;Account Confirmation&quot;:&quot;Account Confirmation&quot;,&quot;Please confirm access to your account by entering the authentication code provided by your authenticator application.&quot;:&quot;Please confirm access to your account by entering the authentication code provided by your authenticator application.&quot;,&quot;Please confirm access to your account by entering one of your emergency recovery codes.&quot;:&quot;Please confirm access to your account by entering one of your emergency recovery codes.&quot;,&quot;Code&quot;:&quot;Code&quot;,&quot;Recovery Code&quot;:&quot;Recovery Code&quot;,&quot;Use a recovery code&quot;:&quot;Use a recovery code&quot;,&quot;Use an authentication code&quot;:&quot;Use an authentication code&quot;,&quot;Email Verification&quot;:&quot;Email Verification&quot;,&quot;Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn&#039;t receive the email, we will gladly send you another.&quot;:&quot;Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn&#039;t receive the email, we will gladly send you another.&quot;,&quot;A new verification link has been sent to the email address you provided in your profile settings.&quot;:&quot;A new verification link has been sent to the email address you provided in your profile settings.&quot;,&quot;Resend verification email&quot;:&quot;Resend verification email&quot;,&quot;Profile&quot;:&quot;Profile&quot;,&quot;Sign out&quot;:&quot;Sign out&quot;,&quot;Save :percent%&quot;:&quot;Save :percent%&quot;,&quot;Save :amount\/year&quot;:&quot;Save :amount\/year&quot;,&quot;2 months free&quot;:&quot;2 months free&quot;,&quot;Starter&quot;:&quot;Starter&quot;,&quot;Plus&quot;:&quot;Plus&quot;,&quot;Business&quot;:&quot;Business&quot;,&quot;Enterprise&quot;:&quot;Enterprise&quot;,&quot;Simple analytics, no card required.&quot;:&quot;Simple analytics, no card required.&quot;,&quot;Great for smaller projects.&quot;:&quot;Great for smaller projects.&quot;,&quot;For ambitious, growing projects.&quot;:&quot;For ambitious, growing projects.&quot;,&quot;High-volume tracking at scale.&quot;:&quot;High-volume tracking at scale.&quot;,&quot;Built for high-traffic products.&quot;:&quot;Built for high-traffic products.&quot;,&quot;Power for data-heavy platforms.&quot;:&quot;Power for data-heavy platforms.&quot;,&quot;Near-limitless tracking headroom.&quot;:&quot;Near-limitless tracking headroom.&quot;,&quot;Analytics without any limits.&quot;:&quot;Analytics without any limits.&quot;,&quot;1 Project&quot;:&quot;1 Project&quot;,&quot;10 Projects&quot;:&quot;10 Projects&quot;,&quot;Unlimited Projects&quot;:&quot;Unlimited Projects&quot;,&quot;5K Monthly Events&quot;:&quot;5K Monthly Events&quot;,&quot;100K Monthly Events&quot;:&quot;100K Monthly Events&quot;,&quot;200K Monthly Events&quot;:&quot;200K Monthly Events&quot;,&quot;500K Monthly Events&quot;:&quot;500K Monthly Events&quot;,&quot;10M Monthly Events&quot;:&quot;10M Monthly Events&quot;,&quot;Multi Currency Support&quot;:&quot;Multi Currency Support&quot;,&quot;How we&quot;:&quot;How we&quot;,&quot;compare&quot;:&quot;compare&quot;,&quot;Server-side tracking&quot;:&quot;Server-side tracking&quot;,&quot;No JavaScript required&quot;:&quot;No JavaScript required&quot;,&quot;Revenue Attribution&quot;:&quot;Revenue Attribution&quot;,&quot;User &amp; Payment tracking&quot;:&quot;User &amp; Payment tracking&quot;,&quot;
83No cookie banner required&quot;:&quot;No cookie banner required&quot;,&quot;Laravel-native&quot;:&quot;Laravel-native&quot;,&quot;Ad-blocker proof&quot;:&quot;Ad-blocker proof&quot;,&quot;Self-hosting option&quot;:&quot;Self-hosting option&quot;,&quot;Open API&quot;:&quot;Open API&quot;,&quot;Blog&quot;:&quot;Blog&quot;,&quot;Latest from&quot;:&quot;Latest from&quot;,&quot;our blog&quot;:&quot;our blog&quot;,&quot;View all posts&quot;:&quot;View all posts&quot;,&quot;This account was deactivated because it was unused for a long time. Its data can still be restored, please contact :email.&quot;:&quot;This account was deactivated because it was unused for a long time. Its data can still be restored, please contact :email.&quot;},&quot;supportedLocales&quot;:[&quot;en&quot;,&quot;de&quot;,&quot;fr&quot;,&quot;it&quot;,&quot;es&quot;,&quot;nl&quot;],&quot;localeConfig&quot;:{&quot;en&quot;:{&quot;label&quot;:&quot;English&quot;,&quot;country&quot;:&quot;GB&quot;},&quot;de&quot;:{&quot;label&quot;:&quot;Deutsch&quot;,&quot;country&quot;:&quot;DE&quot;},&quot;fr&quot;:{&quot;label&quot;:&quot;Fran\u00e7ais&quot;,&quot;country&quot;:&quot;FR&quot;},&quot;it&quot;:{&quot;label&quot;:&quot;Italiano&quot;,&quot;country&quot;:&quot;IT&quot;},&quot;es&quot;:{&quot;label&quot;:&quot;Espa\u00f1ol&quot;,&quot;country&quot;:&quot;ES&quot;},&quot;nl&quot;:{&quot;label&quot;:&quot;Nederlands&quot;,&quot;country&quot;:&quot;NL&quot;}},&quot;defaultLocale&quot;:&quot;en&quot;,&quot;localeUrls&quot;:{&quot;en&quot;:&quot;\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server?hl=en&quot;,&quot;de&quot;:&quot;\/de\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;fr&quot;:&quot;\/fr\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;it&quot;:&quot;\/it\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;es&quot;:&quot;\/es\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;nl&quot;:&quot;\/nl\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;},&quot;post&quot;:{&quot;title&quot;:&quot;Ask Your Laravel Analytics Anything: AI Assistant &amp; MCP Server&quot;,&quot;slug&quot;:&quot;ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;date&quot;:&quot;2026-07-08T00:00:00+00:00&quot;,&quot;body&quot;:&quot;\nSome questions are easy to answer with a dashboard: \&quot;How many visitors did I get this week?\&quot; is one glance at a chart. Other questions take more clicking: \&quot;Which referrer brought the most paying users last quarter?\&quot; means picking a date range, choosing a breakdown, sorting by the right column, and maybe comparing a second dimension.\n\nNow you can just ask.\n\nSimpleStats ships two new ways to talk to your analytics: an **AI assistant built into your dashboard**, and a **hosted MCP server** that connects your analytics to AI tools like Claude Code, Cursor, and Claude Desktop.\n\n## Ask AI, right in your dashboard\n\nLook for the sparkle button in your dashboard. It opens a chat panel next to your stats where you can ask questions in plain language:\n\n- \&quot;How many registrations did I get last month, and how does that compare to the month before?\&quot;\n- \&quot;Which traffic source has the best conversion rate this year?\&quot;\n- \&quot;How did my MRR develop over the last 6 months?\&quot;\n- \&quot;Do users from Google stick around longer than users from Twitter?\&quot;\n\nThe assistant answers with your real numbers. Every figure comes from an actual query against your analytics data, never from an estimate. It always tells you which date range and project the numbers refer to, and if there is no data for what you asked, it says so instead of guessing.\n\nIt handles follow-ups too. Ask for last month&#039;s revenue, then ask \&quot;and how much of that came from campaigns?\&quot;, and it keeps the context. Conversations are saved, so you can pick up where you left off.\n\nSince the assistant knows the SimpleStats docs as well, it also answers setup questions: how to configure tracking, how the client package works, what a specific KPI means. Docs answers include a link to the relevant page.\n\n## What it can answer\n\nThe assistant has access to the same data your dashboard shows:\n\n- **KPI time series**: visitors, registrations, conversion rate, revenue, active users (DAU\/WAU\/MAU), ARPU and friends, for any date range.\n- **Breakdowns**: by referrer, source, medium, campaign, country, device, browser, entry page, and more.\n- **Subscription metrics**: MRR, ARR, expansion, contraction, churn, NRR\/GRR, and subscription economics.\n- **Retention**: registration retention cohorts, so \&quot;do users come back?\&quot; gets a real answer.\n\n## Your analytics in Claude Code, Cursor, and Claude Desktop\n\nThe same assistant capabilities are available outside the app through our hosted [MCP](https:\/\/modelcontextprotocol.io) (Model Context Protocol) server. Connect it once, and your AI coding tool can query your analytics whenever you ask.\n\nThat unlocks workflows a dashboard can&#039;t do:\n\n- **Check impact while you work.** \&quot;Did conversion change since the deploy on Tuesday?\&quot; without leaving your editor.\n- **Generate reports.** \&quot;Write a short weekly summary of visitors, registrations, and revenue, and compare it to the previous week.\&quot;\n- **Combine with your codebase.** Ask Claude Code to look at your pricing page *and* your conversion numbers in one conversation.\n\nSetup takes one command in Claude Code:\n\n```bash\nclaude mcp add --trans
83port http simplestats https:\/\/simplestats.io\/mcp \\\n  --header \&quot;Authorization: Bearer API_TOKEN_HERE\&quot;\n```\n\nFor Cursor or VS Code, add it to your `mcp.json`:\n\n```json\n{\n    \&quot;mcpServers\&quot;: {\n        \&quot;simplestats\&quot;: {\n            \&quot;url\&quot;: \&quot;https:\/\/simplestats.io\/mcp\&quot;,\n            \&quot;headers\&quot;: {\n                \&quot;Authorization\&quot;: \&quot;Bearer API_TOKEN_HERE\&quot;\n            }\n        }\n    }\n}\n```\n\nAuthentication uses your **project API token**, the same token you already use for the Ingest and Query APIs. You&#039;ll find it on your project page inside the app. All data is scoped to the team the project belongs to, and questions default to the token&#039;s project unless you ask about another one.\n\nClaude Desktop currently expects OAuth for remote servers; the [MCP server docs](\/docs\/mcp-server.html) show a small workaround using `mcp-remote`.\n\n## Bring your own AI key\n\nBy default the in-app assistant runs on our AI provider account, and you don&#039;t have to configure anything. If your team prefers its own provider, you can bring your own API key: head to your team settings and pick a provider (Anthropic, OpenAI, Gemini, Groq, Mistral, DeepSeek, xAI, or OpenRouter), optionally choose a specific model, and paste your key. Keys are stored encrypted and are never shown again after saving.\n\nThat gives you full control over which model reads your questions and lets heavy users scale usage on their own account.\n\n## Availability\n\nThe AI assistant and the MCP server are included in **all paid plans**. MCP requests are rate limited to 60 requests per minute per project, which is plenty for interactive use. Self-hosted installations get the MCP server on their own domain, working the same way.\n\nReady to try it? Open your [dashboard](https:\/\/simplestats.io) and hit the sparkle button, or connect [the MCP server](\/docs\/mcp-server.html) to your editor and ask your analytics something you&#039;ve always been too lazy to click together.\n&quot;,&quot;html&quot;:&quot;&lt;p&gt;Some questions are easy to answer with a dashboard: &amp;quot;How many visitors did I get this week?&amp;quot; is one glance at a chart. Other questions take more clicking: &amp;quot;Which referrer brought the most paying users last quarter?&amp;quot; means picking a date range, choosing a breakdown, sorting by the right column, and maybe comparing a second dimension.&lt;\/p&gt;\n&lt;p&gt;Now you can just ask.&lt;\/p&gt;\n&lt;p&gt;SimpleStats ships two new ways to talk to your analytics: an &lt;strong&gt;AI assistant built into your dashboard&lt;\/strong&gt;, and a &lt;strong&gt;hosted MCP server&lt;\/strong&gt; that connects your analytics to AI tools like Claude Code, Cursor, and Claude Desktop.&lt;\/p&gt;\n&lt;h2&gt;Ask AI, right in your dashboard&lt;\/h2&gt;\n&lt;p&gt;Look for the sparkle button in your dashboard. It opens a chat panel next to your stats where you can ask questions in plain language:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&amp;quot;How many registrations did I get last month, and how does that compare to the month before?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;Which traffic source has the best conversion rate this year?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;How did my MRR develop over the last 6 months?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;Do users from Google stick around longer than users from Twitter?&amp;quot;&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;p&gt;The assistant answers with your real numbers. Every figure comes from an actual query against your analytics data, never from an estimate. It always tells you which date range and project the numbers refer to, and if there is no data for what you asked, it says so instead of guessing.&lt;\/p&gt;\n&lt;p&gt;It handles follow-ups too. Ask for last month&#039;s revenue, then ask &amp;quot;and how much of that came from campaigns?&amp;quot;, and it keeps the context. Conversations are saved, so you can pick up where you left off.&lt;\/p&gt;\n&lt;p&gt;Since the assistant knows the SimpleStats docs as well, it also answers setup questions: how to configure tracking, how the client package works, what a specific KPI means. Docs answers include a link to the relevant page.&lt;\/p&gt;\n&lt;h2&gt;What it can answer&lt;\/h2&gt;\n&lt;p&gt;The assistant has access to the same data your dashboard shows:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;KPI time series&lt;\/strong&gt;: visitors, registrations, conversion rate, revenue, active users (DAU\/WAU\/MAU), ARPU and friends, for any date range.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Breakdowns&lt;\/strong&gt;: by referrer, source, medium, campaign, country, device, browser, entry page, and more.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Subscription metrics&lt;\/strong&gt;: MRR, ARR, expansion, contraction, churn, NRR\/GRR, and subscription economics.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Retention&lt;\/strong&gt;: registration retention cohorts, so &amp;quot;do users come back?&amp;quot; gets a real answer.&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;h2&gt;Your analytics in Claude Code, Cursor, and Claude Desktop&lt;\/h2&gt;\n&lt;p&gt;The same assistant capabilities are available outside the app through our hosted &lt;a href=\&quot;https:\/\/modelcontextprotocol.io\&quot;&gt;MCP&lt;\/a&gt; (Model Context Protocol) server. Connect it once, and your AI coding tool can query your analytics whenever you ask.&lt;\/p&gt;\n&lt;p&gt;That unlocks workflows a dashboard can&#039;t do:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;Check impact while you work.&lt;\/strong&gt; &amp;quot;Did conversion change since the deploy on Tuesday?&amp;quot; without leaving your editor.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Generate reports.&lt;\/strong&gt; &amp;quot;Write a short weekly summary of visitors, registrations, and revenue, and compare it to the previous week.&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Combine with your codebase.&lt;\/strong&gt; Ask Claude Code to look at your pricing page &lt;em&gt;and&lt;\/em&gt; your conversion numbers in one conversation.&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;p&gt;Setup takes one command in Claude Code:&lt;\/p&gt;\n&lt;pre&gt;&lt;
83code class=\&quot;language-bash\&quot;&gt;claude mcp add --transport http simplestats https:\/\/simplestats.io\/mcp \\\n  --header &amp;quot;Authorization: Bearer API_TOKEN_HERE&amp;quot;\n&lt;\/code&gt;&lt;\/pre&gt;\n&lt;p&gt;For Cursor or VS Code, add it to your &lt;code&gt;mcp.json&lt;\/code&gt;:&lt;\/p&gt;\n&lt;pre&gt;&lt;code class=\&quot;language-json\&quot;&gt;{\n    &amp;quot;mcpServers&amp;quot;: {\n        &amp;quot;simplestats&amp;quot;: {\n            &amp;quot;url&amp;quot;: &amp;quot;https:\/\/simplestats.io\/mcp&amp;quot;,\n            &amp;quot;headers&amp;quot;: {\n                &amp;quot;Authorization&amp;quot;: &amp;quot;Bearer API_TOKEN_HERE&amp;quot;\n            }\n        }\n    }\n}\n&lt;\/code&gt;&lt;\/pre&gt;\n&lt;p&gt;Authentication uses your &lt;strong&gt;project API token&lt;\/strong&gt;, the same token you already use for the Ingest and Query APIs. You&#039;ll find it on your project page inside the app. All data is scoped to the team the project belongs to, and questions default to the token&#039;s project unless you ask about another one.&lt;\/p&gt;\n&lt;p&gt;Claude Desktop currently expects OAuth for remote servers; the &lt;a href=\&quot;\/docs\/mcp-server.html\&quot;&gt;MCP server docs&lt;\/a&gt; show a small workaround using &lt;code&gt;mcp-remote&lt;\/code&gt;.&lt;\/p&gt;\n&lt;h2&gt;Bring your own AI key&lt;\/h2&gt;\n&lt;p&gt;By default the in-app assistant runs on our AI provider account, and you don&#039;t have to configure anything. If your team prefers its own provider, you can bring your own API key: head to your team settings and pick a provider (Anthropic, OpenAI, Gemini, Groq, Mistral, DeepSeek, xAI, or OpenRouter), optionally choose a specific model, and paste your key. Keys are stored encrypted and are never shown again after saving.&lt;\/p&gt;\n&lt;p&gt;That gives you full control over which model reads your questions and lets heavy users scale usage on their own account.&lt;\/p&gt;\n&lt;h2&gt;Availability&lt;\/h2&gt;\n&lt;p&gt;The AI assistant and the MCP server are included in &lt;strong&gt;all paid plans&lt;\/strong&gt;. MCP requests are rate limited to 60 requests per minute per project, which is plenty for interactive use. Self-hosted installations get the MCP server on their own domain, working the same way.&lt;\/p&gt;\n&lt;p&gt;Ready to try it? Open your &lt;a href=\&quot;https:\/\/simplestats.io\&quot;&gt;dashboard&lt;\/a&gt; and hit the sparkle button, or connect &lt;a href=\&quot;\/docs\/mcp-server.html\&quot;&gt;the MCP server&lt;\/a&gt; to your editor and ask your analytics something you&#039;ve always been too lazy to click together.&lt;\/p&gt;\n&quot;,&quot;tags&quot;:[&quot;AI&quot;,&quot;MCP&quot;,&quot;Laravel&quot;,&quot;Analytics&quot;],&quot;category&quot;:&quot;&quot;,&quot;excerpt&quot;:&quot;Which referrer brought the most revenue last month? How did MRR develop this year? Instead of clicking through filters, you can now simply ask. SimpleStats ships an AI assistant right in your dashboard, plus a hosted MCP server that brings your analytics into Claude Code, Cursor, and Claude Desktop.&quot;,&quot;published&quot;:true,&quot;meta&quot;:{&quot;author_id&quot;:1},&quot;filePath&quot;:&quot;\/home\/forge\/simplestats.io\/releases\/1790857126--2026_10_01--12_18_46\/resources\/markdown\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server.md&quot;,&quot;lastModified&quot;:1790857132,&quot;author&quot;:{&quot;name&quot;:&quot;Zacharias Creutznacher&quot;,&quot;profile_photo_path&quot;:&quot;profile-photos\/7gkjrh8JqUAALZeJpgrom9gCN1J0qki88BnXhWVv.jpg&quot;,&quot;profile_photo_url&quot;:&quot;https:\/\/simplestats.io\/storage\/profile-photos\/7gkjrh8JqUAALZeJpgrom9gCN1J0qki88BnXhWVv.jpg&quot;}},&quot;htmlContent&quot;:&quot;&lt;p&gt;Some questions are easy to answer with a dashboard: &amp;quot;How many visitors did I get this week?&amp;quot; is one glance at a chart. Other questions take more clicking: &amp;quot;Which referrer brought the most paying users last quarter?&amp;quot; means picking a date range, choosing a breakdown, sorting by the right column, and maybe comparing a second dimension.&lt;\/p&gt;\n&lt;p&gt;Now you can just ask.&lt;\/p&gt;\n&lt;p&gt;SimpleStats ships two new ways to talk to your analytics: an &lt;strong&gt;AI assistant built into your dashboard&lt;\/strong&gt;, and a &lt;strong&gt;hosted MCP server&lt;\/strong&gt; that connects your analytics to AI tools like Claude Code, Cursor, and Claude Desktop.&lt;\/p&gt;\n&lt;h2&gt;
83Ask AI, right in your dashboard&lt;\/h2&gt;\n&lt;p&gt;Look for the sparkle button in your dashboard. It opens a chat panel next to your stats where you can ask questions in plain language:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&amp;quot;How many registrations did I get last month, and how does that compare to the month before?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;Which traffic source has the best conversion rate this year?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;How did my MRR develop over the last 6 months?&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&amp;quot;Do users from Google stick around longer than users from Twitter?&amp;quot;&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;p&gt;The assistant answers with your real numbers. Every figure comes from an actual query against your analytics data, never from an estimate. It always tells you which date range and project the numbers refer to, and if there is no data for what you asked, it says so instead of guessing.&lt;\/p&gt;\n&lt;p&gt;It handles follow-ups too. Ask for last month&#039;s revenue, then ask &amp;quot;and how much of that came from campaigns?&amp;quot;, and it keeps the context. Conversations are saved, so you can pick up where you left off.&lt;\/p&gt;\n&lt;p&gt;Since the assistant knows the SimpleStats docs as well, it also answers setup questions: how to configure tracking, how the client package works, what a specific KPI means. Docs answers include a link to the relevant page.&lt;\/p&gt;\n&lt;h2&gt;What it can answer&lt;\/h2&gt;\n&lt;p&gt;The assistant has access to the same data your dashboard shows:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;KPI time series&lt;\/strong&gt;: visitors, registrations, conversion rate, revenue, active users (DAU\/WAU\/MAU), ARPU and friends, for any date range.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Breakdowns&lt;\/strong&gt;: by referrer, source, medium, campaign, country, device, browser, entry page, and more.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Subscription metrics&lt;\/strong&gt;: MRR, ARR, expansion, contraction, churn, NRR\/GRR, and subscription economics.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Retention&lt;\/strong&gt;: registration retention cohorts, so &amp;quot;do users come back?&amp;quot; gets a real answer.&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;h2&gt;Your analytics in Claude Code, Cursor, and Claude Desktop&lt;\/h2&gt;\n&lt;p&gt;The same assistant capabilities are available outside the app through our hosted &lt;a href=\&quot;https:\/\/modelcontextprotocol.io\&quot;&gt;MCP&lt;\/a&gt; (Model Context Protocol) server. Connect it once, and your AI coding tool can query your analytics whenever you ask.&lt;\/p&gt;\n&lt;p&gt;That unlocks workflows a dashboard can&#039;t do:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;Check impact while you work.&lt;\/strong&gt; &amp;quot;Did conversion change since the deploy on Tuesday?&amp;quot; without leaving your editor.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Generate reports.&lt;\/strong&gt; &amp;quot;Write a short weekly summary of visitors, registrations, and revenue, and compare it to the previous week.&amp;quot;&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Combine with your codebase.&lt;\/strong&gt; Ask Claude Code to look at your pricing page &lt;em&gt;and&lt;\/em&gt; your conversion numbers in one conversation.&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;p&gt;Setup takes one command in Claude Code:&lt;\/p&gt;\n&lt;pre class=\&quot;shiki\&quot; style=\&quot;background-color: #24292e\&quot;&gt;&lt;code&gt;&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#B392F0\&quot;&gt;claude&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;mcp&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;add&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;--transport&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;http&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;simplestats&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;https:\/\/simplestats.io\/mcp&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;\\&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;  &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;--header&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt; &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;&amp;quot;Authorization: Bearer API_TOKEN_HERE&amp;quot;&lt;\/span&gt;&lt;\/span&gt;&lt;\/code&gt;&lt;\/pre&gt;\n&lt;p&gt;For Cursor or VS Code, add it to your &lt;code&gt;mcp.json&lt;\/code&gt;:&lt;\/p&gt;\n&lt;pre class=\&quot;shiki\&quot; style=\&quot;background-color: #24292e\&quot;&gt;&lt;code&gt;&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;{&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;    &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;&amp;quot;mcpServers&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;: {&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;        &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;&amp;quot;simplestats&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;: {&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;            &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;&amp;quot;url&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;: &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;&amp;quot;https:\/\/simplestats.io\/mcp&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;,&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;            &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;&amp;quot;headers&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;: {&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;                &lt;\/span&gt;&lt;span style=\&quot;color:#79B8FF\&quot;&gt;&amp;quot;Authorization&amp;quot;&lt;\/span&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;: &lt;\/span&gt;&lt;span style=\&quot;color:#9ECBFF\&quot;&gt;&amp;quot;Bearer API_TOKEN_HERE&amp;quot;&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;            }&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;        }&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;    }&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=\&quot;line\&quot;&gt;&lt;span style=\&quot;color:#E1E4E8\&quot;&gt;}&lt;\/span&gt;&lt;\/span&gt;&lt;\/code&gt;&lt;\/pre&gt;\n&lt;p&gt;Authentication uses your &lt;strong&gt;project API token&lt;\/strong&gt;, the same token you already use for the Ingest and Query APIs. You&#039;ll find it on your project page inside the app. All data is scoped to the team the project belongs to, and questions default to the token&#039;s project unless you ask about another one.&lt;\/p&gt;\n&lt;p&gt;Claude Desktop currently expects OAuth for remote servers; the &lt;a href=\&quot;\/docs\/mcp-server.html\&quot;&gt;MCP server docs&lt;\/a&gt; show a small workaround using &lt;code&gt;mcp-remote&lt;\/code&gt;.&lt;\/p&gt;\n&lt;h2&gt;Bring your own AI key&lt;\/h2&gt;\n&lt;p&gt;By default the in-app assistant runs on our AI provider account, and you don&#039;t have to configure anything. If your team prefers its own provider, you can bring your own API key: head to your team settings and pick a provider (Anthropic, OpenAI, Gemini, Groq, Mistral, DeepSeek, xAI, or OpenRouter), optionally choose a specific model, and paste your key. Keys are stored encrypted and are never shown again after saving.&lt;\/p&gt;\n&lt;p&gt;That gives you full control over which model reads your questions and lets heavy users scale usage on their own account.&lt;\/p&gt;\n&lt;h2&gt;Availability&lt;\/h2&gt;\n&lt;p&gt;The AI assistant and the MCP server are included in &lt;strong&gt;all paid plans&lt;\/strong&gt;. MCP requests are rate limited to 60 requests per minute per project, which is plenty for interactive use. Self-hosted installations get the MCP server on their own domain, working the same way.&lt;\/p&gt;\n&lt;p&gt;Ready to try it? Open your &lt;a href=\&quot;https:\/\/simplestats.io\&quot;&gt;dashboard&lt;\/a&gt; and hit the sparkle button, or connect &lt;a href=\&quot;\/docs\/mcp-server.html\&quot;&gt;the MCP server&lt;\/a&gt; to your editor and ask your analytics something you&#039;ve always been too lazy to click together.&lt;\/p&gt;\n&quot;},&quot;url&quot;:&quot;\/blog\/ask-your-laravel-analytics-anything-ai-assistant-and-mcp-server&quot;,&quot;version&quot;:&quot;a8c5779e2b2ce85022ad47d4dcd344f6&quot;,&quot;clearHistory&quot;:false,&quot;encryptHistory&quot;:false}"></div>
84        
84<script src="/js/dark_mode.js"></script>
84
85    
85<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"c3714e30690945e2b993323f81c6826a","r":1,"spa":2}' crossorigin="anonymous"></script>
85
86</body>
87</html>

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.