1.0.7 • Published 5 years ago

redux-segment-node v1.0.7

Weekly downloads
1,011
License
MIT
Repository
github
Last release
5 years ago

Redux Segment Node

Redux middleware for segment. This library was created with reference to analytics-react-native.

npm version Build Status

Installation

$ npm i -S redux-segment-node

Demo

# replace the `key` with your `Segment API key` in `config.json`
$ npm run dev
# and visit localhost:7777

Usage

// import { applyMiddleware, createStore } from 'redux';
import createSegmentTracker from 'redux-segment-node';

const segmentMiddleware = createSegmentTracker({
  key: 'API_KEY',
  flushAfter: 1000,
});

const middleware = applyMiddleware(segmentMiddleware);

// const store = createStore(/* ... */);

// identify (recommended: pass `userId` in `eventPayload`)
store.dispatch({
  type: 'SIGN_IN',
  analytics: {
    eventType: 'identify',
    eventPayload: {
      userId: 'UUID',
    },
  },
});

// track (required: pass `event` in `eventPayload`)
// If you pass the `signout` or `logout` as an `event` in `track` type,
// The `userId` will be removed.
store.dispatch({
  type: 'CLICK_CTA_BUTTON',
  analytics: {
    eventType: 'track',
    eventPayload: {
      event: 'Click CTA Button',
    },
  },
});

// page (recommended: pass `name` in `eventPayload`)
// screen (similar with `page`)
store.dispatch({
  type: 'VIEW_PAGE',
  analytics: {
    eventType: 'page', // or 'screen'
    eventPayload: {
      name: 'LANDING_PAGE',
    },
  },
});

// group (required: pass `groupId` in `eventPayload`)
store.dispatch({
  type: 'GROUP',
  analytics: {
    eventType: 'group',
    eventPayload: {
      groupId: 'UUID',
    },
  },
});

// alias (required: pass `userId` in `eventPayload`)
store.dispatch({
  type: 'ALIAS_USER',
  analytics: {
    eventType: 'alias',
    eventPayload: {
      userId: 'NEW_UUID',
    },
  },
});

Configuration

createSegmentTracker arguments

propertytyperemark
keystring(required)
platformstring(optional)one of android, ios or undefined
hoststring(optional)Host where reports will be sent. Useful for debug.
flushAtnumber(optional)The number of messages to enqueue before flushing.
flushAfternumber(optional)The number of milliseconds to wait before flushing the queue automatically.

Event Types (Segment API Specification)

  • identify: Can tie an user to their action and record traits about them.
  • track: Can track any actions that users perform.
  • page: Can record the page that users are stay in.
  • screen: Can record the screen that users are stay in. (for the mobile application)
  • group: Can associate the individual users with a group.
  • alias: Can merge two user identities.

Documentation for Segment

https://segment.com/libraries/node

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago