Skip to main content
Sends a search submit event to Constructor.io’s API. This tracks when a user submits a search query by pressing Enter or clicking a submit button.

Method Signature

constructorio.tracker.trackSearchSubmit(term, parameters, networkParameters?)

Parameters

term
string
required
The search term that was submitted
parameters
object
required
Additional parameters for the tracking event
networkParameters
object
Optional parameters for the network request

Returns

Returns true on success or an Error object if validation fails.

Examples

Basic Example

import ConstructorIOClient from '@constructor-io/constructorio-client-javascript';

const constructorio = new ConstructorIOClient({
  apiKey: 'YOUR_API_KEY',
});

// Track search submission
constructorio.tracker.trackSearchSubmit(
  'T-Shirt',
  {
    originalQuery: 'Shirt',
  }
);

Example with Group

// Track search within a specific category/group
constructorio.tracker.trackSearchSubmit(
  'T-Shirt',
  {
    originalQuery: 'Shirt',
    groupId: '88JU230',
    displayName: 'apparel',
  }
);

Example with Analytics Tags

// Track search with custom analytics data
constructorio.tracker.trackSearchSubmit(
  'running shoes',
  {
    originalQuery: 'shoes',
    analyticsTags: {
      campaign: 'summer-sale',
      source: 'email',
      device: 'mobile',
    },
  }
);

Integration Example

// Track when user submits search form
const searchForm = document.querySelector('#search-form');
const searchInput = document.querySelector('#search-input');

searchForm.addEventListener('submit', (e) => {
  e.preventDefault();
  const searchTerm = searchInput.value;
  
  constructorio.tracker.trackSearchSubmit(
    searchTerm,
    {
      originalQuery: searchTerm,
    }
  );
  
  // Perform search...
});

When to Use

Call trackSearchSubmit() when:
  • A user presses Enter in a search input field
  • A user clicks a search submit button
  • A search query is programmatically submitted
  • A user modifies and resubmits a search

Important Notes

  • The term parameter should be the final submitted search term
  • The originalQuery parameter should match what the user typed
  • If the term is autocorrected or modified, originalQuery captures the user’s actual input
  • This event should be tracked before redirecting to search results

Relationship with Search Results

After tracking trackSearchSubmit(), you should also track:
  1. trackSearchResultsLoaded - When results are displayed
  2. trackSearchResultClick - When user clicks a result

API Endpoint

This method sends a GET request to:
/autocomplete/{term}/search

Build docs developers (and LLMs) love