1.2.7 • Published 1 year ago

rabbit-analytics v1.2.7

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Analytics Service Library

This library provides an abstract AnalyticsService class and two concrete implementations: ShopifyAnalyticsService and WooCommerceAnalyticsService. It includes a factory (AnalyticsFactory) to instantiate the appropriate analytics service based on the platform.

Installation

Install the package using npm:

npm install rabbit-analytics

Usage

Importing the Library

First, import the necessary classes from the package:

const AnalyticsFactory = require('rabbit-analytics');

Creating an Analytics Service

Use the AnalyticsFactory to create an instance of the analytics service for a specific platform:

const analyticsService = AnalyticsFactory.create('Shopify');

Supported platforms:

  • Shopify
  • WooCommerce

Methods

Each analytics service implements the following methods:

track(event, properties)

Tracks a specific event with optional properties.

const analyticsService = AnalyticsFactory.create('Shopify');

analyticsService.track('Product Viewed', {
  productId: '12345',
  productName: 'Cool T-Shirt',
  category: 'Apparel',
});

Parameters:

  • event (string): The name of the event to track.
  • properties (object): An optional object containing additional event properties.

Example:

// Tracking a purchase event
analyticsService.track('Purchase Made', {
  orderId: '98765',
  amount: 49.99,
  currency: 'USD',
});

identify(userId, traits)

Identifies a user with a unique ID and optional traits.

const analyticsService = AnalyticsFactory.create('WooCommerce');

analyticsService.identify('user-123', {
  email: 'user@example.com',
  name: 'John Doe',
  subscriptionLevel: 'Premium',
});

Parameters:

  • userId (string): The unique ID of the user.
  • traits (object): An optional object containing user traits.

Example:

// Identifying a user with additional traits
analyticsService.identify('user-456', {
  email: 'jane.doe@example.com',
  name: 'Jane Doe',
  registeredAt: '2024-01-01',
});

page(pageName)

Tracks page views with optional properties.

const analyticsService = AnalyticsFactory.create('Shopify');

analyticsService.page('Homepage');

Parameters:

  • pageName (string): The name of the page being viewed. If not provided, the current document title will be used.

Example:

// Tracking a product page view
analyticsService.page('Product Detail Page');

Implementation Details

Abstract AnalyticsService Class

The AnalyticsService class is an abstract base class with the following methods:

  • track(event, properties): Should be implemented by subclasses to track events.
  • identify(userId, traits): Should be implemented by subclasses to identify users.
  • page(pageName): Should be implemented by subclasses to track page views.

Concrete Implementations

ShopifyAnalyticsService

Implements the AnalyticsService methods for Shopify.

  • track(event, properties): Logs events with Shopify-specific properties.
  • identify(userId, traits): Logs user identification with Shopify-specific traits.
  • page(pageName): Logs page visits with Shopify-specific properties.

WooCommerceAnalyticsService

Implements the AnalyticsService methods for WooCommerce.

  • track(event, properties): Logs events with WooCommerce-specific properties.
  • identify(userId, traits): Logs user identification with WooCommerce-specific traits.
  • page(pageName): Logs page visits with WooCommerce-specific properties.

Factory Class

AnalyticsFactory

  • create(platform): Creates an instance of the analytics service for the specified platform. Supported platforms are Shopify and WooCommerce.

Example:

const shopifyService = AnalyticsFactory.create('Shopify');
const wooCommerceService = AnalyticsFactory.create('WooCommerce');

License

This project is licensed under the MIT License - see the LICENSE file for details.

This Markdown content provides a complete and detailed overview of how to use the analytics service library. You can copy this content into a `README.md` file in your project directory.
1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.0

1 year ago