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