← Back to Events

Filter Applied

Also known as: filter_apply, Facet Selection, Refinement Applied, Faceted Navigation Filter, Product Filter Usage

EngagementeventE-commerce: Product Discovery & Merchandising (Search/Filters/PDP)E-commerce

Filter Applied is the filter_apply event, recorded when a shopper commits a facet or refinement (category, brand, size, colour, price band, rating, availability, fulfillment option) on a product listing, category or search results page, and it carries the filter dimension, the selected value, the resulting product count and the item_list_id of the list being refined. It is the behavioural basis for the Filter Applications metric and for every analysis of how faceted navigation narrows an assortment, exposes zero-result dead ends and shapes the path from list view to product view, cart and order.

Event Serialization

always

Business Use Case

["1️⃣ The Onsite Merchandising Manager reviews filter usage by filter_type and item_list_name every Monday, promotes the most-used facets to the top of the filter panel on each category, and removes facets that receive under 1% of refinements before the next assortment load.","2️⃣ The Search & Discovery Product Owner monitors filter_apply events returning search_results_count = 0 daily, and when a category and filter_value combination crosses the alert threshold raises a catalog attribution fix (missing size, colour or brand values in the product feed) with the Catalog team.","3️⃣ The UX Research team compares list-to-product-view and list-to-cart rates for sessions with and without a filter application after each filter panel redesign, and rolls back a mobile drawer variant when refinement volume or post-filter conversion falls against control.","4️⃣ The Category Buying team reads the price, size and brand filter_value distribution per category each quarter and uses the demand signal to adjust range depth, size curves and opening price points in the next buy."]

Business Criticality

High

Journey / Navigation Area

Discovery

Owning Function

Merchandising

Calculation Notes

["1️⃣ Fires when a refinement is committed and the listing has re-rendered with the new result set: on the checkbox, swatch or chip selection for instant-apply facets, and on the Apply or Show results button for drawer or modal filter panels (the default on mobile). Opening a facet group, expanding a More link, dragging a price slider without releasing it or typing in a facet search box never fires the event.","2️⃣ Serialization is always, one event per committed filter state change, not per click. Multi-select facets are debounced (300–500 ms) so that three sizes ticked in quick succession produce one event with filter_value as a pipe-delimited list; filters restored from the URL on page load, back/forward navigation, pagination and sort changes must not re-fire, and removing a filter is a separate interaction that does not reuse filter_apply.","3️⃣ Required parameters: filter_type (the facet dimension, e.g. brand, size, price), filter_value (the selected value or range), item_list_id and item_list_name (identical to the values sent on view_item_list and select_item for the same list, so the refined list stitches to the sibling Product List View and Product List Click events), page_type and search_results_count (products returned after the filter). Optional: search_term when the refinement is applied on a search results page, filter_count (active refinements after this one), filters (the full active filter state) and sort_order.","4️⃣ Values are sent as stable, normalised keys (brand_nike, size_uk_9, price_50_100), never as localised display labels or counts such as \"Nike (124)\"; price ranges are sent in the store currency as lower_upper bounds so bands aggregate across locales and merchandising copy changes.","5️⃣ Consent and PII: the event is analytics-storage gated and contains no personal data by design. Free-text inputs (a postcode typed into a store-availability or delivery filter, a text search inside a facet) must be truncated to outward code or dropped before collection, and filter_value must never carry a customer, loyalty or account identifier.","6️⃣ Common instrumentation mistakes: firing on every checkbox toggle, which inflates filter volume; firing on SEO landing pages whose URLs pre-apply facets, which counts navigation as refinement; sending search_results_count from the pre-filter list; and dropping item_list_id on the refined list, which breaks attribution of downstream select_item and add_to_cart events to the filtered context."]

Platform Events

PlatformEvent
Google Analytics 4filter_apply
AdobefilterApply

Data Mappings

W3 Data Layer
{
  "event": [
    {
      "eventInfo": {
        "eventName": "filter_apply",
        "type": "filter_apply"
      },
      "filter": {
        "filter_type": "brand",
        "filter_value": "brand_nike",
        "filter_count": 2,
        "filters": "brand:brand_nike;price:price_50_100",
        "sort_order": "relevance"
      },
      "listItem": {
        "item_list_id": "category_running_shoes",
        "item_list_name": "Category: Running Shoes"
      },
      "page": {
        "pageInfo": {
          "page_type": "category"
        }
      },
      "search": {
        "search_term": null,
        "search_results_count": 42
      }
    }
  ]
}
GA4 Data Layer
{
  "event": "filter_apply",
  "filter_type": "brand",
  "filter_value": "brand_nike",
  "item_list_id": "category_running_shoes",
  "item_list_name": "Category: Running Shoes",
  "page_type": "category",
  "search_results_count": 42,
  "search_term": null,
  "filter_count": 2,
  "filters": "brand:brand_nike;price:price_50_100",
  "sort_order": "relevance"
}
Adobe Client Data Layer
{
  "event": "filterApply",
  "filter_type": "brand",
  "filter_value": "brand_nike",
  "item_list_id": "category_running_shoes",
  "item_list_name": "Category: Running Shoes",
  "page_type": "category",
  "search_results_count": 42,
  "search_term": null,
  "filter_count": 2,
  "filters": "brand:brand_nike;price:price_50_100",
  "sort_order": "relevance"
}
XDM Mapping
{
  "eventType": "web.webinteraction.linkClicks",
  "web": {
    "webPageDetails": {
      "pageType": "category"
    },
    "webInteraction": {
      "name": "filterApply",
      "type": "other",
      "linkClicks": {
        "value": 1
      }
    }
  },
  "_experience": {
    "analytics": {
      "customDimensions": {
        "eVars": {
          "eVar1": "category_running_shoes",
          "eVar2": "Category: Running Shoes",
          "eVar3": "category",
          "eVar10": "brand",
          "eVar11": "brand_nike",
          "eVar12": "brand:brand_nike;price:price_50_100",
          "eVar13": "relevance",
          "eVar14": null
        }
      },
      "event1to100": {
        "event10": {
          "value": 1
        }
      }
    }
  },
  "_tenant": {
    "filter": {
      "filterCount": 2,
      "searchResultsCount": 42
    }
  }
}

Source Data

Digital Analytics (GA4)

Dependencies

Prerequisite: List the dependencies required for this Event

Report Attributes

filter_type filter_value item_list_name page_type search_term search_results_count device_category

Segment Eligibility

true

Governance

Data SensitivityInternal

Dimensions

Derived Dimensions

Derived Entities

Derived Metrics

Governance & Metadata

Created bydevyendarm
Created on9/21/2026
Last modified bydevyendarm
Last modified on9/21/2026
Version1.0.0
Validation stateqa passed
StatusPUBLISHED

GitHub

View related Pull Requestcatalog/events/filter-applied.yml

Community Discussion