Skip to content
Snippets Groups Projects
Commit db467c58 authored by Emmanuel Raviart's avatar Emmanuel Raviart
Browse files

Add Matomo configurations.

parent 4e54ea58
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,10 @@ JSON_DIR="../openfisca-france-json"
# Matomo analytics configuration
# MATOMO_SITE_ID=123
# MATOMO_URL="https://MATOMO_SERVER/"
# Prepend the site domain to the page title when tracking (optional, default = false).
# MATOMO_PREPEND_DOMAIN=true
# Track visitors accross a domain (for example, example.com & its subdomains (optional).
# MATOMO_SUBDOMAINS="*.DOMAIN"
# OAuth2 configuration
# OAUTH2_CLIENT_ID="OAUTH2_CLIENT_ID"
......
......@@ -132,6 +132,15 @@ function auditMatomo(audit: Audit, dataUnknown: unknown,
const errors: { [key: string]: unknown } = {}
const remainingKeys = new Set(Object.keys(data))
audit.attribute(
data,
"prependDomain",
true,
errors,
remainingKeys,
auditSwitch([auditTrimString, auditStringToBoolean], auditBoolean),
auditSetNullish(false),
)
audit.attribute(
data,
"siteId",
......@@ -142,6 +151,14 @@ function auditMatomo(audit: Audit, dataUnknown: unknown,
auditInteger,
auditRequire,
)
audit.attribute(
data,
"subdomains",
true,
errors,
remainingKeys,
auditTrimString,
)
audit.attribute(
data,
"url",
......
......@@ -14,7 +14,9 @@ export interface Config {
hiddenEntitiesKeyPlural?: string[]
jsonDir: string
matomo?: {
prependDomain?: boolean
siteId: number
subdomains?: string
url: string
}
oauth2?: {
......@@ -49,7 +51,9 @@ const [validConfig, error] = validateConfig({
hiddenEntitiesKeyPlural: process.env["HIDDEN_ENTITIES"],
jsonDir: process.env["JSON_DIR"],
matomo: process.env["MATOMO_SITE_ID"] && process.env["MATOMO_URL"] ? {
prependDomain: process.env["MATOMO_PREPEND_DOMAIN"],
siteId: process.env["MATOMO_SITE_ID"],
subdomains: process.env["MATOMO_SUBDOMAINS"],
url: process.env["MATOMO_URL"],
} : null,
oauth2: process.env["OAUTH2_CLIENT_ID"]
......
......@@ -18,7 +18,9 @@ export interface Session {
hiddenEntitiesKeyPlural?: string[]
leafParametersName: Set<string>
matomo?: {
prependDomain?: boolean
siteId: number
subdomains?: string
url: string
}
metadata: Metadata
......
......@@ -70,7 +70,6 @@
setContext("inputInstantsByVariableName", inputInstantsByVariableName)
const matomoConfig = $session.matomo
let matomoPaq = []
const reform = writable({})
setContext("reform", reform)
......@@ -107,6 +106,16 @@
// @ts-expect-error
const _paq = window._paq
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
if (matomoConfig.subdomains !== undefined) {
_paq.push(["setCookieDomain", matomoConfig.subdomains])
_paq.push(["setDomains", matomoConfig.subdomains])
}
_paq.push([
"setDocumentTitle",
matomoConfig.prependDomain
? document.domain + "/" + document.title
: document.title,
])
_paq.push(["trackPageView"])
_paq.push(["enableLinkTracking"])
;(function () {
......@@ -141,7 +150,12 @@
// @ts-expect-error
const _paq = window._paq
_paq.push(["setCustomUrl", url])
_paq.push(["setDocumentTitle", document.title])
_paq.push([
"setDocumentTitle",
matomoConfig.prependDomain
? document.domain + "/" + document.title
: document.title,
])
_paq.push(["trackPageView"])
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment