UTM ID — What it is and why you need to add it to your ad tracking now

Tracking UTM

icon Get in-depth insights

OWOX UTM Builder

icon Get in-depth insights

OWOX UTM Builder

If you have never heard of the utm_id tag, now is the time to get to know it! Without this tag, you won’t be able to import ad cost data, impressions, and clicks for non-Google campaigns into Google Analytics 4.

Find out the real value of ad campaigns

Automatically import cost data to Google Analytics 4 from all your advertising services. Compare campaign costs, CPC, and ROAS in a single report and make fully-informed decisions.


What is UTM ID?

You are probably familiar with the standard UTM tags (utm_source, utm_medium, utm_campaign), which are added to the end of a URL to track and analyze incoming website traffic.

Utm_id tag (which refers to the Campaign ID in Google Analytics) is not as widely-used.

UTM tags were invented by Urchin Software Corporation over 15 years ago. After Google acquired the company, this functionality was migrated to Google Analytics.

Although the utm_id tag has been around as long as the standard of UTM tags, few people have used it until now. In Google Analytics Universal, this tag was optional and was primarily used to shorten URL addresses.

However, in Google Analytics 4, utm_id has become more important. If you want to import ad cost data from non-Google advertising services to Google Analytics 4 through importing data, then four UTM_tags must be present in your ad campaigns:

  • utm_campaign (campaign name)
  • utm_source (campaign source)
  • utm_medium (campaign channel)
  • utm_id (campaign ID)

To be able to import non-Google advertising costs into Google Analytics 4, you need to go to your advertising accounts now and adjust the final URL by adding the utm_id parameter.

Why do you need to add utm_id to your ad tracking?

Many marketers don't want to bother with manually creating complex reports and prefer to view advertising campaign reports in Google Analytics. But in order to evaluate the effectiveness of advertising, you need to upload expenses, impressions, and clicks from non-Google sources to Google Analytics. The problem is that without utm_id, you won’t be able to upload this data to Google Analytics 4.

Let’s look at some specific examples.

After setting up ad cost data importing, a Non Google cost report will appear in the Acquisition section of Google Analytics 4.

Non Google cost report

To populate the columns for clicks, impressions, and expenses with values instead of zeros, you need to upload a CSV file with cost data into Google Analytics 4.

Let’s try, for example, to upload information about campaign1 from source/medium = bing/cpc without a filled value in the campaign_id column.

CSV file with cost data

If we try to upload this file to GA4, the following error will appear: Invalid empty value detected on row campaign_id. A non-empty value must be set.

Invalid empty value detected on row campaign_id. A non-empty value must be set.

If we fill in the campaign_id field (with some random value), then when importing the file, we will see the following result:

Match rate 0%

If we look at the Match rate column, we’ll see zeros there. This means that GA4 cannot match the uploaded data with the information that is already in the system because there is no key (utm_id) to blend the data.

The file is uploaded, there are no errors in it, but we have a zero % Match rate. This means that nothing we have uploaded in this file matches what is in GA4. All traffic that was not tagged with utm_id will not be matched with what we uploaded in the file.

Therefore, you have not made any progress in analyzing the effectiveness of non-Google advertising campaigns in GA4 ¯\_(ツ)_/¯

Many users ask themselves: Why do I get a Match rate of 0% when importing cost data in Google Analytics 4?

To solve the problem described above, you should first tag your traffic with utm_id. The next day, in the report in the Google Analytics 4 interface, you will see that this field is no longer empty, which means that you did everything correctly.


Session campaign ID in Google Analytics 4


Session campaign ID in Google Analytics 4

Next, you should fill in the corresponding campaign_id_column field in the uploaded file.

Campaign_id_column field

When you load this CSV file into GA4, the zero Match rate will disappear.

How to avoid Match rate 0%

And in the Non-Google cost report, you will see clicks, costs, impressions, and ROAS. 🎉😎

Non-Google cost report in Google Analytics 4

How to add utm_id to your links

Campaign URL Builder from Google can be used to create links with UTM tags.

Campaign URL Builder

What should I use to fill in the Campaign ID value?

If you plan to manually upload expenses to Google Analytics 4, you can use any values you like for Campaign ID.

However, this approach won’t work for automated cost importing. The service that imports your ad cost needs to obtain the Campaign ID value. Not all advertising platforms allow you to retrieve this ID via an API. Therefore, we recommend duplicating the Campaign Name value in Campaign ID.

Campaign Name value in Campaign ID

How to check if utm_id values are being passed to Google Analytics 4

To verify that you have set up your utm_id correctly and that it is being passed to GA4, you can create a custom report in the Explorations section with the Session campaign ID parameter.

For example, if you have added utm_id to your URLs and you already have traffic with these tags, then the Session campaign ID field will be populated in the report the next day.

A custom report in the Explorations section


If you plan to import advertising costs to Google Analytics 4, then you need to add the required utm_id parameter (campaign identifier) to your ad links.

We recommend updating UTM tags on all of your paid advertising campaigns to include the Campaign ID parameter, as this will be necessary to retrospectively import cost data into GA4.

Currently, only manual ad cost import is available in Google Analytics 4. To automate importing and save your time, use the solution from OWOX.

Automatically import Google Analytics 4 cost data

With OWOX, you can automatically merge your advertising cost data from different platforms and upload it to GA4 so you can analyze your return on ad spend (ROAS) and acquisition cost to make fully informed marketing decisions.

Early access will be available April 2023. Sign up now to get priority access, news, and updates.



Expand all Close all
  • What does UTM stand for?

    UTM stands for Urchin Tracking Module. It's a format used in URLs to track the effectiveness of marketing campaigns across various channels.
  • How to create a UTM ID for my campaigns?

    To create a UTM ID, you need to add a parameter named "utmid" to your UTM tracking URLs. You can use any value for this parameter, such as a specific campaign name, source, or any unique identifier that helps you distinguish between different campaigns.
  • How can I analyze the data collected using UTM IDs?

    The data collected using UTM IDs can be analyzed in various ways. Most analytics platforms provide built-in reports and tools to examine the performance of individual UTM IDs or compare different campaigns. By reviewing metrics like traffic, conversions, bounce rate, or sales, you can gain insights into the effectiveness of your marketing activities and make data-driven decisions.

icon Get in-depth insights

OWOX UTM Builder

icon Get in-depth insights

OWOX UTM Builder