How to optimize UTM for uniform campaign typology & tagging

Advance online campaign management with UTM parameters, structure unification, and enrichment for more detailed performance evaluation.

Published: Oct 14th 2012
Updated: May 23rd 2021 | 17 min read


Over years we spent countless hours optimizing online campaigns to make them truly effective. To be able to do so we required a much richer set of campaign parameters available for analyses. One solution how to pass such information for further processing is the traditional UTM parameters. In cooperation with major performance and media agencies and several PPC specialists, we were looking for data entities that could have an impact on performance. Now, our meta-model covers over 60 different entities with hundreds of dimensions. For basic performance tuning you do not need all of them, the maximum, we think is practical, covers roughly 40 dimensions. As there are only five UTM parameters we had to develop a technique to squeeze more information into what is available (Google Analytics 4 has only three parameters) to satisfy our needs. This guide is our approach to how to address the limitation and how to assure consistency and unification of campaign tagging.

There are two options how to address this problem, either you combine more parameters into each UTM parameter, or you generate a unique id for each dimension combination and keep its metadata in an external system. The external metadata repository is not a simple solution as it requires complex data integration and is thus not suitable for the majority of online spenders. This guide is developed for those using Google Analytics as their primary web analytics tool and other tools besides Google Ads (this can be natively linked to GA and you do not need UTM).

Combining more dimensions about the campaign in its name UTM parameter can provide you with insight into how targeting, message type, location, etc. impact your performance. You can use these dimensions to filter or compare results between campaigns. In practice, this means that you can easily compare campaign performance when targeting new versus existing customers. Differences between search and retargeting campaigns or when tagging is unified, so you can easily test and evaluate the performance of your channel mix.

How can the typology of online campaigns help you?

Tagged campaigns bear special information that can tell you, from where your visitors are coming to your site or which of your campaigns are delivering the best results. With web analytics tools like Google Analytics, you can use information from UTM parameters as dimensions to analyze such detail. If you want to identify how many visitors came to your site from a specific Facebook or Twitter post, you must include these UTM tags in these links as well.

By tagging individual campaigns, you can distinguish how many people came from specific posts or a specific banner. You can also specify UTM parameters within e-mailing campaigns, cost-per-click (CPC) campaigns, or on your blog. There are many options.

This article will help you unify the configuration of each campaign URL and parameter so that you can simply:

  • Universally filter data in Google Analytics according to various criteria and get maximum insight into the success of individual campaigns and traffic on your site.
  • Link costs and revenues from individual campaigns. So, you will see not only how each campaign performed, but also how much money it brought, i.e. ROI.

Let's start with the general principles!

Consider these rules below as our recommendation, they are based on our experience and years of practice. If you stick to this guideline, it will minimize the number of errors while tagging campaigns, help you to be more effective in analyzing a large campaign portfolio, and will yield deeper insight. Simply it will allow you to make better decisions.

The "text" written in { } brackets everywhere in this document indicates that it is a "text" that must be replaced with a "specific expression" when used in practical terms. For example, p_ {product category} refers to a campaign that will have its own name for each product category, which you add yourself based on the type of campaign being prepared, e.g. p_shoes or p_glasses .

Use delimiters correctly

Underscore _

Do not use spaces! If you have already used them, replace them with an underscore. For instance, rename the campaign called "summer sale" tosummer_sale.

Tilde ~

The wavy line is reserved as a component separator, from which the given UTM parameter is composed. Therefore, if you want to separate the campaign name from the report name in the UTM parameter, you can do so as follows: brand~scott. It indicates the "brand" campaign and a group (adGroup, report) named "scott". Or, if you buy ads via an RTB platform, you can identify the RTB platform type through the source parameter.

Example , where “” is the website on which the ad is displayed and ”adf” is the name of the platform (Adform).

Use lowercase letters without accents

Google Analytics distinguishes between uppercase and lowercase letters. The campaign name summer sale is not the same as the Summer_sale. Google Analytics evaluates such tags as two different campaigns. Therefore, we recommend using lowercase for campaign names.

While it is possible to insert accented characters into UTM parameters, we do not recommend you to do so. In fact, when copying, importing, etc., the sign may be lost or misinterpreted if the encoding is set incorrectly.

Unify the names of the campaigns and values sent in UTM parameters

UTM parameters serve as the keys to connect Google Analytics and marketing or advertising platforms (Sklik, AdWords, etc.). If the platform can't export the configured UTM parameters (and this is often the case), or if the UTM parameters don't match the campaign name, then we can't link data from these platforms. Therefore, you ought to assign the same names to campaigns, adGroups, and other parameters that you also use in UTM parameters. The same campaign should be named the same on different platforms.

If the campaign management system (like Sklik) allows you to use auto-tagging via UTM parameters, then you can, for example, create utm_campaign as {campaign}~{adgroup} .

UTM parameters

Source (utm_source)

In the "source" parameter, we always insert the name of the website where the ad is displayed or the name of the company (platform) through which the ad space is served. In the "source" parameter, the word "direct" etc. can also appear as a reserved word in Google Analytics, so these reserved values should not be used in UTM parameters. Google Analytics automatically recognizes different sources of visits and if the source is not explicitly defined, it must be set. For example, when a visitor comes from an organic source, the source is assigned to the company that manages that search engine. In order to analyze the impact of a specific company on the traffic/profit on your website, we recommend using the company name instead of the platform name when buying visits from multiple platforms (e.g. AdWords or Sklik), for example:

  • Google - the label for Google SERP (Search Engine Result Page), AdWords or merchant
  • Seznam -the label for, Zboží.cz or
  • other

Often it is good to hide the source from which the customers came. The source is therefore identified by a code stored in an external table or added to the transformation filters in Google Analytics. Such a code is indicated by the prefix xd_.

In case you use one or more platforms for ad distribution, it is necessary to distinguish through which tool the ad was purchased. In order to compare the performance of the platforms, the ad placement is created in the "source" as a combination of the platform name and the publisher's site name. The platform code should be then part of the "source" or alternatively inserted in the "medium".


  • adf (adform)
  • adb (adobe)
  • dtx (dataXu)
  • xnt (Xa.NET)
  • svp (silverpop)
  • unc (unica)
  • mch (Mail Chimp)
  • bee (PPC Bee)
  • other

Examples of use

  • utm_source = google
  • utm_source = list
  • utm_source =
  • utm_source = xd_145eer47
  • utm_source = list~adf
  • utm_source = internal~svp (internal emails sent via Silverpop, if internal is too general and the purpose is, for example, to promote between internal websites, it can be replaced by the domain or company name from which the email addresses were obtained)

Medium (utm_medium)

"Medium" refers to the medium or technology through which the visitor was brought to the site. It also indicates the type of payment model used to pay for advertising. For example, when auto-tagging is turned on in AdWords, Google uses the CPC label but does not display any information about what medium was used. This information is passed between AdWords and Google Analytics internally. Some platforms use different codes for the same thing - CPM and CPT, for example. We, therefore, recommend that you standardize this terminology and use consistent codes. It is generally preferred to use the name of the medium for "medium" rather than the payment model type. This is because the medium has a higher information value for subsequent evaluation. For systems where there is no internal data aggregation, it will provide a wider range of information in return.

Payment models

  • CPC (cost per click)
  • CPM (cost per thousand)
  • CPT (cost per thousand)
  • CPV (cost per view)
  • CPA (cost per acquisition)
  • CPP (cost per point, price per affected population)
  • other


  • product
  • email
  • affiliate
  • display / banner
  • discount
  • social
  • offline
  • paid
  • post
  • job post (job advertisement)
  • fix (paid at a fixed price regardless of the number of impressions or clicks)
  • other

Examples of use

  • utm_medium = cpc
  • utm_medium = cpa
  • utm_medium = email
  • utm_medium = social
  • utm_medium = banner

Campaign (utm_campaign)

"Campaign" is a complex attribute that should contain information about how, to whom, when, where, and for what purpose the ad was displayed. For example, the objective of a campaign may be to promote brand, product, or service. It is important that the name of the campaign in the marketing platform is the same as the name in the UTM parameter. We recommend creating the campaign name as a composite attribute that contains metadata about the campaign itself, which will allow it to be compared with similar campaigns. For example, a campaign displayed in a SERP has a different performance than a campaign displayed as a banner on a web page.

Display type

Campaigns are classified by type and location:

  • s (search) - The ad is displayed in response to data provided by a user (SERP on Google or List).
  • d (display, visual advertisement) - The advertisement is displayed in the form of a graphic or text element, the display is based on information collected about the user or about the website where the advertisement is displayed.
  • p (product, product search) - This is a combination of searches where a user enters a keyword and then displays a predominantly graphic element with an advertisement for a product or service.
  • m (message) - A form of a paid message sent mainly on social media, such as Facebook's "promoted page post" or LinkedIn "sponsored updates".
  • v (video) - A video ad shown on television programs or on YouTube that allows direct measuring.

Targeting type

  • r (remarketing / retargeting, re-targeting) - re-targeting an already recognized visitor. This is the use of customer behavior information. For example, if a visitor abandons a cart, they are subsequently communicated via a display ad showing the content of their cart.
  • bhv - behavioral targeting based on user’s behavior across the internet, their intent, interests, etc.
  • src - search targeting based on user’s intent expressed by submitting specific keywords to search console.

Segment type

It is necessary to distinguish whether the advertisement is intended to attract new visitors (acquisitions) or existing customers (retention).

  • l (lead) - Acquisition advertising aimed to acquire new contacts
  • n (new) - Acquisition advertising aimed to acquire new customers
  • c (customer) - Retention advertising aimed to maximize customer value

Advertising target

Advertising target specifies the subject of the advertisement that is being offered to the customer or indicates the customer's expected actions. For a general advertisement for the sale of goods that targets by category, the category name will suffice; the higher level of detail can be specified at the report/adgroup level.

Example If an advertisement promotes hats, then you can use the word "hats" in the name. It can also be a category, collection, brand, product, other, or a specific product name or a combination of the above.

Another option is to state the objective of the ad describing the customer behavior you want to achieve. Examples include campaigns aimed at completing an order or repurchasing. In this case, the name of the campaign should contain the phase of the shopping cycle in which the customer is currently located or the goal that he should achieve, respectively. what he should do, such as order_completion, order_delivery_type, etc. Similarly, it can be an action a visitor should take, such as register_demo or download_study.

You should always follow a terminology hierarchy - from left to right and from general to specific. However, the target of the ad can also be a group of search parameters that are included in a campaign.

Cross Masters Tip
In a campaign to get the right keywords s_broad , campaign titles should always be in a single language. We recommend using English names.

Brand advertising

There are several types of brand campaigns. It is either an advertisement of your own brand, product promotion, or takeover of the competition.

  • brand or {brand} is an ad promoting your own brand
  • interbrand_ {competing brand name} is an advertisement that captures visits to a competing brand
  • intrabrand_ {product} is an ad for promoting products through the brand name of the product


In "Other", provide further details of the campaign, such as:

  • type of motivator - eg "sale", "promo", "bonus",
  • ad launch time - such as emails that are sent daily or weekly.
  • campaign location - eg "brno", "prague", then e.g. "branches" or "cz"
  • targeting men or women, etc.

reports | adgroup | advertisement

Different platforms allow you to split campaigns into subgroups, reports, etc. A campaign is then a collection of different subsets, for example, an AdGroup in AdWords. The parameter sent in the UTM should therefore include both the campaign name and the report name.

If you have a campaign used for text search, it will be made of subgroups and its goal is to promote a brand, then the name of the campaign might look something like this for illustration:
s_interbrand~{encrypted code of competing company}
A campaign that targets incomplete orders through remarketing could be named like this:


For recurring campaigns, we recommend adding the date the campaign was activated to the name of the campaign. In an email campaign with the name "Newsletter", it is difficult to distinguish when specific emails were sent out. So for recurring email campaigns, we advise using the date as an additional parameter. In basic form, it is sufficient to have the code in YYMMDD format, but for better evaluation directly in Google Analytics, it is more efficient to extend the date code. Then you will be able to directly evaluate cyclical segments, for example, to compare the performance of a specific day. For campaigns sent weekly, we recommend using a code containing the week number.

Campaigns coded code 21w46tu and 21w46we are sent in the 46th week (ISO week is used) on Tuesday, and Wednesday.
Monthly campaigns are assigned a code. For example, the 21m09w2tu campaign is a campaign submitted in September, the second week, and on Tuesday.

Codes to indicate the days of the week

  • mo (Monday)
  • tu (Tuesday)
  • we (Wednesday)
  • th (Thursday)
  • fr (Friday)
  • sa (Saturday)
  • su (Sunday)

Values for the campaign name

Attribute name Allowed values Parameter
Display types,d,p,m,vutm_campaign
Targeting typer,src,bhvutm_campaign
Segment typen,l,cutm_campaign
Advertising targetSee above for different valuesutm_campaign
OtherSee above for different valuesutm_campaign
DateSee above for different valuesutm_campaign

Content (utm_content)

"Content" contains variations of sizes and texts in advertisements, types of banners used, etc. This parameter is useful for testing content.

Waaila homepage

Check your parameters with Waaila and validate your UTM tagging.

Term (utm_term)

"Term" contains the keyword that was used for the search. The name of the website where the ad was displayed can be inserted in this parameter as well. You can also add the category of content that the visitor was browsing before clicking on the ad. For some types of campaigns, such as paid search, it is added automatically.

Data transformation

A number of businesses use various distribution points or kiosks. A website visit from such a kiosk should therefore be recorded as a special campaign or medium. Such detection is done the best via a special Google Analytics setting.

A similar case are paid ads, where for some reason the use of the UTM parameters is not appropriate. For example, it could spoil the site's reputation or arouse suspicion among visitors. So if it is not appropriate to use UTM parameters, then the data transformation is done for example from document.referrer.

_bulbs.heureka.cz_ is transformed by inserting “bulbs” into the campaign name and to referrer path a custom variable is inserted.

Id (utm_id)

Some companies are developing complex campaign tagging logic causing high complexity in values of utm parameters. A lot of information covered in URLs can be confusing for users and it may contain sensitive data about the marketing strategy of the company. Also, a number of utm parameters might not be sufficient and more campaign dimensions are needed for proper analysis. The complexity of sending all utm parameters can be avoided by using parameter utm_id. It is an Id assigned to a specific campaign performed. In URL only this Id is sent, all additional parameters are stored separately in a table where you can store both standard and custom campaign dimensions. You can import this mapping table to Google Analytics and assign all the dimensions to specific utm_id.

You perform emailing campaign on discounted bulbs with a link to a specific product on your website. When assigning tags, instead of all utm parameters, you add utm_id=123xyz to URL of the link.

Then a table with mapping of your campaign dimensions needs to be created in the following structure:

ga:campaignCode ga:source ga:medium ga:campaign ga:content ga:dimension11

To import the data in Google Analytics, you can either import it as .csv file or use management API. Detailed information about the campaign data import can be found here.


Congratulations, you read the article to the end! We believe that the information has been beneficial to you and helped you orient yourself in the wild waters of the campaign naming typology. The most important thing to remember is: stay consistent and aligned with marketing strategy.

Thanks to mutual discussion and feedback, we can inspire each other and be one step further. Share with us your observation, knowledge, tips, and original solutions from your experience.

If you do not fully understand something listed here or would like to s discuss specific issues, contact us. We can answer your questions and help you with your campaign tagging.
Contact Us