#
ngx-matomo-client
[← return to documentation](/README.md)
## Configuration reference
Below are all configuration properties that you can use when you initialize Matomo (either using `provideMatomo(options, ...additionalFeatures)` or the classic `NgModule`):
```ts
import {
provideMatomo,
withRouter,
withScriptFactory,
withRouterInterceptors,
} from 'ngx-matomo-client';
@NgModule({
providers: [
provideMatomo(
// Main options here:
{
siteId: 42,
trackerUrl: 'http://...',
},
// Optionally add one or more features:
withRouter({
// Router options here
}),
withScriptFactory(),
withRouterInterceptors(),
),
],
})
export class AppModule {}
```
See equivalent configuration with @NgModule
```ts
import { MatomoModule, MatomoRouterModule, MatomoRouteDataInterceptor } from 'ngx-matomo-client';
@NgModule({
imports: [
MatomoModule.forRoot({
// Main options here
siteId: 42,
trackerUrl: 'http://...',
}),
MatomoRouterModule.forRoot({
// Router options here
}),
],
})
export class AppModule {}
```
### Options
Main configuration options (for `provideMatomo()` or `MatomoModule.forRoot()`) are:
| Option | Type | Default value | Description | Available in `'manual'` mode |
| --------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- |
| mode | `MatomoInitializationBehavior` | `'auto'` | Set whether tracking code should be automatically embedded or not.
If set to `'manual'`, some other option cannot be used. | - |
| siteId | `number` or `string` | required, unless `trackers` is set | Your Matomo site id (may be found in your Matomo server's settings). | no |
| trackerUrl | `string` | required, unless `trackers` is set | Your Matomo server url. | no |
| trackerUrlSuffix | `string` | `matomo.php` | Suffix to append to `trackerUrl`. | no |
| trackers | array of `{siteId: string, trackerUrl: string, trackerUrlSuffix?: string}` | none, required unless `siteId` and `trackerUrl` are set | A list of multiple Matomo servers. Note that tracking code will be downloaded from the FIRST tracker in the list (unless `scriptUrl` option is set). Mutually exclusive with the three previous options. | no |
| scriptUrl | `string` | tracker url suffixed with `matomo.js` | Url of Matomo tracker's script. | no |
| disabled | `boolean` | `false` | If set to `true` then all tracking operations become no-op. Note that in this case, all getter methods will return rejected Promises. | yes |
| trackAppInitialLoad | `boolean` | `false` if router is enabled, `true` otherwise | If set to `true`, will call trackPageView on application init. This should probably never be used on a routed single-page application. | yes |
| enableLinkTracking | `boolean` or `'enable-pseudo'` | `true` | If set to `true` (the default), enable link tracking, excluding middle-clicks and contextmenu events.
If set to `enable-pseudo`, enable link tracking, including middle-clicks and contextmenu events.
If set to `false`, disable link tracking. | yes |
| enableJSErrorTracking | `boolean` | `false` | If set to `true`, enable JS errors tracking. | yes |
| acceptDoNotTrack | `boolean` | `false` | Set whether to not track users who opt out of tracking using Do Not Track setting | yes |
| requireConsent | `MatomoConsentRequirement` | `'none'` | Configure user consent requirement. | yes |
| runOutsideAngularZone | `boolean` | `true` | If set to `true`, will run matomo calls outside of angular's NgZone. This may help if the call causes the app to freeze. This has no effect in zoneless applications. | yes |
Router configuration options (for `withRouter()` or `MatomoRouterModule.forRoot()`) are:
| Option | Type | Default value | Description |
| --------------- | -------------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| prependBaseHref | `boolean` | `true` | Set whether the application's base href should be prepended to current url when tracking page views. Set it to `false` to disable this behavior. |
| trackPageTitle | `boolean` | `true` | Set whether to detect page title when tracking views.
By default, page title is automatically detected from DOM document title.
Note that if set to `false`, Matomo is likely to still use the initial document title for all tracked page views. |
| delay | `number`
Set to `-1` to run synchronously | `0` (no delay but still asynchronous) | Set a delay after navigation event before page view is tracked.
If your document title is updated asynchronously after Router events, you may have to set a delay to correctly detect document title.
If set to `0`, tacking is still asynchronous. Set it to `-1` to execute tracking synchronously.
See also previous sections for more advanced page title customization. |
| exclude | `string`, `RegExp`, `string[]` or `RegExp[]` | `[]` | Set some url patterns to exclude from page views tracking. |
### Additional features
Available features for `provideMatomo()` are:
#### withRouter
Enable automatic page view tracking. This requires `@angular/router`.
See options for router configuration above.
#### withRouteData
Add automatic Matomo data retrieval from Angular routes configuration. This requires `withRouter()` feature. See [Using route data](/README.md#using-route-data) in README for details.
#### withRouterInterceptors
Add interceptors to hook into the automatic page view tracking. This requires `withRouter()` feature. See [Using custom interceptor](/README.md#using-custom-interceptor) in README for details.
#### withScriptFactory
Allow to customize Matomo's script element creation. See [How can I customize the inserted script tag?](/README.md#how-can-i-customize-the-inserted-script-tag) in FAQ.
#### withFormAnalytics
Allow to use the Form Analytics plugin of Matomo. See [Plugins > Form Analytics](/README.md#form-analytics) in FAQ.