Feature Highlights

Beyond UTM: tracking conversion events

Patrick Schumacher
Patrick Schumacher
June 22, 2021
Beyond UTM: tracking conversion events

As marketer, you should be very familiar with the need to measure the impact of your marketing efforts. ('Cause that's what your boss also says 🤔😉)

In a previous blog The real power of UTM and JTM tracking, we uncovered the magic of tagging your URLs with UTM or JTM parameters to monitor where your web visitors come from. However, just knowing typical [sources of] journeys doesn't give you a clear picture on what's working and what not...as long as you don't tie certain touch-points to important actions/events you want your visitors to complete. E.g. the moment a trial was started.

Conversion tracking lets you directly see results from your marketing campaigns towards achieving certain goals. And seeing the obvious that different journeys count different 'touches' (aka touchpoints), it also allows you to compare journeys against each other, regardless of length and touchpoint occurrences.

Conversion tracking also defines goal setting for AI-driven pattern recognition. E.g. Lets find out what campaigns contributed most to all those journeys (during the last 3 months) that started a trial.

What are typical conversion tracking techniques?

Two most encountered ways to track visitors are pixels and cookies.
Pixels are pieces of code placed on a site to send info about its visitors to a server.
Cookies are pieces of code that store info about its visitors in browsers so it can be used by a server again later.
And pixels and cookies are almost always used together to increase tracking efficiency.

Google Chrome allows you to manage your cookies.

The largest ads platforms (Facebook, Google) use both pixels and cookies. Many of you may already have those conversion pixels (or tags) on your site. Here's an example of a Google Analytics tag:

(function(i,s,o,g,r,a,m {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q| []).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

Why is conversion tracking important?

Using journy.io to tag your links lets you see where your traffic comes from (campaign, channel, content, medium,.. etc.). It’s commonly assumed that UTM/JTM tracking is for Google Ads only, or that you should do either UTM/JTM tracking OR conversion tracking. Using either UTM tracking or conversion tracking alone, only gives you one part of your marketing performance story.

But using both UTM tracking or conversion tracking together, allows you to connect all the dots of how people discover and engage with your business, and convert across all your marketing efforts.

And when it comes down to measuring which channels and campaigns are most successful, conversion tracking will give you the data you need to pull together some key marketing health metrics:

  • ROI (Return on Investment) and ROAS (Return on Ad Spend)
  • CAC (Customer Acquisition Cost)
  • Revenue (Total income generated from your marketing investments)

Because at the end of the day, you’ll want to know how much revenue you gained compared to how much you spent on all your marketing efforts.

Measuring ROI/ROAS

Once you have conversion tracking set up, you will want to compare your ROI/ROAS results across all channels and campaigns. With all cost parameters set up, as well as being connected to your favourite social- and ad platforms (Facebook, Facebook Ads, LinkedIn, Instagram, StoryChief, Adwords...etc...), journy.io provides clear indications on ROI/ROAS.

Here's the formula used to calculate a person's journey J ROI:
ROI/ROAS(J) = ( revenue(J) - ∑ spend(all touch(J)) ) ➗ ∑ spend(all touches(J))
E.g. J is won=$1,600; all Facebook+Blog+AdWord spend for J=$400;
ROI(J) = ( 1,600 - 400) / 400 = 3 = 300%

When targeting channel Ch (e.g. Facebook), the ROI becomes:
ROI/ROAS(Ch) = ( ∑ attributed revenue(Ch) - ∑ spend(Ch) ) ➗ ∑ spend(Ch)
E.g. J is won=$1,600; Facebook attributed revenue for J=$800; Facebook spend = $150
ROI(Facebook on J) = ( 800 - 150) / 150 = 4.3333 = 433.33%

You now want to compare Facebook with AdWords on journey J?
E.g. J is won=$1,600; AdWords attributed revenue for J=$400; AdWords spend = $200
ROI(AdWords on J) = ( 400 - 200) / 200 = 1 = 100%

journy.io will report that —at least for that 1 person/journey— facebook provides a better ROI than AdWords! Combining lots of journeys from lots of people for a given period provides total ROI for that given period!

On the details on how revenues are being attributed, or how this all works in a B2B environment where multiple people and journey's represents one sales value, we kindly invite you to register your email on our regular blog updates.

What can you track with UTM codes ?

There are five different UTM parameters. The first 3 are by far the most used parameters (Source, Medium, Campaign), but for additional insights you may also choose to track all 5. Here's exactly what you can track with each:

1. Traffic Source

The source parameter allows you to track where the traffic originated from. The parameter added to your url is utm_source. Sources you may track could be facebook, google, bing, inbound.org, or the name of an email list.

Example: &utm_source=twitter

2. Medium

The medium parameter tracks what type of traffic the visitor originated from – cpc, email, social, referral, display, etc. The parameter is utm_medium_

Example: &utm_medium=cpc

3. Campaign Name

The campaign name parameter allows you to track the performance of a specific campaign. For example, you can use the campaign parameter to differentiate traffic between different Facebook Ad campaigns or email campaigns. (See more on naming conventions below on The parameter is utm_campaign.

Example: &utm_campaign=example-campaign

4. Content

In case you have multiple links pointing to the same URL (such as an email with two CTA buttons), this code will help you track which link was clicked. The parameter is utm_content.

Example: &utm_content=navlink

5. Keyword Term

The keyword parameter allows you to track which keyword term a website visitor came from. This parameter is specifically used for paid search ads. The parameter is utm_term.

Example: **&utm_term=growth+hacking+tactics

Improving the Appearance of Tagged URLs to Website Users

It’s true that UTM codes create overly-long, unattractive URLs for users, but there is a solution to resolve this issue.

Let’s assume that we have just tagged the following URL:


The URL above looks extremely long and wouldn’t look too friendly to a user who clicks through to it.  However, your users never need to see it, thanks to the following snippet of code.  You would simply need to place the above link in some anchor text.  Then on the corresponding landing page you would add the following piece of code to the HTML of the page:

_gaq.push(function() {

window.history.pushState(”,”, ‘some-page‘);


This means after the Google Analytics code collected all the attribution data from the really long URL tagging parameters I set in the example, the URL will revert to whatever is placed in the ‘some page’ quotes in the example above.

The seven most common mistakes that we see with UTM tagging are the following:

1. Not tagging at all

We are surprised how often we see this, even with larger advertisers.

2. Not being consistent in the tagging

For example, if the medium for paid traffic is sometimes tagged as “paid” or “cpc” or “cpm” or “ad” or not at all for the same ad channel, then it is really hard to see the effect of your advertising as the data is not aggregated correctly.

3. Using different cases for the same tag

URL tags are case sensitive, so “cpc” and “CPC” are treated as different. Make sure you have a convention for how to use cases. A recommendation is to use lower case for source and medium tags as that’s how most auto-tagging tools do it. Both AdWords’s and Bing’s auto-tagging use lower case for source and medium.

4. Using the UTM parameters for things they are not meant to be used for

For example, to distinguish between different types of Facebook traffic you could set the source to “facebook-post” for page posts you create, “facebook-ads” for Facebook ads. But that is not how they are meant to be used and thus you will not see information in the right way in Google Analytics. The source should simply be facebook (or facebook.com if you want to use that as your convention) and the post and paid identifier should be put in the medium tag where it belongs. This way you can see information correctly in Google Analytics.

5. Using campaign names that are too long and don’t follow a convention

With long campaign names, many campaigns that start with the same phrase, and campaigns that don’t follow a naming convention, it is really hard to see in Google Analytics what the actual campaign is.

6. Tagging internal links

You should not put UTMs on links from your own website that lead to other pages on your website. First, it is not necessary. Google Analytics can track traffic on your site without any URL tagging. Second, if you add UTM tracking parameters on internal links you will lose information on where the traffic originally came from.

7. Not accounting for sub-domains

It is quite common for websites to have sub-domains such as blog.website.com or app.website.com. If you don’t explicitly tell Google Analytics they are all the same website it will interpret them as separate properties. This means you will see traffic from your own domains in your Google Analytics account. A typical example is when visitors click a link on Facebook to your blog and after reading the blog post click on to your main site. Without the proper setup, Google Analytics will interpret the source of the traffic as blog.website.com when it, in fact, was Facebook. You can learn how to avoid this scenario at the Google Developer site.

Keep reading...

Built for SaaS

Changing the way you do business, case by case.


Detect which signups are most likely to buy. Sell more with less effort.

Automatically surface product qualified leads.

Prioritize PQLs call lists and engage with quick actions.

Add tasks and full PQL context to existing CRM and other engagement tools.

Automated sales playbooks and collaborative inbox.


Onboard. Monitor. Get expansion signals. Reduce churn, proactively. Grow.

Automatically detect churn & expansion candidates.

Accelerate onboarding and product adoption.

Align activities around 360° customer view, with health and onboarding scores.

Automated CS playbooks and collaborative inbox.


Build revenue workflows, based on how people use your product.

Use machine learning to uncover new sales opps.

Add slow accounts to nurturing campaigns.

Optimize engagement playbooks for maximum conversion.

Leverage any data without needing engineering.


See which impact your product features have on revenue and churn.

Analyse feature importance, usage and impact.

Build key product metrics without SQL, nor coding.

Easily create customer segments based on any product interaction.

Comply to GDPR and CCPA.

Check out our use cases
Build revenue playbooks based on how people use your product
Stop crunching CRM records and data sheets once a month, to find risks and opportunities. Organise your workflows around real-time PQL signals, playbook actions, and customer data from across your stack.

Work in the tools you already know and use
Give easy access to product data
PQL intelligence and actions, the moment it happens
All point'n'click, no SQL or coding needed
Check out our use cases
Share Customer Data
Detect which leads are hot. Sell more with less effort.
Stop wasting time on unqualified leads. Look out for promising product qualified leads that trigger specific buying signals, and make more meaningful calls, knowing which features they're interested in.

Get prioritized call lists, sorted by likelihood-to-buy
See unified view of each account and their users
Get cases with follow up tasks in your team inbox
Get tasks and product data in your existing CRM
Check out our use cases
health score
Easily test new PLG strategies and improve conversions
Try out new PQL conditions, assign different engagement variations, and monitor how conversions progress over time.

See which features are most frequently used
Quickly test new PQL conditions and actions
Prove which engagement playbooks work best
All point and click, no code required
Check out our use cases
PQL Experiments
Onboard. Monitor product usage. Reduce churn, proactively.
Keep track of each individual user and account at scale, and get notified on expansion and cross-selling opportunities. Identify those who are at risk of churning, and pro-actively reach out to them.

Get notified on churn risk and expansion opportunities
Get cases with follow up tasks in your team inbox
See all account and user activities in one place
Collaborate with sales and marketing thru quick actions
Check out our use cases
journy.io customer success use case
Convert more through hyper-personal automations
Target the right audience at the right time with the right message. Your existing automations get power-boosted with customer engagement metrics.

Automatically add PQLs to engagement automations
Get product usage data in your existing marketing tools
Lower customer acquisition costs
Check out our use cases
journy.io marketing use case

Set up journy.io
in under one hour

Create your free account and start driving a product-led growth strategy with the tools you're already using.

Get Started 
journy.io white logo
© journy.io BV 2023 — All rights reserved.
The names and logos of third party products and companies shown on the website and other promotional materials are the property of their respective owners.