Many Canadian websites run in English and French. Tracked carelessly, the two versions look like two different sites in GA4, or can't be told apart at all.
One property, not two.
For most businesses, both languages belong in one GA4 property. Visitors switch language, campaigns run in both, and the business wants one figure for leads or sales.
Separate properties make sense only when the versions are run as separate businesses, with separate teams and budgets. Even then, a combined view usually ends up being built by hand.
If the languages sit on different domains, set up cross-domain tracking so a visitor who switches isn't counted twice. See cross-domain tracking in GA4.
Tell GA4 which language each page is in.
GA4 has a built-in Language dimension, but it reports the visitor's browser language, not the language of the page. A French speaker with an English browser reading the French site shows up as English.
Add your own parameter instead:
- Make sure each page's
<html lang>attribute is right:en-CAorfr-CA. - Have the site push the page language into the dataLayer on every page, as a parameter such as
page_language. - Send it with every GA4 event and register it as a custom dimension.
Now every report can be split or filtered by the language visitors actually read.
Keep events the same in both languages.
- Event names stay in one language.
generate_leadon both versions, never a translated name on the French site. - Don't track by button text. Triggers that match "Submit" break on "Envoyer". Use IDs or data attributes that don't change with language.
- Keep form and product IDs shared, so the same form or product is one row in reports, not two.
- Translated page titles split reports. Group pages with a content group or a page ID that's the same in both languages.
A dataLayer specification written once for both versions keeps developers consistent.
Consent in both languages.
The cookie banner should appear in the language of the page, and a choice made on one version should carry over to the other. If the languages are on different domains, check the consent platform shares the choice, or visitors are asked twice. For visitors in Quebec, see Quebec's Law 25 and GA4.
Campaigns.
Use one UTM convention in both languages, with the language in utm_campaign or utm_content if you need it, so a French campaign isn't a different source from its English twin. The UTM builder helps keep names consistent.
What to check.
- Open the same page in each language in GA4's DebugView, and check
page_languageis sent and correct. - Submit the same form in each language and check the event name and parameters match.
- Switch language mid-visit and check the session continues.
- Make a consent choice in one language, switch, and check it holds.
The wider question of several countries is covered in tracking a multi-country website in GA4. Marc Alexander, a GA4 consultant, sets up tracking for Canadian businesses, and the GA4 mini audit checks both versions of your site.