Skip to content

Commit e59ec52

Browse files
committed
chore: add event tracking for clicks on sponsored banners
1 parent b55d99e commit e59ec52

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

docs/src/components/BannerFrigade/index.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,34 @@ import React from 'react'
44
import LogoFrigade from '@site/static/img/sponsors/frigade.png'
55
import './styles.css'
66

7+
declare global {
8+
interface Window {
9+
dataLayer?: any
10+
}
11+
}
12+
713
const BannerFrigade = () => {
14+
const onClickFrigadeBannerEventHandler = () => {
15+
if (typeof window !== 'undefined') {
16+
window.dataLayer = window.dataLayer || []
17+
18+
window.dataLayer.push({
19+
event: `click_frigade_banner`,
20+
place: 'sidebar',
21+
})
22+
}
23+
24+
return true
25+
}
26+
827
return (
928
<div className="sponsor-frigade">
1029
<a
1130
href="https://frigade.com/?source=react-tooltip"
1231
title="Frigade"
1332
target="_blank"
1433
rel="noreferrer"
34+
onClick={onClickFrigadeBannerEventHandler}
1535
>
1636
<img src={LogoFrigade} alt="Frigade" />
1737
</a>

docs/src/components/HomepageSponsored/index.tsx

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ type FeatureItem = {
1111
Svg?: React.ComponentType<React.ComponentProps<'svg'>>
1212
// eslint-disable-next-line @typescript-eslint/no-explicit-any, react/no-unused-prop-types
1313
src?: any
14+
// eslint-disable-next-line react/no-unused-prop-types
15+
eventTitle?: string
1416
link: string
1517
}
1618

@@ -32,6 +34,7 @@ const SponsorList: FeatureItem[] = [
3234
title: 'Frigade',
3335
src: require('@site/static/img/sponsors/frigade.png').default,
3436
link: 'https://frigade.com/?source=react-tooltip',
37+
eventTitle: 'frigade',
3538
},
3639
]
3740

@@ -48,16 +51,37 @@ function Feature({ title, Svg, link }: FeatureItem) {
4851
}
4952

5053
export default function HomepageSponsored(): JSX.Element {
54+
const onClickFrigadeBannerEventHandler = (title: string) => {
55+
if (typeof window !== 'undefined') {
56+
window.dataLayer = window.dataLayer || []
57+
58+
window.dataLayer.push({
59+
event: `click_${title}_banner`,
60+
place: 'home',
61+
})
62+
}
63+
64+
return true
65+
}
66+
5167
return (
5268
<section className={styles.features}>
5369
<div className="container">
5470
<h3 className={styles.sponsoredTitle}>Sponsored by</h3>
5571
<div className="row">
56-
{SponsorList.map(({ link, title, src }, idx) => (
72+
{SponsorList.map(({ link, title, src, eventTitle }, idx) => (
5773
// eslint-disable-next-line react/no-array-index-key
5874
<div key={idx} className={clsx('col col--12')}>
5975
<div className="text--center">
60-
<a href={link} title={title} target="_blank" rel="noreferrer">
76+
<a
77+
href={link}
78+
title={title}
79+
target="_blank"
80+
rel="noreferrer"
81+
onClick={() => {
82+
onClickFrigadeBannerEventHandler(eventTitle)
83+
}}
84+
>
6185
<img src={src} alt={title} width={480} />
6286
</a>
6387
</div>

0 commit comments

Comments
 (0)