Conversion tracking with GA4 and the Meta pixel: what to measure, how to set it up and how to check it
Which events to measure, how to set up GA4 and the Meta pixel, how to test the data and which mistakes skew your ad results.
The five UTM tags, naming rules that last, the mistakes that break your reports and how to read campaigns in GA4.
UTM parameters are five tags (utm_source, utm_medium, utm_campaign, utm_term and utm_content) that you add to the end of a link so that Google Analytics 4 knows which channel, campaign and ad each visit came from. The first three are essential. Good UTM practice also means written naming rules that everyone follows; otherwise your reports fill up with variations of the same channel.
UTM stands for Urchin Tracking Module, a name inherited from Urchin, the web analytics software that Google acquired and developed into Google Analytics. In practice, a UTM parameter is a short piece of text added to a page address after a question mark. The page looks identical to the visitor, but Analytics reads the tag and stores it with the session.
Without tags, part of your traffic lands in reports as “direct” or “referral”, even though it came from a newsletter, an ad or a message sent on WhatsApp. With tags, you can answer the question every business owner asks: where do customers come from, and which campaign deserves next month’s budget?
| Parameter | Status | What it holds | Example |
|---|---|---|---|
| utm_source | Essential | The platform or place the link is sent from | facebook, newsletter, linkedin |
| utm_medium | Essential | The type of channel or traffic | cpc, email, paid_social, social |
| utm_campaign | Essential | The name of the campaign or action | 2026-10-autumn-lead |
| utm_term | Optional | The keyword, for paid search campaigns | accounting-bucharest |
| utm_content | Optional | The ad variant or the position of the link | video-15s-a, header-button |
A full example looks like this: https://example.com/offer?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026-10-autumn-lead&utm_content=video-15s-a. Each pair is joined to the next with an ampersand. If the address already carries parameters of its own, the UTM tags are added with an ampersand too, not with a second question mark.
The process is short, but the order matters. Most errors happen because someone improvises a link on the spot, with a name they will not remember a month later.
For steps 2 to 5 you can use our UTM builder and QR code tool, which also creates the QR code for printed material and helps you keep names consistent from one campaign to the next.
GA4 treats upper and lower case as different values: “Facebook”, “facebook” and “FaceBook” show up as three separate sources. The same goes for “paid-social” versus “paid_social”. If two people on the team use different spellings, your report fills up with several rows that should be one.
The rules below are simple and cover nearly every situation:
The utm_medium value deserves special care, because GA4 uses it to group traffic automatically into channels such as Email, Paid Search and Paid Social. Paid search ads are usually tagged “cpc” and email messages “email”. An invented medium, such as “promo” or “ad1”, often ends up in “Unassigned” or “Referral”. Exactly how values map to channels depends on Google’s current rules, so check the official documentation at support.google.com/analytics.
Not every link needs tags. The practical rule: put them on links you control that lead to your website from outside it.
Never put UTM tags on internal links on your own site, for example from a banner on the homepage to a product page. When a visitor clicks such a link, GA4 can replace the real source with your internal label. To measure banner clicks, use events, not UTM tags.
For Google Ads, auto-tagging normally does the job: it adds a click identifier and passes campaign data into Analytics when the accounts are linked. If you add manual tags on top, the two systems can overlap, and the outcome depends on your account settings. Check this setting in the current interface before you add UTM tags to Google Ads links.
In Meta ads, the parameters go into a dedicated field on the ad, and the platform offers dynamic parameters that are replaced automatically with the name of the campaign, ad set or ad. You do not type each variant by hand, and the names in Analytics stay aligned with those in the ad account. Our Facebook and Instagram ads service usually relies on this approach.
A typical template: utm_source=facebook, utm_medium=paid_social, utm_campaign holding the campaign name, utm_content holding the ad name. One detail to watch: if you rename a campaign after launch, the label in links that are already live can change, and your history in Analytics splits in two. Choose names carefully at the start, and for serious analysis keep a numeric campaign ID in a lookup table.
The exact fields and macro names change from time to time, so confirm them in Ads Manager. As a principle, stable campaign names are safer than long texts full of special characters.
Tagged sessions appear in the traffic acquisition report, broken down by session source/medium or by session campaign. There you see how many sessions each tag brought, how long visitors stayed and how many key events (conversions) they generated. You can add a secondary dimension, such as ad content, to compare variants.
The reading order we recommend:
One thing to remember: UTM tags show where the session came from, not who actually bought. A customer may see an ad on a phone, return a week later from a newsletter and buy then. The attribution models in GA4 treat that story differently, so do not expect GA4 figures to match Ads Manager exactly. For measurement setup, see our guide to conversion tracking with GA4 and the Meta Pixel, and for reporting in plain language, GA4 for business owners.
On-site tracking often depends on user consent. This text is informative and is not legal advice. For cookie and measurement settings, confirm the current requirements with a lawyer or your data protection officer.
When several people work on campaigns (in-house marketing, an agency, freelancers), a guide in a document nobody opens is not enough. You need a few small but mandatory elements.
The first is a campaign register: a shared spreadsheet with columns for launch date, channel, final link, owner and status (planned, live, ended). Every new UTM link goes in before it is used. The second is a list of allowed values for source and medium, on a separate tab, with data validation in the spreadsheet so that nobody can type “Facebook” instead of “facebook”.
The third is an owner. This does not need a new job; it needs one person who approves new values and checks the monthly report for duplicates. The fourth is a rule for agencies: the contract or brief states that all links are built to your convention, and the register stays yours, not the supplier’s. When you change agencies, the history stays with you.
If you already have years of mixed data, do not try to repair it retroactively. Fix the convention from now on, note the change date in an annotation, and compare periods with care.
For clients whose campaigns we run, the naming convention is agreed before the first ad, in the same meeting where we choose the goals and the conversion events. We keep the register in a shared spreadsheet that the client can see too, and at the end of each month we search GA4 for values that break the list.
We do not treat UTM tags as an end in themselves: they matter only if they lead to decisions, and decisions depend on end-to-end measurement, from event to report. If you want to check how measurement stands on your own site, see our conversion rate optimisation service, where tracking setup is the first step. For a review of your measurement, you can also write to us directly.
No. For a visit to be attributed correctly, utm_source, utm_medium and utm_campaign are usually enough. The utm_term and utm_content parameters are optional and are used only when you want to compare keywords or ad variants. More tags mean more chances of error, so fill in only what you will actually analyse.
They do not affect page speed and carry no technical risk in themselves. The link just becomes longer. The only privacy problem arises when someone puts personal data in the tags, for example an email address. Keep parameters strictly descriptive of the campaign, with no names, phone numbers or personal identifiers.
You can, but the change is not retroactive. Sessions already recorded keep the old label, and new ones appear with the new label, so your history splits into two rows. If the change is necessary, note the date in your register or in an annotation and compare the two periods together.
Most often because utm_medium holds a value that GA4 does not recognise for automatic channel grouping, or because it is missing altogether. Use standard values such as “cpc” or “email”. Check the spelling too, then consult Google’s official documentation, because the grouping rules can be updated.
Usually not, if auto-tagging is on and GA4 is linked to your Google Ads account, because campaign data reaches Analytics without manual tags. Use UTM tags on Google Ads links only in special cases, after checking how they interact with your account settings. If you are unsure, get a second opinion before launch.
Create a dedicated UTM link whose source describes the place (for example “metro-poster”) and whose medium is “qr”, then turn the link into a QR code. Use each link in one place only, otherwise you will not know which poster worked. Test the code on several phones and check in real time that the visit appears in GA4.
Laborator
Lab tools that help you put this guide into practice.
Blog
Which events to measure, how to set up GA4 and the Meta pixel, how to test the data and which mistakes skew your ad results.
Basic settings, key events, five useful reports and what to ignore in GA4, explained for people who are not analysts.
How to arrange a campaign page with a single goal: promise, proof, objections, form and the mistakes that make customers cost more.
Tell us where you are now and what you want to achieve — you will get a concrete proposal with services, timeline and a transparent budget.