npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@keiko-app/react-matomo

v0.1.0

Published

React integration for Matomo analytics system

Downloads

5

Readme

🧐 Features

Here're some of the project's best features:

  • Easily integrate matomo analytics tracker
  • Track the page views
  • Track the user's events throughout the ReactJS application

🛠️ Installation Steps

Install the module from NPM registry

npm:

npm install --save @keiko-app/react-matomo

yarn:

yarn add @keiko-app/react-matomo

Set the config and add the provider to you App.tsx page:

import { MatomoProviderConfig } from "@keiko-app/react-matomo";

const config: MatomoProviderConfig = {
	trackerBaseUrl: "https://base.url.of.your.tracker",
	siteId: 1,
};

const App = () => {
	<MatomoProvider config={config}>
		<YourComponents />	
	</MatomoProvider>
};

export { App };

📝 Usage

Every child component of the MatomoProvider has access to the useMatomo() hook. This hook exports the tracker instance.

const { tracker } = useMatomo();

Then, you will have access to the tracking methods.

Tracking Page View

Method: tracker.trackPageView(parameters?: TrackPageViewParams)

Some parameters can be provided (none of them are required):

| Option | Type | Description | Default Value | | --- | --- | --- | --- | | documentTitle | String | Sets the page title | Value of window.document.title | href | String / Location | Sets the page URL | Value of window.location.href | | customDimensions | Boolean / Array of Custom Dimensions | Sets some custom dimensions | none |

Tracking Custom Events

Method: tracker.trackEvent(parameters: TrackEventParams)

With the following parameters:

| Option | Type | Required? | Description | Default Value | | --- | --- | --- | --- | --- | | category | String | ✅ | The event's category | none, must be set | action | String | ✅ | The event's action | none, must be set | name | String | - | ... | none | value | String | - | ... | none | documentTitle | String | - | Sets the page title | Value of window.document.title | href | String / Location | - | Sets the page URL | Value of window.location.href | | customDimensions | Boolean / Array of Custom Dimensions | - | Sets some custom dimensions | none |

Tracking Searches

Method: tracker.trackSiteSearch(parameters: TrackSiteSearchParams)

With the following parameters:

| Option | Type | Required? | Description | Default Value | | --- | --- | --- | --- | --- | | keyword | String | ✅ | The searched keyword | none, must be set | category | String or false | - | The category used by the search engine. If not applicable (or unknown), set to false | false | count | Number or false | - | The number of results returned by the search. If not applicable (or unknown), set to false | false | documentTitle | String | - | Sets the page title | Value of window.document.title | href | String / Location | - | Sets the page URL | Value of window.location.href | | customDimensions | Boolean / Array of Custom Dimensions | - | Sets some custom dimensions | none |

Other Specifications

Custom Dimensions

When tracking a Page View or an Event, you can specify any kind of Custom Dimension. A Custom Dimension is an Object with a numeric id and a string value:

interface CustomDimension {
  id: number;
  value: string;
}

🔧 Options

| Option | Type | Required? | Description | Example | | --- | --- | --- | --- | --- | | trackerBaseUrl | String | ✅ | The base URL of your matomo installation. This must not include matomo.php or matomo.js | https://track.me.eu | | siteId | String or Number | ✅ | The site identifier. This can be retrieved from your matomo dashboard. | 1 | | disableTracking | Boolean | - | When set to true, tracking will be stopped. Useful for GDPR🇪🇺 compliance or development websites | false | | urlTransformer | Function (see below) | - | Transform function that will modify the URL and set it as a custom URL. Usefull to remove sensitive informations (ids...) from URLs | See below | | heartbeat | Number or Boolean | - | When set to false, the heartbeat is disabled. When set to true (default value), a 15-second heartbeat will be used. When set to any positive integer, the value will be used as the heartbeat interval. | false, 15 | | disableLinkTracking | Boolean | - | Disable tracking of outbound and download links. Defaults to false. | true |

Transform URLs using urlTransformer

There is an option to modify URLs before sending them to the matomo instance. This is particularly useful to remove sensitive informations such as IDs from the URLs. This method accepts one parameter (string) and must return a string.

Example use case - removing UUIDs from the URL:

const urlTransformer: (url: string) => {
	const UUIDV4_REGEX = new RegExp(/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/, "g");
	return url.replaceAll(UUIDV4_REGEX, "**MASKED**");
};

const config: MatomoProviderConfig = {
	trackerBaseUrl: "https://base.url.of.your.tracker",
	siteId: 1,
	urlTransformer
};

💖 What is keiko?

keiko is an online service available on the Web and as mobile applications to simply manage home inventories and better deal with home insurers. It was proudly built in 🇫🇷 France and is currently only avaialble in this country.

➡️ Discover more about keiko on our website: https://keiko-app.fr

📚 History

This project is based on the deprecated package matomo-tracker by @jonkoops. It may not contain all the features yet, but it is still a work in progress.

🛡️ License

This project is licensed under the MIT