or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

ai.mdanalytics.mdapp-check.mdauth-guard.mdauthentication.mddata-connect.mddatabase.mdfirebase-app.mdfirestore.mdfunctions.mdindex.mdmessaging.mdperformance.mdremote-config.mdstorage.mdvertexai.md
tile.json

analytics.mddocs/

Analytics

Google Analytics integration with automatic screen tracking, custom event logging, and user identification for Angular applications.

Capabilities

Standalone Provider

export function provideAnalytics(fn: () => Analytics): EnvironmentProviders;
export function getAnalytics(app?: FirebaseApp): Analytics;

Angular Services

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
}

Analytics Functions

/**
 * 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>;

Usage Examples

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);
  }
}