Appearance
Analytics Store ​
File Information ​
- Path:
store/analytics/index.js - Namespace:
analytics - Purpose: Manages analytics tracking state and transaction data
Overview ​
The Analytics Store manages state related to analytics tracking, including user agent and location data, email tracking, and event queues. It works in conjunction with the analytics mixin to track user interactions and provide insights data.
State ​
javascript
{
userAgentAndLocation: {
location: {}, // Geographic location data
agent: {} // Browser and OS information
},
emailTracking: {}, // Email-related tracking data
eventQueue: [] // Queued analytics events
}Getters ​
userAgentAndLocation ​
Returns browser and location data:
- Contains geographic location information
- Contains browser and OS information
- Used for analytics event tracking
Returns: Object with location and agent properties
eventQueue ​
Returns queued analytics events:
- Array of pending analytics events
- Events waiting to be sent
- Used for batch processing
Returns: Array of event objects
Mutations ​
SET_USER_AGENT_AND_LOCATION ​
Sets user agent and location data:
- Updates browser information
- Updates geographic location
- Called when data is fetched
Parameters:
data(Object): Object withlocationandagentproperties
SET_EMAIL_TRACKING ​
Sets email tracking data:
- Updates email-related tracking
- Used for email analytics
Parameters:
data(Object): Email tracking data
ADD_TO_EVENT_QUEUE ​
Adds event to queue:
- Queues analytics event
- Used for batch processing
Parameters:
event(Object): Analytics event object
CLEAR_EVENT_QUEUE ​
Clears event queue:
- Removes all queued events
- Called after processing
Actions ​
fetchUserAgentAndLocation({ commit }) ​
Fetches browser and location data:
- Gets browser information
- Gets geographic location
- Updates store state
Returns: Promise resolving to user agent and location data
addTransactionActivity({ commit }, transaction) ​
Adds transaction to queue:
- Queues transaction for analytics
- Used for tracking user actions
Parameters:
transaction(Object): Transaction data object
getInsightsTransactionData({ state }, params) ​
Retrieves insights transaction data:
- Gets analytics data for insights
- Used for analytics dashboard
- Returns transaction data
Parameters:
params(Object): Query parameters for insights
Returns: Promise resolving to insights transaction data
Usage Examples ​
Fetch User Agent and Location ​
javascript
// In component
async mounted() {
await this.$store.dispatch('analytics/fetchUserAgentAndLocation')
const data = this.$store.getters['analytics/userAgentAndLocation']
}Add Transaction Activity ​
javascript
// In component
this.$store.dispatch('analytics/addTransactionActivity', {
event: 'view_asset',
asset_id: 123,
timestamp: Date.now()
})Get Insights Data ​
javascript
// In component
const insightsData = await this.$store.dispatch(
'analytics/getInsightsTransactionData',
{
workspace_id: this.workspaceId,
start_date: '2024-01-01',
end_date: '2024-01-31'
}
)Integration Points ​
- Analytics Mixin: Event tracking
- Analytics Feature: Insights display
- Components: Analytics event dispatch
- API: Analytics endpoints
Notes for Development ​
- Store manages analytics state globally
- User agent and location fetched once
- Event queue for batch processing
- Insights data retrieved on demand
- Works with analytics mixin
Related Documentation ​
- Analytics Feature - Complete analytics system
- Common Functions Mixin - Analytics dispatch
- Store Overview - Store documentation