Skip to content

mntm-lib/stats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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.