Google Analytics integration with automatic screen tracking, custom event logging, and user identification for Angular applications.
export function provideAnalytics(fn: () => Analytics): EnvironmentProviders;
export function getAnalytics(app?: FirebaseApp): Analytics;export class Analytics extends Analytics {}
export class AnalyticsInstances extends Array<Analytics> {}
export const analyticInstance$: Observable<Analytics>;
export class ScreenTrackingService {
// Automatic screen view tracking
}
export class UserTrackingService {
// User identification tracking
}/**
* Log custom event
* @param analytics - Analytics instance
* @param eventName - Event name
* @param eventParams - Optional event parameters
*/
export function logEvent(
analytics: Analytics,
eventName: string,
eventParams?: { [key: string]: any }
): void;
/**
* Set user ID for analytics
* @param analytics - Analytics instance
* @param id - User ID (null to clear)
*/
export function setUserId(analytics: Analytics, id: string | null): void;
/**
* Set user properties
* @param analytics - Analytics instance
* @param properties - User properties object
*/
export function setUserProperties(
analytics: Analytics,
properties: { [key: string]: any }
): void;
/**
* Set current screen name
* @param analytics - Analytics instance
* @param screenName - Screen name
* @param options - Optional screen parameters
*/
export function setCurrentScreen(
analytics: Analytics,
screenName: string,
options?: AnalyticsCallOptions
): void;
/**
* Check if Analytics is supported
* @returns Promise resolving to support status
*/
export function isSupported(): Promise<boolean>;import { Component, inject } from '@angular/core';
import { Analytics, logEvent, setUserId } from '@angular/fire/analytics';
@Component({
selector: 'app-analytics',
template: `...`,
})
export class AnalyticsComponent {
private analytics = inject(Analytics);
trackPurchase(itemId: string, value: number) {
logEvent(this.analytics, 'purchase', {
currency: 'USD',
value: value,
item_id: itemId
});
}
setUser(userId: string) {
setUserId(this.analytics, userId);
}
}