Skip to content

romanown/react-yandex-metrika

 
 

Repository files navigation

react-yandex-metrika

Adds the Yandex.Metrika script to your page and exposes the ym tracking function as a module.

Inspired by and shamelessly copied from react-google-analytics.

Usage:

Use the initializer to add the script to your page somewhere:

import { YMInitializer } from 'react-yandex-metrika';

class MyComponent extends React.Component {
  render() {
    return (
      <div>
        // SNIP
          <YMInitializer accounts={[987654321]} />
        // SNIP
      </div>
    );
  }
});

Please note that you need to initialize the tracker object only once. Because of that, you should insert initializer to the place where it won't be remounted (that means at least outside of router scope).

You can create several identical trackers (that might be useful for domain-wise segmentation).

<YMInitializer accounts={[98765, 4321]} />

You can also specify options for tracker (as described in Yandex.Metrika documentation):

<YMInitializer accounts={[98765]} options={{defer: true}} />

Elsewhere, use the ym function:

import ym from 'react-yandex-metrika';
.....
const HitListener = withRouter(class extends React.Component {
componentWillReceiveProps(nextProps) {
ym('hit', nextProps);
ym('reachGoal', 'whateverGoal', {awesomeParameter: 42});
}
render() {
    return null
  }
})

Webvisor 2.0 support

See #6 for details.

<YMInitializer accounts={[31337]} version="2" />

Migration from 1.0

  • Replace import { Initializer } to import { YMInitializer }.
  • Remove ym.init() call. Pass arguments of ym.init as props to the YMInitializer component. Tracking will be initialized on YMInitializer.componentDidMount.

About

React component for Yandex.Metrika

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 87.9%
  • Makefile 12.1%