0.1.0 β€’ Published 29 days ago

@keiko-app/react-matomo v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
29 days ago

🧐 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):

OptionTypeDescriptionDefault Value
documentTitleStringSets the page titleValue of window.document.title
hrefString / LocationSets the page URLValue of window.location.href
customDimensionsBoolean / Array of Custom DimensionsSets some custom dimensionsnone

Tracking Custom Events

Method: tracker.trackEvent(parameters: TrackEventParams)

With the following parameters:

OptionTypeRequired?DescriptionDefault Value
categoryStringβœ…The event's categorynone, must be set
actionStringβœ…The event's actionnone, must be set
nameString-...none
valueString-...none
documentTitleString-Sets the page titleValue of window.document.title
hrefString / Location-Sets the page URLValue of window.location.href
customDimensionsBoolean / Array of Custom Dimensions-Sets some custom dimensionsnone

Tracking Searches

Method: tracker.trackSiteSearch(parameters: TrackSiteSearchParams)

With the following parameters:

OptionTypeRequired?DescriptionDefault Value
keywordStringβœ…The searched keywordnone, must be set
categoryString orΒ false-The category used by the search engine. If not applicable (or unknown), set to falsefalse
countNumber or false-The number of results returned by the search. If not applicable (or unknown), set to falsefalse
documentTitleString-Sets the page titleValue of window.document.title
hrefString / Location-Sets the page URLValue of window.location.href
customDimensionsBoolean / Array of Custom Dimensions-Sets some custom dimensionsnone

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

OptionTypeRequired?DescriptionExample
trackerBaseUrlStringβœ…The base URL of your matomo installation. This must not include matomo.php or matomo.jshttps://track.me.eu
siteIdString or NumberΒ βœ…The site identifier. This can be retrieved from your matomo dashboard.1
disableTrackingBooleanΒ -When set to true, tracking will be stopped. Useful for GDPRπŸ‡ͺπŸ‡Ί compliance or development websitesfalse
urlTransformerFunction (see below)-Transform function that will modify the URL and set it as a custom URL. Usefull to remove sensitive informations (ids...) from URLsSee below
heartbeatNumber 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
disableLinkTrackingBoolean-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

0.1.0

29 days ago