How to Measure the Performance of a Translated WordPress Campaign
Measure a translated WordPress campaign by tagging every language URL with consistent UTM parameters, configuring Google Analytics 4 to recognize the page locale, and filtering a report by campaign and language. Then compare conversions...
Measure a translated WordPress campaign in six steps
Measure a translated WordPress campaign by tagging every language URL with consistent UTM parameters, configuring Google Analytics 4 to recognize the page locale, and filtering a report by campaign and language. Then compare conversions and conversion rate per language against the source-language baseline.
This article gives the setup order, the prerequisites, and one verification step so you can trust the numbers before you scale the campaign. Without this setup, you will only see total traffic and total conversions, and you will not know whether the Spanish, French, or German version actually earned them.
Prerequisites: what to have ready before launch
- A translation setup that creates stable, distinct URLs per language, such as /es/ or /fr/. You need a URL pattern you can filter on.
- A Google Analytics 4 property and a way to install tracking tags, either through Google Tag Manager, a plugin, or your theme settings.
- One campaign name and one primary conversion action, such as a purchase, lead, or sign-up.
- A list of languages you will measure, including the default language as the baseline.
Set these up before you publish. If you add UTM parameters after traffic starts, the untagged visits will be missing from every report.
Step 1: Tag every translated URL with one UTM system
Use the same campaign name across languages, and put the locale in the utm_content value. This keeps all languages in one report and lets you split them later.
Example for a newsletter campaign:
- English: https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale&utm_content=en
- Spanish: https://example.com/es/landing?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale&utm_content=es
- French: https://example.com/fr/landing?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale&utm_content=fr
The utm_content value is your language key. If your translation tool creates URLs automatically, check whether you can edit the URL or add UTM parameters. If not, add the parameters in your ad platform or email tool before the link goes out.
Step 2: Send GA4 the page locale
GA4's default language dimension comes from the visitor's browser settings. That is not the same as the language of the page they are reading. A visitor in Spain may have an English browser and still land on your /es/ page.
Create a custom dimension called page_locale. Set it from the URL path or from a dataLayer variable, then register it in GA4 under Admin and Custom definitions.
If you use Google Tag Manager, push the locale to the dataLayer on every page view. For example, dataLayer.push with page_locale set to es, fr, or en. Then map that variable to the GA4 custom dimension.
This step is the difference between language of the visitor and language of the page. You need the page language for campaign decisions.
Step 3: Build a campaign plus language report
In GA4, open Explore and create a Free Form report.
- Add the dimension Campaign or Session campaign.
- Add your custom dimension page_locale.
- Add metrics: Sessions, Engaged sessions, Conversions, and Key event count.
- Apply a filter so Campaign equals your campaign name.
The result is a table with one row per language for that campaign. Sort by conversions or conversion rate, not by sessions.
Step 4: Define one conversion event for the whole campaign
Use the same conversion event in every language. If you mark a purchase event as a conversion only in the English property, the Spanish version will look like it failed.
In GA4, go to Admin, Events, and mark the relevant event as a key event. Check that the translated pages fire the same event name, such as purchase or generate_lead.
If your translated pages are separate posts or pages, add the Page path or Page title dimension to the same report to see which specific page converted.
Step 5: Make a small, repeatable dashboard
You do not need a paid BI tool. Use a GA4 exploration or export it to Google Sheets.
Columns for a campaign dashboard:
- Language or locale
- Sessions
- Engaged sessions
- Conversions
- Conversion rate
- Revenue or lead value, only if the campaign has sales values
Add one row for the source language as the baseline. Then add a calculated column for lift versus baseline or share of conversions. That tells you which language overperforms.
Step 6: Verify the setup before you trust the numbers
Do a test right after the campaign goes live.
- Open the translated URL in a private window.
- Click through the campaign link exactly as a visitor would.
- Complete the conversion in a test mode if possible.
- In GA4 Realtime, confirm the page_locale value matches the URL, such as /fr/ showing fr.
- Check that the campaign name appears and the conversion event fires.
Fix any missing parameter before you scale the campaign. If the test fails, every later report will be misleading.
What to compare once the data is clean
Compare each language against three things:
- The source-language version of the same page. This shows whether the translation helps or hurts conversion.
- The campaign baseline you set before launch, such as at least 2% conversion rate per language.
- Other language versions. One language may need a different offer, not another translation.
Do not compare total sessions across languages directly. A larger language market will simply have more traffic. Focus on conversion rate and the quality of traffic from the campaign channel.
Compare by traffic source, not just language
A translated page can receive visits from the campaign, from organic search, and from direct links. Mixing them hides the campaign effect.
In GA4, add Session source or medium to the same Free Form exploration. Filter to the campaign source and medium, such as google or cpc or newsletter or email. Then compare language rows only within that source.
Organic traffic often converts differently from paid traffic. If your campaign drives paid clicks and the page also ranks organically, the paid numbers can look better or worse than they actually are.
A simple decision rule
If a language version has traffic but zero conversions, check three things: the offer, the page load experience, and whether the UTM tags and conversion event fire correctly.
If a language version has no traffic at all, the problem is distribution, not translation. Add budget, adjust targeting, or check the campaign link before blaming the translated page.
Key facts about automatic WordPress translation
| Area | What the product documentation shows |
|---|---|
| Coverage | Every WordPress page, post, product, and update is translated automatically, with no page limits or language limits. |
| Languages | Up to 125 languages, chosen by the site owner. |
| Control | Automatic does not mean uncontrolled. Translations can be edited, brand voice preserved, and key pages reviewed. |
| SEO | Automatic multilingual SEO is included for every translated page. |
| Activation | Activation on WordPress takes about one minute and then runs automatically. |
Limitations of this measurement approach
This setup assumes you can control URLs and add analytics tags. If your translation plugin uses query strings or swaps text on one URL without changing the path, page_locale from the URL will not work. You would need a dataLayer value set by the translation plugin instead.
GA4 can also sample very large explorations. For a short campaign with millions of sessions, you may see approximate numbers. Isolate the campaign source with a filter to reduce noise.
Finally, conversion tracking only works when the conversion event is measurable on your site. If a sale happens over the phone or in another system, create a manual conversion event or import offline conversions.
Terms that matter for this setup
Locale: A language-plus-region code such as en-US or fr-CA. It gives more detail than Spanish or French.
UTM parameter: A text tag added to a URL so analytics can identify the source, medium, campaign, and content of a visit.
Key event: The GA4 name for a conversion. It is the action you want a visitor to complete.
Engaged session: A GA4 session that lasts longer than 10 seconds, has a conversion event, or has at least 2 page views.
FAQ
Should I use one GA4 property for all languages or separate properties?
Use one property and split by the page_locale custom dimension. Separate properties make it harder to compare languages and can double-count a visitor who moves between language versions.
What is the minimum setup for a short translated campaign?
Add utm_content with the language code to every translated link, set up one GA4 custom dimension for page_locale, and create one Explore report filtered by campaign and locale.
How do I know if the translation caused the result or the market did?
Compare the same language version against the source-language version of the same page with the same traffic source. If the market itself is different, add a segment for country or geo to separate location from language.
When should I look at the numbers first?
Check Realtime right after launch for tagging errors. For conversion decisions, wait until you have at least a few dozen sessions per language. A short campaign may need 48 to 72 hours before the picture is stable.
What does it cost to set up this measurement?
GA4 is free, and UTM tracking costs nothing. Paid tools are optional. The cost is setup time, not software, unless you add a paid analytics or dashboard product.
Can I measure translated campaign performance without UTM parameters?
Partially. You can still use page path and page_locale in GA4 to distinguish languages, but you lose the ability to see which campaign, source, or medium sent the visitor. That is essential for a short campaign, so use UTMs.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SEATEXT can help
SEATEXT's WordPress translation feature activates in about one minute and then translates every page, post, product, and update automatically. It supports up to 125 languages with no page limits and keeps new content translated in the background.
For this campaign-analytics workflow, the relevant control layer is built in: automatic does not mean uncontrolled. You can edit translations, preserve brand voice, and review key pages, and automatic multilingual SEO is added for every translated page.
The requirement is that you still own the analytics part. SEATEXT does not replace your UTM tagging or GA4 page_locale dimension. Pair the translation feature with the measurement steps above so you can compare results by campaign and language.