feat: add Microsoft Clarity analytics provider
Add Microsoft Clarity as a fourth analytics provider option alongside Umami, Google Analytics, and Custom. Clarity provides free heatmaps, session recordings, and user analytics. - admin.types.ts: Add 'clarity' to AnalyticsProvider union type - api/admin/site/route.ts: Add 'clarity' to validation - admin/page.tsx: Add Clarity option to dropdown + Project ID input UI - layout.tsx: Inject Clarity tracking script with project ID
This commit is contained in:
+8
-1
@@ -116,7 +116,7 @@ export default async function RootLayout({
|
||||
let webLiveEnabled = false;
|
||||
let customAdFilterVersion = 0;
|
||||
let analyticsEnabled = false;
|
||||
let analyticsProvider: 'umami' | 'google' | 'custom' = 'umami';
|
||||
let analyticsProvider: 'umami' | 'google' | 'clarity' | 'custom' = 'umami';
|
||||
let analyticsScriptUrl = '';
|
||||
let analyticsWebsiteId = '';
|
||||
let analyticsCustomScript = '';
|
||||
@@ -372,6 +372,13 @@ export default async function RootLayout({
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{analyticsEnabled && analyticsProvider === 'clarity' && analyticsWebsiteId && (
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `(function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);})(window,document,"clarity","script","${analyticsWebsiteId}");`,
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
{analyticsEnabled && analyticsProvider === 'custom' && analyticsCustomScript && (
|
||||
<script
|
||||
dangerouslySetInnerHTML={{ __html: analyticsCustomScript }}
|
||||
|
||||
Reference in New Issue
Block a user