diff --git a/website/components/downloader/cards/index.jsx b/website/components/downloader/cards/index.jsx
index ab771cfb00..d2c6de175a 100644
--- a/website/components/downloader/cards/index.jsx
+++ b/website/components/downloader/cards/index.jsx
@@ -1,6 +1,9 @@
import Tabs from '@hashicorp/react-tabs'
-
-import { prettyOs, prettyArch } from 'components/downloader/utils/downloader'
+import {
+ prettyOs,
+ prettyArch,
+ trackDownload,
+} from 'components/downloader/utils/downloader'
import styles from './style.module.css'
export default function DownloadTabs({
@@ -58,6 +61,10 @@ function Cards({
const hasPackageManager = Boolean(packageManagers)
const hasMultiplePackageManagers = Array.isArray(packageManagers)
+ function handleArchClick(arch) {
+ return () => trackDownload('boundary', version, os, arch)
+ }
+
return (
<>
{version}
{Object.entries(arches).map(([arch, url]) => (
-
+
{prettyArch(arch)}
))}
diff --git a/website/components/downloader/release-information/index.jsx b/website/components/downloader/release-information/index.jsx
index 2eb1344e7a..2e2562cb74 100644
--- a/website/components/downloader/release-information/index.jsx
+++ b/website/components/downloader/release-information/index.jsx
@@ -4,6 +4,7 @@ import Dropdown from 'components/downloader/dropdown'
import {
prettyArch,
prettyOs,
+ trackDownload,
sortPlatforms,
getVersionLabel,
sortAndFilterReleases,
@@ -85,7 +86,13 @@ export default function ReleaseInformation({
{prettyOs(os)}
{Object.entries(release).map(([arch, file]) => (
-
+
+ trackDownload('boundary', version, os, arch)
+ }
+ >
{prettyArch(arch)}
))}
diff --git a/website/components/downloader/utils/downloader.js b/website/components/downloader/utils/downloader.js
index 06d4b91d45..f9dd60a3f7 100644
--- a/website/components/downloader/utils/downloader.js
+++ b/website/components/downloader/utils/downloader.js
@@ -121,3 +121,19 @@ export function sortPlatforms(releaseData) {
}, {})
)
}
+
+export function trackDownload(product, version, _os, _arch) {
+ const os = prettyOs(_os)
+ const arch = prettyArch(_arch)
+
+ if (window.analytics) {
+ window.analytics.track('Download', {
+ category: 'Button',
+ label: `${product} | v${version} | ${os} | ${arch}`,
+ version,
+ os,
+ architecture: arch,
+ product,
+ })
+ }
+}