Code Monkey home page Code Monkey logo

yandex-metrika's Introduction

Yandex Metrika

npm npm (scoped with tag)

Add Yandex Metrika to your nuxt.js application.

This plugins automatically sends first page and route change events to Yandex Metrika.

yarn add @rabota/yandex-metrika

or

npm install --save @rabota/yandex-metrika

Table of contents

Features

  • Yandex Metrica 2.0
  • Supports multiple IDs
  • You can pass an async function to provide IDs
  • Easy-to-use API
  • Automatically handling all SPA caveats
  • Includes noscript content (noscript: true option)
  • Logging

Note: Yandex Metrika is disabled in development mode by default. You can set development option to true to run Yandex Metrika in development mode.

Setup

  • Add @rabota/yandex-metrika dependency using yarn or npm to your project
  • Add transpile option to build section of nuxt.config.js
transpile: [
  '@rabota/analytics-layer',
  '@rabota/yandex-metrika'
]
  • Add @rabota/yandex-metrika to modules section of nuxt.config.js
{
  modules: [
    ['@rabota/yandex-metrika', [
      staticCounters: [{
        id: 5432xxxx,
        webvisor: true,
        clickmap: true,
        trackLinks: true,
        accurateTrackBounce: true,
      }],
      dynamicCounters (context) {
        // you can load it asynchronously and return promise
        return [{
          id: 1234xxxx,
          clickmap: true,
          trackLinks: true,
          accurateTrackBounce: true,
        }, {
          id: 4567xxxx,
          clickmap: true,
          trackLinks: true,
          accurateTrackBounce: true,
        }];
      },
      noscript: true, // insert `noscript` content for each counter
      logging: true, // logs all events to each counter
      development: true
    }]
  ]
}

Options

staticCounters

{Object|Array<Object>} Object or Array of objects

Each object contains Yandex.Metrika options for target counter. staticCounters inserts YM initialization configs during the server rendering.

dynamicCounters

{Function}

Could be an async function that returns one or array of configs.

You can find all Yandex Metrika options here

noscript

{boolean} Insert noscript content for each counter (default: true).

logging

{boolean} Output all sending events for each counter (default: false).

cdn

{boolean} Use CDN (default: false).

development

{boolean} set true if you want to run metrika in dev mode. By default metrika is disabled in dev mode.

For more information:

Methods

this.$ym - is a Layer Instance.

methods or properties you can find here: @rabota/analytics-layer/src/layer.js.

Examples

After setup you can access the metrika through this.$ym instance in any component you need.

export default {
  mounted () {
    this.$ym.event( 'event-name', params );
  }
}

Or you can send to a specific counter ID

export default {
  mounted () {
    this.$ym.eventTo( 1234xxxx, 'event-name', params );
  }
}

License

MIT

Author

Alexander Belov (c) 2019

yandex-metrika's People

Contributors

iprit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yandex-metrika's Issues

Module parse failed: Unexpected token (9:12) in @rabota/analytics-layer/src/index.js

dep:
"npm": "^6.5.0",
"nuxt": "^2.3.4",

Hello

I have the next error while running npm run build:

ERROR in ./node_modules/@rabota/analytics-layer/src/layer.js 9:12
Module parse failed: Unexpected token (9:12)
You may need an appropriate loader to handle this file type.
| * @Private
| */

_provider = '';
|
| /**
@ ./node_modules/@rabota/analytics-layer/src/index.js 3:0-24 3:0-24
@ ./node_modules/@rabota/analytics-layer/index.js
@ ./.nuxt/yandex-metrika.plugin.68a5ea40.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi ./.nuxt/client.js

Nuxt config file contains such code :

['@rabota/yandex-metrika',
      [{
        counter: 527xxxxx,
        options: {
          defer: true, // required by single page applications
          webvisor: true,
          clickmap: true,
          trackLinks: true,
          accurateTrackBounce: true,
        },
        noscript: true, // insert `noscript` content for each counter
        logging: true, // logs all events to each counter
        development: true
      }]
    ]

Maybe you know how to fix it.

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.