npm.io
1.0.4 • Published 9 years ago

ta-react-tracking

Licence
ISC
Version
1.0.4
Deps
6
Vulns
0
Weekly
0
DeprecatedThis package is deprecated

Tracking Component

Deprecation Warning

This is the old version of this component. You should use the ta-react-polymorphic-tracking/soon-to-be @ta-interaktiv/react-polymorphic-tracking component instead.

One-size-fits-all tracking component, supports Google Analytics, Google Tag Manager, WEMF NetMetrix and internal Newsnet tracker.

Most of the configuration happens through calling //www.${hostname}/api/sites/default, so most properties are not required (but some of them are useful.)

Installation

npm install ta-react-tracking --save

Usage

import Tracking from 'ta-react-tracking';

...

class YourComponent extends React.Component {
  render() {

    return (
      <Tracking articleId='123456' projectId='YourTestProject' />
    )
  }
}

API – 1.0.0

Props
Property Type Required Description
articleId string no Newsnet article ID, for standalone projects that need to be tracked in CD as well.
projectId string no, but recommended Freely definable project ID, used to identify single projects in WEMF/Netmetrix.
rawSiteData object no Data object as provided by //www.mandant.ch/api/sites/default. If available, this component will not make its own request and use the provided data instead.

Results

WEMF/Netmetrix

Uses all the desktop tracker URLs from //www.${hostname}/api/sites/default by default. Appends interactive/ and a project ID, if available, to the tracker URLs. Results in a list of tracking pixels of the form

<img src="[Tracker URL]interactive/[projectId]?r=[Referer]&d=[Current Timestamp]" 
      style="position: absolute; visibility: hidden;"
      width="1"
      height="1"
/>
Newsnet Tracker

Calls an URI using a JavaScript image object. Article ID is a number. Only rendered if a article number is provided.

Google Analytics

This component will once call the standard GA invoking script:

(function (i, s, o, g, r, a, m) {
      i['GoogleAnalyticsObject'] = r;
      i[r] = i[r] || function () {
          (i[r].q = i[r].q || []).push(arguments)
        }, i[r].l = 1 * new Date();
      a = s.createElement(o),
        m = s.getElementsByTagName(o)[0];
      a.async = 1;
      a.src = g;
      m.parentNode.insertBefore(a, m)
    }(window,
      document,
      'script',
      'https://www.google-analytics.com/analytics.js',
      'ga'));

It will then for each Google Analytics tracker found in http://www.${hostname}/api/sites/default execute the following code:

window.ga('create', [tracker.id], 'auto', [tracker.name]);
window.ga('[tracker.name].send', 'pageview');
Google Tag Manager (GTM)

This component will once invoke the GTM script with the GTM ID found in http://www.${hostname}/api/sites/default:

(function (w, d, s, l, i) {
      w[l] = w[l] || [];
      w[l].push(
        {
          'gtm.start': new Date().getTime(),
          event: 'gtm.js'
        }
      );
      let f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l !=
      'dataLayer' ?
        `&l=${
          l}` :
        '';
      j.async = true;
      j.src = `//www.googletagmanager.com/gtm.js?id=${  i  }${dl}`;
      f.parentNode.insertBefore(j, f);

    }(window, document, 'script', 'dataLayer', [GTM ID]));

Keywords