Skip to content

refactor: pass CustomUrl to matomo tag manager pageview events#2887

Merged
jnatten merged 8 commits into
masterfrom
feat/add-taxonomy-canonical-url
Apr 23, 2026
Merged

refactor: pass CustomUrl to matomo tag manager pageview events#2887
jnatten merged 8 commits into
masterfrom
feat/add-taxonomy-canonical-url

Conversation

@jnatten
Copy link
Copy Markdown
Contributor

@jnatten jnatten commented Apr 21, 2026

Depends on NDLANO/graphql-api#730

Denne gjør at canonical url <link /> elementet peker på url fra taksonomi. Med språk fra ndla-frontend (med mindre det er nb).

Denne gjør også at Pageview events på matomo tag manager vil få CustomUrl variabelen sendt med. Denne skal være satt til defaultUrl fra taksonomi (altså alltid bokmål versjonen).

Dette gjør at vi kan tracke språkversjonene likt i matomo.

This patch makes the canonical url `<link />` element point to the
taxonomy canonical url with basename if available.

Also `Pageview` events to matomo tag manager will get the `CustomUrl`
variable set to the taxonomy `defaultUrl` so that matomo can use this
variable to have shared tracking across language versions.

This means the canonical url will now include the language (unless it is
`nb`, since that is the same as no language part).
@jnatten jnatten requested a review from a team April 21, 2026 11:22
export const getCanonicalUrl = (pathname: string) => {
if (!pathname.includes("article-iframe")) {
return `${config.ndlaFrontendDomain}${pathname}`;
const parts = pathname.split("/");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mens du har dette friskt i minnet: Kunne du skrevet et par kommentarer om hvorfor getCanonicalUrl og getAlternateUrl må behandles nn, en og nb forskjellig? Fort gjort å glemme når en ikke holder aktivt på med det.

@jnatten jnatten requested review from a team and Jonas-C April 22, 2026 05:12
@gunnarvelle
Copy link
Copy Markdown
Member

Var ikkje litt av poenget med canonical at det skulle være en adresse som var felles for alle språkvarianter av en artikkel? No vil jo samme artikkel ha forskjellig canonical for forskjellige språkvarianter.

This custom dimension will allow the backend to lookup urls by subjectId
rather than generating the slug.
@jnatten
Copy link
Copy Markdown
Contributor Author

jnatten commented Apr 22, 2026

Var ikkje litt av poenget med canonical at det skulle være en adresse som var felles for alle språkvarianter av en artikkel? No vil jo samme artikkel ha forskjellig canonical for forskjellige språkvarianter.

Det var poenget før jeg hadde full forståelse, men etter å ha gjort litt research så vil det ødelegge litt for SEO, så denne fikser egentlig SEO litt i tillegg. Så canonical vil nå være uten språkkode dersom språket er nb, men alle andre vil ha med språk varianter.

Men den CustomUrl'en som sendes til matomo vil ikke ha språkvariant og være den som jeg tidligere trodde burde være canonical.

@ghveem
Copy link
Copy Markdown
Collaborator

ghveem commented Apr 23, 2026

Her skal me gjere fleire ting:
Viktigast: Urlar skal visast på nett og hos google som før. langhref og canonical må funke for SEO og brukarar.
Og så: me vil berre lagre visninga (uansett språkvariant) i matomo på ein url (path kan vere lik canonical). Då trenger me ikkje sjekke 5 variantar av samme url kvar gong.
Og så: eg må kunne rapportere på "Kor mange ser på NDLA på nynorsk?", så då føreslår eg å flytte språkvisinga til ein custom dimension.

jnatten added 2 commits April 23, 2026 12:12
an attempt to validate that we wont get a `undefined` result from
unloaded props in the `PageTitle` component.
@jnatten jnatten merged commit 7e55fc8 into master Apr 23, 2026
5 checks passed
@jnatten jnatten deleted the feat/add-taxonomy-canonical-url branch April 23, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants