# segmentio/analytics.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/segmentio-analytics-js).**

4,752 stars · 723 forks · JavaScript · MIT · archived

## Links

- GitHub: https://github.com/segmentio/analytics.js
- Homepage: https://segment.com/libraries/analytics.js
- awesome-repositories: https://awesome-repositories.com/repository/segmentio-analytics-js.md

## Description

This project is a JavaScript analytics integration library and client-side event collector designed to record user behavior and distribute that data to multiple third-party analytics destinations through a unified interface. It functions as a customer data platform that identifies users, manages traits, and routes event streams to various analytics tools and data warehouses.

The library distinguishes itself through a multi-destination event router and HTTP tracking middleware that intercepts and modifies event payloads before transmission. It implements identity management primitives for user identification, identity aliasing to combine profiles, and cross-subdomain tracking by storing identifiers on the top-level domain.

The system covers a broad range of capabilities including user interaction monitoring for page views, form submissions, and link clicks, as well as marketing campaign tracking via UTM parameter extraction. For reliability, it utilizes event request batching, local storage-based retry queues with exponential backoff, and browser keepalive flags to ensure data capture during page redirects.

The library also supports tracking pixels for environments that restrict JavaScript execution and provides mechanisms for integration URL obfuscation to prevent request blocking.

## Tags

### Data & Databases

- [Multi-Destination Data Routing](https://awesome-repositories.com/f/data-databases/multi-destination-data-routing.md) — Implements a unified interface to route collected customer data to multiple third-party analytics destinations simultaneously. ([source](https://segment.io/libraries))
- [Multi-Destination Event Routing](https://awesome-repositories.com/f/data-databases/multi-destination-event-routing.md) — Routes a single stream of event data to multiple external analytics destinations through a unified interface.
- [Behavioral Data Collection](https://awesome-repositories.com/f/data-databases/behavioral-data-collection.md) — Collects behavioral user interaction events from digital interfaces for distribution to analytics tools. ([source](https://cdn.jsdelivr.net/gh/segmentio/analytics.js@master/README.md))
- [Customer Data Management](https://awesome-repositories.com/f/data-databases/customer-data-management.md) — Identifies unique users and associates them with specific traits and historical identities across sessions.
- [Customer Data Platforms](https://awesome-repositories.com/f/data-databases/customer-data-platforms.md) — Functions as a customer data platform for gathering user signals and creating a unified behavioral view.
- [Third-Party Data Connectors](https://awesome-repositories.com/f/data-databases/external-data-integrations/third-party-data-connectors.md) — Provides connectors to import user and event data from cloud applications for distribution to analytics tools. ([source](https://segment.io/docs/tutorials/quickstart-analytics.js))
- [User Identification](https://awesome-repositories.com/f/data-databases/user-identification.md) — Links users and their actions to a unique ID and a set of descriptive traits. ([source](https://segment.io/docs/libraries/analytics.js))
- [Marketing Analytics](https://awesome-repositories.com/f/data-databases/marketing-analytics.md) — Tracks marketing campaign effectiveness by extracting UTM parameters from URLs and recording page views.

### Content Management & Publishing

- [Page View Tracking](https://awesome-repositories.com/f/content-management-publishing/page-view-tracking.md) — Records page visits and allows the attachment of custom categories and properties to describe the view. ([source](https://segment.io/docs/libraries/analytics.js))

### Networking & Communication

- [Event Tracking APIs](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/api-management-integration/api-integrations/server-side/event-tracking-apis.md) — Provides a tracking API that enables analytics event transmission from any environment capable of making HTTP requests. ([source](https://segment.io/docs/tutorials/quickstart-analytics.js))
- [Fetch Keepalive Deliveries](https://awesome-repositories.com/f/networking-communication/fetch-keepalive-deliveries.md) — Utilizes the browser fetch keepalive flag to ensure analytics data delivery during page unloads and redirects.

### Software Engineering & Architecture

- [Event Middleware Systems](https://awesome-repositories.com/f/software-engineering-architecture/event-middleware-systems.md) — Uses a sequence of middleware functions to intercept and modify event data before dispatching it to destinations.
- [Stream Event Interception](https://awesome-repositories.com/f/software-engineering-architecture/stream-event-interception.md) — Employs middleware to intercept, modify, or drop event payloads before they reach their final destinations. ([source](https://segment.io/docs/libraries/analytics.js))
- [Request Batching](https://awesome-repositories.com/f/software-engineering-architecture/request-batching.md) — Groups multiple individual event calls into a single HTTP request to reduce network overhead.
- [Client-Side Persistence](https://awesome-repositories.com/f/software-engineering-architecture/retry-state-tracking/delivery-retry-tracking/client-side-persistence.md) — Implements a local storage-based retry queue with exponential backoff to prevent data loss during network outages. ([source](https://segment.io/docs/libraries/analytics.js))

### System Administration & Monitoring

- [Behavioral Event Collectors](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/client-side-log-collectors/behavioral-event-collectors.md) — Provides a browser-based tool for recording page views, form submissions, and link clicks.
- [User Interaction Event Logging](https://awesome-repositories.com/f/system-administration-monitoring/user-interaction-event-logging.md) — Logs specific user actions and includes optional properties to provide context for behavioral analysis. ([source](https://segment.io/docs/libraries/analytics.js))
- [User Interaction Recording](https://awesome-repositories.com/f/system-administration-monitoring/user-interaction-recording.md) — Logs specific user actions like form submissions and link clicks for behavioral analytics.

### Web Development

- [Analytics Integration Libraries](https://awesome-repositories.com/f/web-development/analytics-integration-libraries.md) — Provides a JavaScript library for collecting user behavior and distributing event data to multiple analytics destinations.
- [Cross-Subdomain Identity Tracking](https://awesome-repositories.com/f/web-development/cookie-management/cross-subdomain-identity-tracking.md) — Tracks unique users across subdomains by storing anonymous identifiers on the top-level domain.
- [Web Analytics Integrations](https://awesome-repositories.com/f/web-development/web-analytics-integrations.md) — Integrates web applications with analytics services to track user behavior and page views.
- [Async Request Completion](https://awesome-repositories.com/f/web-development/async-request-completion.md) — Uses the browser keepalive flag to guarantee analytics data transmission completes during hard page redirects. ([source](https://segment.io/docs/libraries/analytics.js))
- [Persistent Retry Queues](https://awesome-repositories.com/f/web-development/http-client-wrappers/retry-and-backoff-logic/persistent-retry-queues.md) — Persists failed network requests in the browser's local storage and attempts redelivery with exponential backoff.
- [UTM Parameter Parsing](https://awesome-repositories.com/f/web-development/query-parameter-extraction/utm-parameter-parsing.md) — Automatically reads marketing campaign data from URL query strings and attaches it to event payloads. ([source](https://segment.io/docs/libraries/analytics.js))
- [HTTP Middleware Pipelines](https://awesome-repositories.com/f/web-development/request-middleware-pipelines/http-middleware-pipelines.md) — Implements a middleware pipeline to modify event payloads and add custom headers before API transmission.

### Part of an Awesome List

- [Reverse ETL](https://awesome-repositories.com/f/awesome-lists/data/reverse-etl.md) — Synchronizes processed data from cloud warehouses back into operational marketing and analytics tools. ([source](https://segment.io/docs/tutorials/quickstart-analytics.js))

### Development Tools & Productivity

- [Link Interaction Tracking](https://awesome-repositories.com/f/development-tools-productivity/external-link-openers/external-link-blockers/external-link-detectors/link-interaction-tracking.md) — Logs clicks on hyperlinks and delays page navigation to ensure analytics data is transmitted. ([source](https://segment.io/docs/libraries/analytics.js))

### DevOps & Infrastructure

- [Integration Filtering](https://awesome-repositories.com/f/devops-infrastructure/event-filtering-rules/filtered-event-persistence/polled-event-filters/javascript-event-filters/integration-filtering.md) — Provides the ability to enable or disable specific third-party tool integrations for individual event calls. ([source](https://segment.io/docs/libraries/analytics.js))

### Security & Cryptography

- [Cross-Subdomain Session Sharing](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers/cross-subdomain-session-sharing.md) — Maintains consistent user identity across subdomains by storing anonymous IDs on the top-level domain. ([source](https://segment.io/docs/libraries/analytics.js))
- [Identity Aliasing](https://awesome-repositories.com/f/security-cryptography/user-identity-management/identity-aliasing.md) — Combines separate user identities into a single profile to maintain a consistent behavioral history. ([source](https://segment.io/docs/libraries/analytics.js))

### User Interface & Experience

- [Submission Tracking](https://awesome-repositories.com/f/user-interface-experience/form-submission-management/submission-tracking.md) — Binds tracking calls to form submissions and delays redirection until the event is successfully delivered. ([source](https://segment.io/docs/libraries/analytics.js))
