Skip to main content
Analytics tags are string labels for categorizing search queries. Searches with the same tag form segments. By comparing analytics data based on segments, you can identify discrepancies that may not be visible in the overall view.

Examples for segments

Examples for segments include:
SegmentDescription
PlatformCompare mobile and desktop searches.
User cohortsCompare different user groups with data from their accounts, such as gender and age.
Search languageCompare different search languages.
RegionCompare different geographical regions.

Segments by platform

To determine whether a user searches from a mobile device or a desktop, you typically need to check the browser’s user agent. Since these are constantly changing, the following function is just an illustration:
JavaScript
function getPlatform() {
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
    navigator.userAgent,
  )
    ? "mobile"
    : "desktop";
}
You can add the result of this function to the analyticsTags parameter.

Segments by first or returning users

To determine if a user is new or returning, it’s best to obtain this information from your backend. If you don’t store this information, you can use cookies, local storage, or session storage. However, cookies aren’t completely reliable as users can delete or block them. Cookies also don’t work across multiple devices. To use a cookie to check if a user is returning or not, use the following code:
JavaScript
const decodedCookies = decodeURIComponent(document.cookie).split(";");

const { myCookie: isReturning } = Object.assign(
  {},
  ...decodedCookies.map((cookie) => {
    const [key, value] = cookie.split("=");
    return { [key.trim()]: value };
  }),
);

const visitingStatus = isReturning ? "Returning" : "New";

if (!isReturning) {
  document.cookie = "myCookie=1";
}
Then, you can add visitingStatus to the analyticsTags parameter.
You may need the user’s consent before storing information on the user’s device, including cookies, local storage, and session storage.

Add analytics tags in InstantSearch

Add your tags to the analyticsTags parameter in a configure widget, or add it to the search parameters of your search query:
instantsearch.widgets.configure({
  analyticsTags: [YourAnalyticsTags],
});

Add analytics tags in API clients

Add your tags to analyticsTags as an extra search parameter:
$results = $index->search('', [
  'analyticsTags' => [
    YourAnalyticsTags
  ]
]);

View segmented analytics

To view segmented analytics, see Search analytics in the Algolia dashboard.