Site Search
Also known as: search, Internal Search, Onsite Search, Site Search Executed, Product Search, Search Query
Site Search is the standard search event, recorded each time a shopper executes a query against the storefront's internal product search, whether by submitting the search box, pressing enter or selecting an autocomplete suggestion. It carries search_term, search_type, search_source and search_results_count, and it is the single source for Site Searches, Internal Search Term, Zero-Results Search Rate and Search-to-Purchase Conversion Rate. It is the canonical search event; Property Search is its Real Estate variant, which keeps the same search event and adds location and radius parameters.
Event Serialization
always
Business Use Case
["1️⃣ The Onsite Search and Merchandising team reviews the top 200 search terms every Monday and, for any term with search_results_count = 0 or a Search-to-Purchase Conversion Rate below the site average, adds synonyms, redirects or boosting rules in the search engine before the next weekly trading meeting.","2️⃣ The Merchandising Planner checks rising search terms each week against the assortment; a term that grows more than 50% week over week with no matching product is logged as a demand signal and taken to the buying team as a range-gap request for the next buying cycle.","3️⃣ The Product Manager for discovery compares search usage and zero-result share by search_type and device category after every release of the autocomplete or search-box component, and rolls back or iterates the change when suggestion-driven searches or search-led orders fall against the prior four weeks.","4️⃣ The Content and SEO team takes high-volume internal search terms that land on thin result sets each month and briefs new category landing pages and buying guides around them, then tracks whether those terms move from search to direct category navigation."]
Business Criticality
High
Journey / Navigation Area
Discovery
Owning Function
Merchandising
Calculation Notes
["1️⃣ Fires once per executed query, at the moment the search service returns its response and before the results list renders, so search_results_count reflects what the shopper was actually shown. It does not fire on keystrokes, on autocomplete panel impressions, on pagination, on sort changes or on facet refinements of an existing result set; refinements belong to Filter Applied and the rendered results grid to Product List View (view_item_list with item_list_id \"search_results\").","2️⃣ Serialization is always, with one dedupe rule: an identical normalised search_term + search_type pair re-emitted within 2 seconds on the same page (double submit, enter plus button click, SPA re-render or back-forward cache restore) is suppressed client-side, and a reload of a search results URL sets is_refire = true so the query is not counted as a new search. A shopper who deliberately repeats a query after navigating away fires a new event.","3️⃣ Required parameters: search_term (trimmed, lower-cased, internal whitespace collapsed, truncated to 100 characters), search_type (\"keyword\", \"suggestion\", \"recent\" or \"voice\") and search_results_count as an integer that is sent as 0 on a null result set, never omitted or sent as an empty string, because Zero-Results Search Rate depends on it. Optional: search_source (header, mobile_menu, no_results_page, results_page), search_scope (all or a category id when the query is restricted to a department), search_term_original when the engine auto-corrects the query, and page_type of the page where the search was initiated.","4️⃣ Consent and PII: free-text queries regularly contain email addresses, phone numbers, postcodes and order numbers. The term is passed through the same redaction pattern used for page_location (email, phone and payment-card patterns replaced with [redacted]) before it enters the data layer, and the event is sent only under analytics_storage granted; with consent denied, the modelled cookieless ping carries no search_term.","5️⃣ Common instrumentation mistake: running GA4 enhanced-measurement site search (view_search_results, triggered by a URL query parameter) alongside this explicit push double-counts every query and loses search_results_count. Disable the enhanced-measurement toggle, or map it off in the tag manager, once the explicit event is live; equally, never fire search from the results template on page load, which inflates volume with every pagination and product-page back navigation.","6️⃣ Timing and attribution: the event must reach the collector before any redirect. Where an exact-match query or a keyword redirect sends the shopper straight to a product or category page, push the event with search_results_count = 1 and search_type unchanged before navigation, using transport beacon, otherwise the highest-intent searches vanish from the report and Search-to-Purchase Conversion Rate is understated.","7️⃣ Value action by industry: E-commerce and Retail use search against the product catalogue as specified here; Media uses the same event against the content library (search_scope = content type); SaaS uses it for in-app and help-centre search; Real Estate specialises it as Property Search, adding location and radius parameters. Keep the event name search in every case and express the difference through search_scope and search_type, never through a renamed event."]
Platform Events
| Platform | Event |
|---|---|
| Google Analytics 4 | search |
| Adobe | search |
Data Mappings
W3 Data Layer
{
"event": [
{
"eventInfo": {
"eventName": "search"
},
"search": {
"search_term": "running shoes",
"search_type": "keyword",
"search_results_count": 24,
"search_source": "header",
"search_scope": "all",
"search_term_original": "runnign shoes",
"page_type": "search_results",
"is_refire": false
}
}
]
}GA4 Data Layer
{
"event": "search",
"search_term": "running shoes",
"search_type": "keyword",
"search_results_count": 24,
"search_source": "header",
"search_scope": "all",
"search_term_original": "runnign shoes",
"page_type": "search_results",
"is_refire": false
}Adobe Client Data Layer
{
"event": "search",
"search": {
"search_term": "running shoes",
"search_type": "keyword",
"search_results_count": 24,
"search_source": "header",
"search_scope": "all",
"search_term_original": "runnign shoes",
"page_type": "search_results",
"is_refire": false
}
}XDM Mapping
{
"eventType": "search",
"_experience": {
"analytics": {
"customDimensions": {
"eVars": {
"searchTerm": "running shoes",
"searchType": "keyword",
"searchSource": "header",
"searchScope": "all",
"searchTermOriginal": "runnign shoes"
},
"props": {
"pageType": "search_results"
}
},
"event1to100": {
"event1": {
"value": 24
}
}
}
},
"_<tenant>": {
"search": {
"isRefire": false
}
}
}Source Data
Digital Analytics (GA4)
Dependencies
Prerequisite: List the dependencies required for this Event
Events:
Dimensions:
Report Attributes
Internal Search Term Search Type Search Source Search Scope Search Results Count Page Type Device Category Traffic Source
Segment Eligibility
true
Governance
Dimensions
Related Dimensions
Derived Dimensions
Derived Entities
Derived Metrics
Governance & Metadata
GitHub
catalog/events/site-search.yml