add GA
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
.elementor-6541 .elementor-element.elementor-element-fb6e69b, .elementor-6541 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{border-radius:18px 18px 18px 18px;}.elementor-6541 .elementor-element.elementor-element-fb6e69b{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-6541 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-bc-flex-widget .elementor-6541 .elementor-element.elementor-element-1302c36.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-6541 .elementor-element.elementor-element-1302c36.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-6541 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6541 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{padding:30px 0px 0px 0px;}.elementor-6541 .elementor-element.elementor-element-e2bdea1{--spacer-size:440px;}.elementor-6541 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-image:var(--e-bg-lazyload-loaded);--e-bg-lazyload:url("https://www.goodwalk.co.nz/wp-content/uploads/2022/08/review-archive-2.jpg");background-position:bottom center;background-repeat:no-repeat;background-size:contain;}.elementor-bc-flex-widget .elementor-6541 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-6541 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-6541 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 145px 50px;}.elementor-6541 .elementor-element.elementor-element-717a84c > .elementor-widget-container{margin:0px 0px 15px 0px;}.elementor-6541 .elementor-element.elementor-element-717a84c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}.elementor-6541 .elementor-element.elementor-element-62bcb5c .elementor-heading-title{font-weight:500;}.elementor-6541 .elementor-element.elementor-element-62bcb5c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}@media(max-width:1024px){.elementor-6541 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6541 .elementor-element.elementor-element-e2bdea1{--spacer-size:430px;}.elementor-6541 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 160px 30px;}.elementor-6541 .elementor-element.elementor-element-717a84c{width:100%;max-width:100%;}.elementor-6541 .elementor-element.elementor-element-62bcb5c{width:100%;max-width:100%;}}@media(max-width:767px){.elementor-6541 .elementor-element.elementor-element-fb6e69b{padding:0px 0px 150px 0px;}.elementor-6541 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6541 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{margin:0px 0px 20px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:20px 20px 0px 20px;}.elementor-6541 .elementor-element.elementor-element-e2bdea1{--spacer-size:240px;}.elementor-6541 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-size:contain;}.elementor-bc-flex-widget .elementor-6541 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-6541 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-6541 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 40px 0px 40px;}}@media(min-width:768px){.elementor-6541 .elementor-element.elementor-element-1302c36{width:45%;}.elementor-6541 .elementor-element.elementor-element-f7837e0{width:55%;}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-6631 .elementor-element.elementor-element-ddfb808, .elementor-6631 .elementor-element.elementor-element-ddfb808 > .elementor-background-overlay{border-radius:18px 18px 18px 18px;}.elementor-6631 .elementor-element.elementor-element-ddfb808{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-6631 .elementor-element.elementor-element-ddfb808 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-bc-flex-widget .elementor-6631 .elementor-element.elementor-element-a62debb.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-6631 .elementor-element.elementor-element-a62debb.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-6631 .elementor-element.elementor-element-a62debb > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6631 .elementor-element.elementor-element-a62debb > .elementor-element-populated{padding:30px 0px 0px 0px;}.elementor-6631 .elementor-element.elementor-element-e20c5d3{--spacer-size:440px;}.elementor-6631 .elementor-element.elementor-element-e20c5d3 > .elementor-widget-container{background-image:var(--e-bg-lazyload-loaded);--e-bg-lazyload:url("https://www.goodwalk.co.nz/wp-content/uploads/2022/08/review-monty.jpg");background-position:bottom center;background-repeat:no-repeat;background-size:contain;}.elementor-bc-flex-widget .elementor-6631 .elementor-element.elementor-element-24afe2c.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-6631 .elementor-element.elementor-element-24afe2c.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-6631 .elementor-element.elementor-element-24afe2c > .elementor-element-populated{padding:0px 30px 145px 50px;}.elementor-6631 .elementor-element.elementor-element-25d4f7c > .elementor-widget-container{margin:0px 0px 15px 0px;}.elementor-6631 .elementor-element.elementor-element-25d4f7c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}.elementor-6631 .elementor-element.elementor-element-41f2fa8 .elementor-heading-title{font-weight:300;}.elementor-6631 .elementor-element.elementor-element-41f2fa8{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}@media(max-width:1024px){.elementor-6631 .elementor-element.elementor-element-a62debb > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6631 .elementor-element.elementor-element-e20c5d3{--spacer-size:430px;}.elementor-6631 .elementor-element.elementor-element-24afe2c > .elementor-element-populated{padding:0px 30px 160px 30px;}.elementor-6631 .elementor-element.elementor-element-25d4f7c{width:100%;max-width:100%;}.elementor-6631 .elementor-element.elementor-element-41f2fa8{width:100%;max-width:100%;}}@media(max-width:767px){.elementor-6631 .elementor-element.elementor-element-ddfb808{padding:0px 0px 150px 0px;}.elementor-6631 .elementor-element.elementor-element-a62debb > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-6631 .elementor-element.elementor-element-a62debb > .elementor-element-populated{margin:0px 0px 20px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:20px 20px 0px 20px;}.elementor-6631 .elementor-element.elementor-element-e20c5d3{--spacer-size:240px;}.elementor-6631 .elementor-element.elementor-element-e20c5d3 > .elementor-widget-container{background-size:contain;}.elementor-bc-flex-widget .elementor-6631 .elementor-element.elementor-element-24afe2c.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-6631 .elementor-element.elementor-element-24afe2c.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-6631 .elementor-element.elementor-element-24afe2c > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 40px 0px 40px;}}@media(min-width:768px){.elementor-6631 .elementor-element.elementor-element-a62debb{width:45%;}.elementor-6631 .elementor-element.elementor-element-24afe2c{width:55%;}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-988267 .elementor-element.elementor-element-fb6e69b, .elementor-988267 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{border-radius:18px 18px 18px 18px;}.elementor-988267 .elementor-element.elementor-element-fb6e69b{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-988267 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-bc-flex-widget .elementor-988267 .elementor-element.elementor-element-1302c36.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-988267 .elementor-element.elementor-element-1302c36.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-988267 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988267 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{padding:30px 0px 0px 0px;}.elementor-988267 .elementor-element.elementor-element-e2bdea1{--spacer-size:440px;}.elementor-988267 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-image:var(--e-bg-lazyload-loaded);--e-bg-lazyload:url("https://www.goodwalk.co.nz/wp-content/uploads/2024/03/otis.jpg");background-position:bottom center;background-repeat:no-repeat;background-size:contain;}.elementor-bc-flex-widget .elementor-988267 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-988267 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-988267 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 145px 50px;}.elementor-988267 .elementor-element.elementor-element-717a84c > .elementor-widget-container{margin:0px 0px 15px 0px;}.elementor-988267 .elementor-element.elementor-element-717a84c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}.elementor-988267 .elementor-element.elementor-element-62bcb5c .elementor-heading-title{font-weight:500;}.elementor-988267 .elementor-element.elementor-element-62bcb5c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}@media(max-width:1024px){.elementor-988267 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988267 .elementor-element.elementor-element-e2bdea1{--spacer-size:430px;}.elementor-988267 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 160px 30px;}.elementor-988267 .elementor-element.elementor-element-717a84c{width:100%;max-width:100%;}.elementor-988267 .elementor-element.elementor-element-62bcb5c{width:100%;max-width:100%;}}@media(max-width:767px){.elementor-988267 .elementor-element.elementor-element-fb6e69b{padding:0px 0px 150px 0px;}.elementor-988267 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988267 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{margin:0px 0px 20px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:20px 20px 0px 20px;}.elementor-988267 .elementor-element.elementor-element-e2bdea1{--spacer-size:240px;}.elementor-988267 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-size:contain;}.elementor-bc-flex-widget .elementor-988267 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-988267 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-988267 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 40px 0px 40px;}}@media(min-width:768px){.elementor-988267 .elementor-element.elementor-element-1302c36{width:45%;}.elementor-988267 .elementor-element.elementor-element-f7837e0{width:55%;}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.elementor-988273 .elementor-element.elementor-element-fb6e69b, .elementor-988273 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{border-radius:18px 18px 18px 18px;}.elementor-988273 .elementor-element.elementor-element-fb6e69b{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-988273 .elementor-element.elementor-element-fb6e69b > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-bc-flex-widget .elementor-988273 .elementor-element.elementor-element-1302c36.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-988273 .elementor-element.elementor-element-1302c36.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-988273 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988273 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{padding:30px 0px 0px 0px;}.elementor-988273 .elementor-element.elementor-element-e2bdea1{--spacer-size:440px;}.elementor-988273 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-image:var(--e-bg-lazyload-loaded);--e-bg-lazyload:url("https://www.goodwalk.co.nz/wp-content/uploads/2024/04/wallace-v2.jpg");background-position:bottom center;background-repeat:no-repeat;background-size:contain;}.elementor-bc-flex-widget .elementor-988273 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-end;}.elementor-988273 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-end;align-items:flex-end;}.elementor-988273 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 145px 50px;}.elementor-988273 .elementor-element.elementor-element-717a84c > .elementor-widget-container{margin:0px 0px 15px 0px;}.elementor-988273 .elementor-element.elementor-element-717a84c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}.elementor-988273 .elementor-element.elementor-element-62bcb5c .elementor-heading-title{font-weight:500;}.elementor-988273 .elementor-element.elementor-element-62bcb5c{width:var( --container-widget-width, 390px );max-width:390px;--container-widget-width:390px;--container-widget-flex-grow:0;}@media(max-width:1024px){.elementor-988273 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988273 .elementor-element.elementor-element-e2bdea1{--spacer-size:430px;}.elementor-988273 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{padding:0px 30px 160px 30px;}.elementor-988273 .elementor-element.elementor-element-717a84c{width:100%;max-width:100%;}.elementor-988273 .elementor-element.elementor-element-62bcb5c{width:100%;max-width:100%;}}@media(max-width:767px){.elementor-988273 .elementor-element.elementor-element-fb6e69b{padding:0px 0px 150px 0px;}.elementor-988273 .elementor-element.elementor-element-1302c36 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-988273 .elementor-element.elementor-element-1302c36 > .elementor-element-populated{margin:0px 0px 20px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:20px 20px 0px 20px;}.elementor-988273 .elementor-element.elementor-element-e2bdea1{--spacer-size:240px;}.elementor-988273 .elementor-element.elementor-element-e2bdea1 > .elementor-widget-container{background-size:contain;}.elementor-bc-flex-widget .elementor-988273 .elementor-element.elementor-element-f7837e0.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-988273 .elementor-element.elementor-element-f7837e0.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-988273 .elementor-element.elementor-element-f7837e0 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 40px 0px 40px;}}@media(min-width:768px){.elementor-988273 .elementor-element.elementor-element-1302c36{width:45%;}.elementor-988273 .elementor-element.elementor-element-f7837e0{width:55%;}}
|
|
||||||
@@ -30,6 +30,14 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
|
<!-- Google Analytics -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-K7TLSFJVP1"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
gtag('config', 'G-K7TLSFJVP1');
|
||||||
|
</script>
|
||||||
%sveltekit.head%
|
%sveltekit.head%
|
||||||
</head>
|
</head>
|
||||||
<body data-sveltekit-preload-data="hover">
|
<body data-sveltekit-preload-data="hover">
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
type GtagFn = (...args: unknown[]) => void;
|
||||||
|
|
||||||
|
const TEXT_LIMIT = 80;
|
||||||
|
|
||||||
|
function gtag(): GtagFn | null {
|
||||||
|
if (typeof window === 'undefined') return null;
|
||||||
|
const fn = (window as unknown as { gtag?: GtagFn }).gtag;
|
||||||
|
return typeof fn === 'function' ? fn : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function trackPageView(path: string, title: string): void {
|
||||||
|
const send = gtag();
|
||||||
|
if (!send) return;
|
||||||
|
send('event', 'page_view', {
|
||||||
|
page_path: path,
|
||||||
|
page_title: title,
|
||||||
|
page_location: window.location.href
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLabel(el: HTMLElement): string {
|
||||||
|
const aria = el.getAttribute('aria-label');
|
||||||
|
if (aria) return aria.trim().slice(0, TEXT_LIMIT);
|
||||||
|
const text = (el.textContent ?? '').replace(/\s+/g, ' ').trim();
|
||||||
|
if (text) return text.slice(0, TEXT_LIMIT);
|
||||||
|
const title = el.getAttribute('title');
|
||||||
|
if (title) return title.trim().slice(0, TEXT_LIMIT);
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLocation(el: HTMLElement): string {
|
||||||
|
const dataLoc = el.closest<HTMLElement>('[data-track-location]');
|
||||||
|
if (dataLoc?.dataset.trackLocation) {
|
||||||
|
return dataLoc.dataset.trackLocation.slice(0, TEXT_LIMIT);
|
||||||
|
}
|
||||||
|
const section = el.closest<HTMLElement>('section[id]');
|
||||||
|
if (section?.id) return section.id;
|
||||||
|
if (el.closest('header')) return 'header';
|
||||||
|
if (el.closest('footer')) return 'footer';
|
||||||
|
if (el.closest('nav')) return 'nav';
|
||||||
|
return 'body';
|
||||||
|
}
|
||||||
|
|
||||||
|
export function initClickTracking(): () => void {
|
||||||
|
if (typeof window === 'undefined') return () => {};
|
||||||
|
|
||||||
|
const handler = (event: MouseEvent) => {
|
||||||
|
const send = gtag();
|
||||||
|
if (!send) return;
|
||||||
|
const target = event.target;
|
||||||
|
if (!(target instanceof Element)) return;
|
||||||
|
const interactive = target.closest<HTMLElement>('a, button, [role="button"]');
|
||||||
|
if (!interactive) return;
|
||||||
|
|
||||||
|
const isLink = interactive.tagName === 'A';
|
||||||
|
const label = getLabel(interactive);
|
||||||
|
const location = getLocation(interactive);
|
||||||
|
|
||||||
|
const params: Record<string, unknown> = {
|
||||||
|
element: isLink ? 'link' : 'button',
|
||||||
|
label,
|
||||||
|
location,
|
||||||
|
page_path: window.location.pathname
|
||||||
|
};
|
||||||
|
|
||||||
|
if (isLink) {
|
||||||
|
const href = (interactive as HTMLAnchorElement).href;
|
||||||
|
if (href) {
|
||||||
|
params.link_url = href;
|
||||||
|
try {
|
||||||
|
const url = new URL(href, window.location.href);
|
||||||
|
params.outbound = url.hostname !== window.location.hostname;
|
||||||
|
} catch {
|
||||||
|
params.outbound = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const btn = interactive as HTMLButtonElement;
|
||||||
|
if (btn.type) params.button_type = btn.type;
|
||||||
|
if (btn.name) params.button_name = btn.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
send('event', isLink ? 'link_click' : 'button_click', params);
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('click', handler, { capture: true });
|
||||||
|
return () => document.removeEventListener('click', handler, { capture: true });
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { onMount } from 'svelte';
|
||||||
import { afterNavigate, disableScrollHandling } from '$app/navigation';
|
import { afterNavigate, disableScrollHandling } from '$app/navigation';
|
||||||
|
import { initClickTracking, trackPageView } from '$lib/analytics';
|
||||||
import '$lib/styles/variables.css';
|
import '$lib/styles/variables.css';
|
||||||
import '$lib/styles/base.css';
|
import '$lib/styles/base.css';
|
||||||
import '$lib/styles/layout.css';
|
import '$lib/styles/layout.css';
|
||||||
@@ -9,6 +11,8 @@
|
|||||||
import '$lib/styles/sections.css';
|
import '$lib/styles/sections.css';
|
||||||
import '$lib/styles/responsive.css';
|
import '$lib/styles/responsive.css';
|
||||||
|
|
||||||
|
onMount(() => initClickTracking());
|
||||||
|
|
||||||
afterNavigate(({ from, to }) => {
|
afterNavigate(({ from, to }) => {
|
||||||
if (!from || !to || to.url.hash) {
|
if (!from || !to || to.url.hash) {
|
||||||
return;
|
return;
|
||||||
@@ -28,6 +32,8 @@
|
|||||||
document.body.scrollTop = 0;
|
document.body.scrollTop = 0;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
trackPageView(to.url.pathname + to.url.search, document.title);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user