mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-25 04:20:02 +00:00
feat(analytics): add GA4 (G-15XZEQ6G9S), Meta Pixel, Hanzo Analytics, and Hanzo Insights with route-change tracking
Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -36,6 +36,57 @@ export const viewport: Viewport = {
|
||||
export default function RootLayout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<html lang="en" className={`${Zen.variable} ${ZenMono.variable} t_dark`} suppressHydrationWarning>
|
||||
<head>
|
||||
{/* Google Analytics 4 (G-15XZEQ6G9S) */}
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-15XZEQ6G9S" />
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-15XZEQ6G9S', {
|
||||
linker: {
|
||||
domains: ['hanzo.ai', 'hanzo.id', 'docs.hanzo.ai', 'hanzo.build', 'platform.hanzo.ai', 'pay.hanzo.ai', 'hanzo.app']
|
||||
}
|
||||
});
|
||||
`,
|
||||
}}
|
||||
/>
|
||||
{/* Meta Pixel (1790308611893001) */}
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', '1790308611893001');
|
||||
fbq('track', 'PageView');
|
||||
`,
|
||||
}}
|
||||
/>
|
||||
{/* Hanzo Analytics — first-party privacy-preserving web analytics */}
|
||||
<script
|
||||
defer
|
||||
src="https://analytics.hanzo.ai/script.js"
|
||||
data-website-id="a323a8ae-c811-4061-9626-22caaffc612f"
|
||||
/>
|
||||
{/* Hanzo Insights */}
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
!function(t,e){var o,n,p,r;e.__SV||(window.hi=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="hi",u.people=u.people||[],u.toString=function(t){var e="hi";return"hi"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture captureException identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId setPersonProperties".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.hi||[]);
|
||||
hi.init('hi_e16a2d5a8033442d87f090b24c606825',{api_host:'https://insights.hanzo.ai',person_profiles:'identified_only'});
|
||||
hi.register({app:'docs',org:'hanzo'});
|
||||
`,
|
||||
}}
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<Analytics product="docs">
|
||||
<NextProvider>
|
||||
|
||||
Reference in New Issue
Block a user