Socket
Book a DemoInstallSign in
Socket

ndla-tracker

Package Overview
Dependencies
Maintainers
4
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ndla-tracker

A simple library for tracking NDLA applications

latest
Source
npmnpm
Version
0.2.1
Version published
Weekly downloads
3
-25%
Maintainers
4
Weekly downloads
 
Created
Source

ndla-tracker

NDLA's tracker for google tag manager.

Installation

# Using npm:
$ npm install ndla-tracker --save

# Using yarn:
$ yarn add ndla-tracker

Usage

To use the tracker you need to configure the tracker with correct google analytics id, google tag manager id and a listener for when the history changes:

import createHistory from 'history/createBrowserHistory';
import { configureTracker } from 'ndla-tracker';

const browserHistory = createHistory();

configureTracker({
  listen: browserHistory.listen,
  gaTrackingId: 'someGoogleAnalyticsId',
  googleTagManagerId: 'someGoogleTagMangerId',
});

ReactDOM.render(
  ...,
  document.getElementById('app'),
);

Tracking can be used in two different ways. Either with a default React component called HelmetWithTracker:

import { HelmetWithTracker } from 'ndla-tracker';

const SomeTrackableComponent = ({title}) => {
  return (
    <div>
      <HelmetWithTracker title={title} />
      <p>A paragraph (hopefully)</p>
    </div>
  );
};

export default SomeTrackableComponent;

or you can customize when the tracking should be done and add dimensions:

import Helmet from 'react-helmet'
import { withTracker } from 'ndla-tracker';

class SomeTrackableComponent extends React.Component {
  static getDocumentTitle(currentProps) {
    return currentProps.title;
  }

  static willTrackPageView(trackPageView, currentProps) {
    const { condition } = currentProps;
    if (condition) {
      trackPageView(currentProps);
    }
  }

  /*
    Add this function if you want to add custom dimensions to google tag manager or google analytics.
  */
  static getDimensions(props) {
    return {
      ga: {
        dimensionGAOne: 'Some dimension in ga',
      },
      gtm: {
        dimensionGTMOne: 'Some dimension in gtm',
      },
    };
  }

  render() {
    const ({ title }) = this.props;
    return (
      <div>
        <Helmet>
          <title>{`${this.constructor.getDocumentTitle(this.props)}`}</title>
        </Helmet>
        <p>A paragraph (hopefully)</p>
      </div>
    );
  }
}

export default withTracker(SomeTrackableComponent);

PropTypes

PropTypes for HelmetWithTracker
PropsTypeRequiredDescription
titleString*A title (meta) used for the tracker.

Keywords

ndla

FAQs

Package last updated on 03 Oct 2018

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