BFG Store Locator GA4 Custom Events
Written By Zoren Lumosbog
Last updated About 1 month ago
This document outlines all custom Google Analytics 4 (GA4) events tracked in the application, including their event names and associated parameters. This will help your analytics team map custom dimensions and create reports effectively.
Locator session parameters (on every custom event)
Every event sent through the locator analytics pipeline is merged with the locator analytics context before it is sent to GA4. These parameters are present on all of the custom events listed below (values may be empty strings when not applicable).
Product locator behavior: When the map loads a product locator session, the app sets this context from the loaded product so map_search, store_, map_, api_*, geocode_result, data_load_error, etc. all carry the same upc and sku for that session. On the general locator, locator_type is general and upc / sku are empty.
Reporting: Register locator_type, upc, and sku as event-scoped custom dimensions in GA4 if you need them in explorations and standard reports beyond DebugView.
1. product
Purpose: Fires once for a product locator session after analytics is enabled and the measurement snippet has been injected. Anchors the session to the active product.
Parameters: The product locator session parameters described above (locator_type, upc, sku).
When: Product locator only (locator_type = product). Not emitted for the general locator.
2. map_search
Purpose: Tracks user searches on the map view.
Parameters:
search_success(boolean):trueif results > 0, otherwisefalse.total_results(number): Count of results returned.zero_result(boolean):trueif no results returned.selected_filters(string): JSON-encoded object of selected filters.search_term(string): Search keyword entered by user.refined_search_count(number): Number of times the search was refined.
Plus product locator session parameters (locator_type, upc, sku).
3. store_impression
Purpose: Tracks when a store is counted as an impression in the locator list/map flow.
Parameters:
store_id(string): Dealer platform id (account_id) when present; otherwise the store’s numericidas a string.store_name(string): Store name.
Plus product locator session parameters.
Implementation note: The app deduplicates impressions by numeric store id so the same physical store is not re-sent on every filter tick within a session.
4. store_click
Purpose: Tracks when a store marker is clicked.
Parameters:
store_id(string): Same semantics asstore_impression.store_name(string): Store name.
Plus product locator session parameters.
5. store_details_view
Purpose: Tracks when a user views the store’s details (e.g. list or panel interaction).
Parameters:
store_id(string): Same semantics asstore_impression.store_name(string): Store name.
Plus product locator session parameters.
6. store_viewport_duration
Purpose: Tracks how long a store’s marker stayed in the viewport timing window before a click cleared the timer.
Parameters:
store_id(string): Same semantics asstore_impression.store_name(string): Store name.duration_seconds(number): Time (in seconds) the store marker was visible before the click, rounded.
Plus product locator session parameters.
7. map_interaction
Purpose: Tracks user interactions with the map.
Parameters:
interaction_type(string): Action type (e.g.zoom,pan).latitude(number): Map center latitude.longitude(number): Map center longitude.zoom_level(number): Map zoom level.zoom_result_count(number): Number of results visible at that interaction.
Plus product locator session parameters.
8. store_distance_analysis
Purpose: Tracks distance from the search origin to the selected store when a marker is clicked.
Parameters:
store_id(string): Same semantics asstore_impression.store_name(string): Store name.user_latitude(number): Origin latitude used for the calculation.user_longitude(number): Origin longitude used for the calculation.store_latitude(number): Store latitude.store_longitude(number): Store longitude.distance_km(number): Great-circle distance in kilometers (two decimal places).
Plus product locator session parameters.
9. map_filter_usage
Purpose: Tracks usage of map filters.
Parameters:
filter_combination(string): JSON of filters applied.filter_result_count(number): Results count with filters.filter_engagement(number): Engagement metric (e.g. whether any results).
Plus product locator session parameters.
10. map_control_usage
Purpose: Tracks user actions on map controls (zoom, reset view, etc.).
Parameters:
control_name(string): Name of control used (e.g.zoom_in,zoom_out,reset_view).control_zoom_level(number): Zoom level when the control was used.control_zoom_result_count(number): Result count at that zoom level.
Plus product locator session parameters.
11. geocode_result
Purpose: Tracks geocoding / location resolution outcomes.
Parameters:
success(boolean): Whether the geocode path succeeded.method(string): Method or channel identifier.query(string): Query or status string associated with the attempt.
Plus product locator session parameters.
12. api_response_time
Purpose: Tracks API performance for locator-related requests.
Parameters:
endpoint(string): Logical name of the API endpoint.duration_ms(number): Time taken in milliseconds.success(boolean): Whether the call succeeded.
Plus product locator session parameters.
13. data_load_error
Purpose: Tracks errors during data loading.
Parameters:
error_type(string): Type/category of the error.error_message(string): Description of the error.
Plus product locator session parameters.
14. api_quota_error
Purpose: Tracks quota or limit errors from external services (when used).
Parameters:
service(string): Service name.error_message(string): Description of the error.
Plus product locator session parameters.
Notes for report creation
For each parameter you want in GA4 reports, define a Custom dimension or Custom metric in GA4 admin (event-scoped for
upc,sku,locator_type, and store-related fields as needed).Use Explorations or event name filters to separate product vs general locator behavior; use
locator_typeand/orupc/skuto tie map behavior to the active product on product locators.Use GA4’s Exploration Reports or pivot-style analyses for grouped, event-specific metrics.