JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q32217F
  • License MIT

A package for integrating analytics tools

Package Exports

  • @mntm/stats
  • @mntm/stats/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@mntm/stats) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@mntm/stats GitHub license npm bundle size

Inspired by vk-stat

A package for integrating analytics tools.

Implemented providers

Implemented pixels

Prepare

[GTM] Google Tag Manager

When using Universal Analytics with GTM, need set storage:none. Without these settings will not work GA, when you install GTM in iframe.

[VK] VK Statistics

You need request permissions for statEvents.addMiniApps in miniapps with mini_app_id.

Installation

We recommend to use yarn for dependency management:

yarn add @mntm/stats

Event params

{
  // [GTM|GA|UA|VK] event category
  category: string;

  // [GTM|GA|UA] event label
  label: string;

  // [VK|GA|UA|YM] screen where event occurred
  screen: string;

  // [VK|AMP] additional parameters
  params: Record<string, unknown>;
}

Usage

import {
  prepareParams,
  createProviderGTM,
  createSend
} from '@mntm/stats';

// Re-assigns all query params, for example, for UTM tags.
prepareParams();

// Create send function
const sendStats = createSend([
  createProviderGTM('GTM-XXXXXXX')
]);

// Send event to all providers
sendStats('launch', {
  label: 'web_app'
});

VK API implementation

Need for VK Statistics provider:

// See @mntm/painless-bridge for enhanced bridge implementation
import bridge from '@vkontakte/vk-bridge';

// Early token initialization
const token = bridge.send('VKWebAppGetAuthToken', {
  // Your app_id
  app_id: 7415273,
  scope: ''
});

// Example of reuseable implementation
const api = async (method: string, params: Record<string, unknown>) => {
  const { access_token } = await token;

  const result = await bridge.send('VKWebAppCallAPIMethod', {
    method,
    params: Object.assign({
      access_token,
      v: '5.160'
    }, params);
  });

  return result;
};

Contributing

Development of @mntm/stats happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements.

License

@mntm/stats is MIT licensed.