AnalyticsClientFactory
Upgather Analytics / AnalyticsClientFactory
Class: AnalyticsClientFactory
Factory for creating AnalyticsClient instances.
Remarks
This factory class provides methods to create properly configured AnalyticsClient instances with appropriate SDK integration. It handles the configuration of authentication, rate limiting, circuit breaker, and other settings based on the provided configuration.
This is the recommended way to create AnalyticsClient instances, as it ensures that all required dependencies are properly configured.
Example
import {
AnalyticsClientFactory,
MetricType
} from '@upgather/analytics';
// Simple usage with just a base URL and auth token
const client = AnalyticsClientFactory.createClient(
'https://api.upgather.com/v1',
'your-auth-token'
);
// Advanced usage with configuration object
const clientWithConfig = AnalyticsClientFactory.createClient({
baseUrl: 'https://api.upgather.com/v1',
authToken: 'your-auth-token',
defaultEventId: 'aitalks26',
rateLimiting: {
enabled: true,
requestsPerSecond: 10
}
});
// Create a client for a specific event
const eventClient = AnalyticsClientFactory.createClientForEvent(
'aitalks26',
'https://api.upgather.com/v1'
);
Constructors
new AnalyticsClientFactory()
new AnalyticsClientFactory():
AnalyticsClientFactory
Returns
Methods
createClient()
staticcreateClient(configOrBaseUrl,authToken?):AnalyticsClient
Create a new AnalyticsClient with the specified configuration.
Parameters
configOrBaseUrl
Either a complete config object or the base URL
string | AnalyticsConfig
authToken?
string
Optional auth token (when using the baseUrl overload)
Returns
A fully configured AnalyticsClient instance
Remarks
This method creates a new AnalyticsClient with the specified configuration. It accepts either a complete configuration object or a base URL and auth token.
When providing just a baseUrl and authToken, a configuration object is created with default values for other settings.
createClientForEvent()
staticcreateClientForEvent(eventId,baseUrl?,authToken?):AnalyticsClient
Create a new AnalyticsClient specifically for a conference or event.
Parameters
eventId
string
The identifier for the conference or event
baseUrl?
string
Optional base URL for the API
authToken?
string
Optional auth token for API requests
Returns
A fully configured AnalyticsClient instance with the event ID set as default
Remarks
This method creates a client with the specified event ID as the default, which means you won't need to specify the eventId in subsequent tracking calls.
The eventId should be alphanumeric and can include hyphens, but should not include spaces or special characters.
This is particularly useful for event-specific apps or sites where all tracking will be for the same event.
Example
// Create a client for the AI Talks 2026 event
const client = AnalyticsClientFactory.createClientForEvent('aitalks26');
// Now you can track events without specifying the eventId each time
await client.trackEvent({
metricType: MetricType.pageview,
payload: { url: 'https://aitalks26.example.com/agenda' }
});
createSdkApiClient()
staticcreateSdkApiClient(config):ApiClient
Create the SDK API client with appropriate configuration.
Parameters
config
Configuration options
Returns
ApiClient
A configured ApiClient instance
Remarks
This method creates an ApiClient from the SDK with the specified configuration. It uses configureSdkFactory to create a properly configured factory, then uses that factory to create the ApiClient.
This method is used internally by AnalyticsClient but is public to allow advanced use cases where direct access to the ApiClient is needed.
Deprecated
Use createSdkApiClient from utils/apiClientFactory instead.