Although Algolia provides analytics tailored to your search implementation,
you might want to send your search data to your existing analytics tools.
To do this, implement some custom middleware:
Create the middleware to send events
In the event listener, send events to Google Analytics.
This example debounces the event for 3 seconds but adjust this to your needs.function googleAnalyticsMiddleware() {
let timer;
const sendEventDebounced = () => {
clearTimeout(timer);
timer = setTimeout(() => {
gtag('event', 'page_view', {
page_location: window.location.pathname + window.location.search,
});
}, 3000);
});
return {
onStateChange() {
sendEventDebounced();
},
subscribe() {},
unsubscribe() {},
};
}
Inject the middleware into the InstantSearch lifecycle
<template>
<ais-instantsearch
:search-client="searchClient"
index-name="instant_search"
:middlewares="middlewares"
>
<!-- ... -->
</ais-instantsearch>
</template>
<script>
export default {
data() {
return {
searchClient,
middlewares: [googleAnalyticsMiddleware],
};
},
}
</script>
Last modified on January 28, 2026