
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
modular-analytics
Advanced tools
This package provides a common interface for sending data to web analytics tools like Google Analytics or Amplitude. Only basic functionality of tracking page views and events is currently supported.
$ npm install --save-dev @infermedica/modular-analytics
The analytics interfaces has to be configured in Webpack configuration file through webpack.DefinePlugin
:
new webpack.DefinePlugin({
__analytics: JSON.stringify({
debug: {
isEnabled: true
},
googleAnalytics: {
isEnabled: true,
key: '<your-key>'
},
googleAdWords: {
isEnabled: true,
key: '<your-key>'
},
googleTagManager: {
isEnabled: true
},
amplitude: {
isEnabled: true,
key: '<your-key>',
allowProprties: [], // optional
disallowProperties: ['application', 'user', 'section', 'event_details'], // optional
},
infermedicaAnalytics: {
isEnabled: true,
topic: '<your-topic>',
environment: process.env.NODE_ENV,
firebaseConfig: {
apiKey: '<your-firebase-api-key>',
authDomain: '<your-firebase-auth-domain>',
appId: '<your-firebase-app-id>',
},
allowProperties: ['application', 'user', 'section', 'event_details'], // optional
disallowProperties: [], // optional
},
})
})
You can use the above configuration to enable or disable individual modules. Use isEnabled
to specify if particular
module should be included in a final build.
Please note that isEnabled
must be a boolean value (but you can still compute it from other variables), so Webpack's
tree shaking algorithm can correctly detect and remove unused modules.
To use the module, you need to import the Analytics
object and call its methods.
import {Analytics} from '@infermedica/modular-analytics';
To track page views, use:
Analytics.trackView();
or:
Analytics.trackView('View Name');
To track events, use:
Analytics.trackEvent('Event name');
You can also pass additional properties, e.g.:
Analytics.trackEvent('Event name', {
user_rating: 5
});
You can use the event for all modules or decide with modules should be used for this event, e.g.:
Analytics.trackEvent('Event name', {
user_rating: 5
}, ['aplitude', 'googleTagManager'])
You can disable event for all modules, e.g.:
Analytics.trackEvent('Event name', {
user_rating: 5
}, ['aplitude', 'googleTagManager'], true)
To track events, use:
Analytics.trackConversion('conversion-label');
The "conversion-label" will be passed to gtag function as follow:
window.gtag('event', 'conversion', {send_to: __analytics.googleAdWords.key + '/' + conversionLabel});
You can set global properties that will be automatically added to each tracked event:
Analytics.setGlobalProperties('instance', 'my-page.example.com');
Multiple properties can be set at once, e.g.:
Analytics.setGlobalProperties({
instance: 'my-page.example.com',
interface_language: 'en',
});
Note that global properties can be overridden by parameters passed to trackEvent
calls.
This package can be used as a Vue.js plugin:
import {VueAnalytics} from '@infermedica/modular-analytics';
Vue.use(VueAnalytics);
You can access it anywhere via Vue.$analytics
:
Vue.$analytics.setGlobalProperties(...);
Vue.$analytics.trackView(...);
Vue.$analytics.trackEvent(...);
or with this.$analytics
inside of Vue.js components:
this.$analytics.setGlobalProperties(...);
this.$analytics.trackView(...);
this.$analytics.trackEvent(...);
Currently the following providers are supported:
Other analytics tools are easy to integrate with this module and we might add their support in the future.
We're happy to accept pull requests with additional integrations. Feel free to raise an issue if you have any questions or suggestions.
MIT Copyright (c) Infermedica
FAQs
Modular analytics interface
The npm package modular-analytics receives a total of 0 weekly downloads. As such, modular-analytics popularity was classified as not popular.
We found that modular-analytics demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.