diff --git a/src/components/IotHub/IotHubHero.astro b/src/components/IotHub/IotHubHero.astro index 00cd21993..98d2ab208 100644 --- a/src/components/IotHub/IotHubHero.astro +++ b/src/components/IotHub/IotHubHero.astro @@ -673,6 +673,7 @@ const highlights = [ import { IOT_HUB_API_URL, IOT_HUB_CATEGORIES, + DEFAULT_IOT_HUB_SORT_ID, type IotHubItemType, type ListingView, } from '@models/iot-hub'; @@ -823,6 +824,26 @@ const highlights = [ renderState(body!, 'loading', text); } + let lastTrackedQuery: string | null = null; + + function trackQuery(term: string, resultsCount: number): void { + const trimmed = term.trim(); + if (!trimmed) { + lastTrackedQuery = null; + return; + } + if (trimmed === lastTrackedQuery) return; + lastTrackedQuery = trimmed; + window.dataLayer?.push({ + event: 'iot_hub_query', + search_term: trimmed, + search_filters: '', + search_results_count: resultsCount, + search_surface: 'all', + search_sort: DEFAULT_IOT_HUB_SORT_ID, + }); + } + function runSearch(text: string, force = false): void { if (!force && text === lastQuery) return; lastQuery = text; @@ -833,6 +854,7 @@ const highlights = [ fetchListings(text, abort.signal) .then((items) => { isLoading = false; + trackQuery(text, items.length); if (items.length === 0) renderState(body!, 'empty', text); else renderGroups(body!, groupByCategory(items)); })