Skip to content

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 with location and agent properties

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