Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

amplitude-client-node

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

amplitude-client-node

Simple, no-dependency wrapper around Amplitude's HTTP API

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

amplitude-client-node

Build Status

A simple wrapper around Amplitude's Groups and HTTP (v2) APIs.

For legacy v1 HTTP API, use v0.2.0.

Features:

  • automatic, configurable retry with generated insert_id
  • TypeScript support
  • No dependencies
  • event tracking (/2/httpapi)
  • group identification (/groupidentify)
  • user identification (/identify)
  • there are tests
  • requires Node v8 or higher

Installation

npm install amplitude-client-node

Usage

const amplitude = require('amplitude-client-node');
// for typescript:
// import * as amplitude from 'amplitude-client-node';

const client = new amplitude.AmplitudeClient('api key', {
    // all keys are optional
    maxRetries: 3,
    timeoutMs: 2500,
    enabled: true, // disable sending of events, useful in dev
    endpoint: 'https://api.amplitude.com',
    appVersion: '1.2.3', // will set app_version in all outgoing events
    setTime: true, // will set time to Date.now() in all outgoing events
    logging: (level, message) => {
        console.log(`${level}: ${message}`);
    }
});

const myEvent = {
    event_type: 'user register',
    user_id: '12345',
    event_properties: {
        source: 'marketing site',
        whatever: 'you want',
    },
    groups: {
        teamId: '67890'
    }
};

client.track(myEvent)
    .then((result) => {
        console.log(`successfully sent event to amplitude: ${result.body.toString('utf8')}`);
    })
    .catch((err) => {
        console.error(`amplitude api call failed after ${err.response.retryCount} retries: ${err.message}`);
    });

Successful calls return an AmplitudeResponse object:

interface AmplitudeResponse<T> {
    statusCode: number;
    body: Buffer;
    start: Date;
    end: Date;
    requestOptions: https.RequestOptions;
    responseHeaders: http.IncomingHttpHeaders;
    succeeded: boolean;
    retryCount: number;
    requestData: T;
}

If all retries fail, or a non-retryable status code is returned from the Amplitude API, then an error object is thrown that has a response property that is set to the AmplitudeResponse object defined above.

Keywords

FAQs

Package last updated on 10 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc