Skip to content

Commit 3ef29f8

Browse files
committed
chore: add matomo user metrics
1 parent fcffc7a commit 3ef29f8

5 files changed

Lines changed: 102 additions & 3 deletions

File tree

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@
7070
"ember-export-application-global": "^2.0.1",
7171
"ember-load-initializers": "^2.1.1",
7272
"ember-maybe-import-regenerator": "^0.1.6",
73+
"ember-metrics": "^0.16.0",
74+
"ember-metrics-matomo-adapter": "^0.1.0",
7375
"ember-qunit": "^4.6.0",
7476
"ember-qunit-assert-helpers": "^0.2.2",
7577
"ember-resolver": "^8.0.2",
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import Route from '@ember/routing/route';
2+
import RouterService from '@ember/routing/router-service';
3+
import { inject as service } from '@ember/service';
4+
5+
import MetricsService from 'ember-metrics/services/metrics';
6+
7+
export default class ApplicationRoute extends Route {
8+
@service
9+
router!: RouterService;
10+
11+
@service
12+
metrics!: MetricsService;
13+
14+
constructor() {
15+
// eslint-disable-next-line prefer-rest-params
16+
super(...arguments);
17+
18+
this.setupTracking();
19+
}
20+
21+
private setupTracking() {
22+
this.router.on('routeDidChange', () => {
23+
const { currentURL, currentRouteName } = this.router;
24+
25+
this.metrics.trackPage({
26+
page: currentURL,
27+
title: currentRouteName,
28+
});
29+
});
30+
}
31+
}

tests/dummy/config/environment.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
'use strict';
22

3+
function matomoSiteIdForDeployTarget(deployTarget) {
4+
if (deployTarget === 'production') {
5+
return '3';
6+
}
7+
8+
return '2';
9+
}
10+
311
module.exports = function (environment) {
12+
const deployTarget = process.env.DEPLOY_TARGET || 'development';
13+
414
let ENV = {
515
modulePrefix: 'dummy',
16+
deployTarget,
617
environment,
718
rootURL: '/',
819
locationType: 'auto',
@@ -21,6 +32,18 @@ module.exports = function (environment) {
2132
// Here you can pass flags/options to your application instance
2233
// when it is created
2334
},
35+
metricsAdapters: [
36+
{
37+
name: 'Matomo',
38+
environments: ['development', 'production'],
39+
config: {
40+
scriptUrl: '//cdn.matomo.cloud/effective-ember.matomo.cloud',
41+
trackerUrl: 'https://effective-ember.matomo.cloud',
42+
siteId: matomoSiteIdForDeployTarget(deployTarget),
43+
disableCookies: true,
44+
},
45+
},
46+
],
2447
};
2548

2649
if (environment === 'development') {

types/ember-metrics/index.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
declare module 'ember-metrics/services/metrics' {
2+
import Service from '@ember/service';
3+
4+
export default class Metrics extends Service {
5+
trackEvent(params: Record<string, unknown>): void;
6+
7+
trackPage(params: Record<string, unknown>): void;
8+
trackPage(adapterName: string, params: Record<string, unknown>): void;
9+
}
10+
}

yarn.lock

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5295,7 +5295,7 @@ broccoli-funnel@^3.0.0:
52955295
path-posix "^1.0.0"
52965296
walk-sync "^2.0.2"
52975297

5298-
broccoli-funnel@^3.0.3:
5298+
broccoli-funnel@^3.0.2, broccoli-funnel@^3.0.3:
52995299
version "3.0.3"
53005300
resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-3.0.3.tgz#26fd42632471f67a91f4770d1987118087219937"
53015301
integrity sha512-LPzZ91BwStoHZXdXHQAJeYORl189OrRKM5NdIi86SDU9wZ4s/3lV1PRFOiobDT/jKM10voM7CDzfvicHbCYxAQ==
@@ -8317,6 +8317,22 @@ ember-cli-typescript@^3.1.4:
83178317
stagehand "^1.0.0"
83188318
walk-sync "^2.0.0"
83198319

8320+
ember-cli-typescript@^4.0.0:
8321+
version "4.0.0"
8322+
resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-4.0.0.tgz#690f0cd3d15f4a69ae6d89f25b70b5997ae59161"
8323+
integrity sha512-ZwnBbBJ0yAIKq4FVgNFkxfMwqJhw6PyT45Enp2RvWIgzgaYCId8brrSgg3tvVWWjA7N5hiT4Ilyz5jrQwrnU1Q==
8324+
dependencies:
8325+
ansi-to-html "^0.6.6"
8326+
broccoli-stew "^3.0.0"
8327+
debug "^4.0.0"
8328+
execa "^4.0.0"
8329+
fs-extra "^9.0.1"
8330+
resolve "^1.5.0"
8331+
rsvp "^4.8.1"
8332+
semver "^7.3.2"
8333+
stagehand "^1.0.0"
8334+
walk-sync "^2.2.0"
8335+
83208336
ember-cli-valid-component-name@^1.0.0:
83218337
version "1.0.0"
83228338
resolved "https://registry.yarnpkg.com/ember-cli-valid-component-name/-/ember-cli-valid-component-name-1.0.0.tgz#71550ce387e0233065f30b30b1510aa2dfbe87ef"
@@ -8690,6 +8706,23 @@ ember-maybe-import-regenerator@^0.1.6:
86908706
ember-cli-babel "^6.0.0-beta.4"
86918707
regenerator-runtime "^0.9.5"
86928708

8709+
ember-metrics-matomo-adapter@^0.1.0:
8710+
version "0.1.0"
8711+
resolved "https://registry.yarnpkg.com/ember-metrics-matomo-adapter/-/ember-metrics-matomo-adapter-0.1.0.tgz#cf04b2c92c7e80996ca17c1851d7105b0c1d637a"
8712+
integrity sha512-eA9WfUFUsb/M+JDOawuQqmn07lBKtvTVhxczhN3c28KXQUNJnfGl1MP/DTl9iL8uiYUYLT3cOUKd+AbR4RLT2w==
8713+
dependencies:
8714+
ember-cli-babel "^7.22.1"
8715+
ember-cli-htmlbars "^5.3.1"
8716+
ember-cli-typescript "^4.0.0"
8717+
8718+
ember-metrics@^0.16.0:
8719+
version "0.16.0"
8720+
resolved "https://registry.yarnpkg.com/ember-metrics/-/ember-metrics-0.16.0.tgz#7d6879f419c5c581d54094ceb617ca1b0dfa26d4"
8721+
integrity sha512-TmnXPjwh1uHuqSo9yjYr1R3gzw/4j2jENjsvn3CGs8+nYglQ2+kbkuMAbkxWo/Nc6Z6ZGprPkWvJ2YgugUwCdw==
8722+
dependencies:
8723+
broccoli-funnel "^3.0.2"
8724+
ember-cli-babel "^7.19.0"
8725+
86938726
ember-modal-dialog@^3.0.0-beta.4:
86948727
version "3.0.0-beta.4"
86958728
resolved "https://registry.yarnpkg.com/ember-modal-dialog/-/ember-modal-dialog-3.0.0-beta.4.tgz#2da8b5424cf33fd87117624dcaabfe9727f967e9"
@@ -9511,7 +9544,7 @@ execa@^3.0.0, execa@^3.2.0:
95119544
signal-exit "^3.0.2"
95129545
strip-final-newline "^2.0.0"
95139546

9514-
execa@^4.0.3:
9547+
execa@^4.0.0, execa@^4.0.3:
95159548
version "4.0.3"
95169549
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
95179550
integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
@@ -10164,7 +10197,7 @@ fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0:
1016410197
jsonfile "^4.0.0"
1016510198
universalify "^0.1.0"
1016610199

10167-
fs-extra@^9.0.0:
10200+
fs-extra@^9.0.0, fs-extra@^9.0.1:
1016810201
version "9.0.1"
1016910202
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
1017010203
integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==

0 commit comments

Comments
 (0)