From e59ec52fabef2b11b74e2ac23c65a6623ef0aa30 Mon Sep 17 00:00:00 2001 From: Daniel Barion Date: Wed, 6 Sep 2023 12:14:23 -0300 Subject: [PATCH] chore: add event tracking for clicks on sponsored banners --- docs/src/components/BannerFrigade/index.tsx | 20 +++++++++++++ .../components/HomepageSponsored/index.tsx | 28 +++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/docs/src/components/BannerFrigade/index.tsx b/docs/src/components/BannerFrigade/index.tsx index d9282961..e188c156 100644 --- a/docs/src/components/BannerFrigade/index.tsx +++ b/docs/src/components/BannerFrigade/index.tsx @@ -4,7 +4,26 @@ import React from 'react' import LogoFrigade from '@site/static/img/sponsors/frigade.png' import './styles.css' +declare global { + interface Window { + dataLayer?: any + } +} + const BannerFrigade = () => { + const onClickFrigadeBannerEventHandler = () => { + if (typeof window !== 'undefined') { + window.dataLayer = window.dataLayer || [] + + window.dataLayer.push({ + event: `click_frigade_banner`, + place: 'sidebar', + }) + } + + return true + } + return (
{ title="Frigade" target="_blank" rel="noreferrer" + onClick={onClickFrigadeBannerEventHandler} > Frigade diff --git a/docs/src/components/HomepageSponsored/index.tsx b/docs/src/components/HomepageSponsored/index.tsx index 6f17a813..b5035089 100644 --- a/docs/src/components/HomepageSponsored/index.tsx +++ b/docs/src/components/HomepageSponsored/index.tsx @@ -11,6 +11,8 @@ type FeatureItem = { Svg?: React.ComponentType> // eslint-disable-next-line @typescript-eslint/no-explicit-any, react/no-unused-prop-types src?: any + // eslint-disable-next-line react/no-unused-prop-types + eventTitle?: string link: string } @@ -32,6 +34,7 @@ const SponsorList: FeatureItem[] = [ title: 'Frigade', src: require('@site/static/img/sponsors/frigade.png').default, link: 'https://frigade.com/?source=react-tooltip', + eventTitle: 'frigade', }, ] @@ -48,16 +51,37 @@ function Feature({ title, Svg, link }: FeatureItem) { } export default function HomepageSponsored(): JSX.Element { + const onClickFrigadeBannerEventHandler = (title: string) => { + if (typeof window !== 'undefined') { + window.dataLayer = window.dataLayer || [] + + window.dataLayer.push({ + event: `click_${title}_banner`, + place: 'home', + }) + } + + return true + } + return (

Sponsored by

- {SponsorList.map(({ link, title, src }, idx) => ( + {SponsorList.map(({ link, title, src, eventTitle }, idx) => ( // eslint-disable-next-line react/no-array-index-key