Skip to content
Keep user sessions between visits
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.babelrc
.codeclimate.yml
.eslintrc
.flowconfig
.gitignore
.prettierignore
.prettierrc
.travis.yml
LICENSE
README.md
jest.config.js
package-lock.json
package.json

README.md

web-session

NPM version build status Maintainability Test Coverage

How many sessions does it takes for an user to create an account? Or purchase something? Now you can track these metrics!

What is a session anyway?
This is how a web session is defined by Google Analytics:

a period of time (30 minutes by default) that is extended automatically upon user interaction.

How does it ends?

  • after 30 minutes of inactivity.
  • at midnight (based on your GA settings, not client timezone).
  • campaing query change (utm or gclid)

A simple demo for the react implementation of this library that you use to inspect the session data:

Edit react-web-session demo

Usage

npm install --save web-session

And create a new session:

import WebSession from 'web-session';

const webSession = new WebSession(options);

// After a location change or event dispatched to GA, call this function to update the session.
webSession.update();

You can pass an object to update() with custom data you might want in your session.

Options

callback {function}: A function to receive the session data on every update.

duration {number}: The duration of the session in minutes. Defaults to 30

historySize {number}: The max number of visits's history to keep. Defaults to 50

name {string}: The name of the session in localStorage. Defaults to WebSessionData

timezone {number}: The timezone used in GA. Defaults to UTC

Stored data

{
  origin: {
    createdAt: '2000-01-01T00:15:00.000Z',
    href: '/',
    referrer: ''
  },
  current: {
    campaign: {},
    expiresAt: '2000-01-01T00:15:00.000Z',
    href: '/',
    referrer: ''
  },
  data: { // if using the optional data parameter with update
    something: true
  }
  history: [ // the different campaigns the user has entered in your site
    {
      createdAt: '2000-01-01T00:15:00.000Z',
      href: '/cpc?utm_source=cpc',
      referrer: ''
    },
    ...
  ],
  visits: 1
}

References

Counting web sessions with JavaScript by @Swizec
How a web session is defined in Analytics

You can’t perform that action at this time.