The most common mistakes in dynamic URL/UTM parameter setup on Facebook (Meta) Ads)

As a product manager at AdWhatCost, a Shopify app for UTM tracking and ad attribution, I have seen my fair share of UTM parameter setups, both good and bad. More often than not UTM parameter matchmaking fails of Shopify orders to Facebook ads come down to one of four common setup mistakes. This blog article outlines the most frequently occuring pitfalls when it comes to setting up dynamic UTM parameters on Facebook (Meta) Ads so that you are well equipped to run and track ads of any budget without making any costly setup mistakes.

What are dynamic UTM/URL parameters?

Just so we are all on the same page: Dynamic URL/UTM parameters – often also referred to as URL macros – are placeholder values that will be replaced by the actual value upon generation of the URL. Some ad platforms support URL macros, while others don’t. The supported macros usually differ from platform to platform. You can find glossaries of the macros supported by the big ad platforms over at our friends at

Facebook Ads supports the following dynamic UTM parameters:

  • {{}} - Captures the ad id
  • {{}} - Fetches the ad name
  • {{}} - Pulls the id of the parent ad set of the given ad
  • {{}} - Captures the name of the parent ad set of an ad
  • {{}} - Fetches the id of the parent campaign of the given ad
  • {{}} - Pulls the name of the parent campaign of an ad
  • {{placement}} - Captures the ad placement that lead to the click
  • {{site_source_name}} - Fetches the Meta platform where the ad click originated

1. Not using Facebook’s dynamic URL parameters at all

The biggest and most obvious mistake would be not to use Facebook’s dynamic URL parameters in the first place. Other than URL cosmetics, there are no upsides to not utilizing them. Once you get accustomed to using them you will start wondering why some ad platforms did not come around to support any URL macros yet.

2. Change of campaign, ad set or ad name after publication

Using Facebooks dynamic parameters {{}}, {{}} or {{}} can make your life a lot easier as they conveniently fetch the name for you – no need to manually copy and paste the names into your UTM parameters any longer. And most importantly, the tracked data on tools such as Google Analytics, Plausible or Matomo Analytics will be much more readable as compared to when using IDs over names.

This all goes out the window though, if you change the names of your already published campaigns, ad sets or ads. Facebook Ads always renders the name of the time of the publication. So, if you change the name after the publication there will be a discrepancy between the name displayed on Facebook Ads and the name captured in your UTM parameters.

While this might not be that big of a deal when you merely remove the “- Copy” bit you forgot to delete at the time of the creation. However, if you duplicate and publish before making changes, the name discrepancy can be night and day. So, please try to avoid premature publication regardless of how tempting it can be.

3. Not utilizing all five available UTM parameters

While not a mistake per se, it is still something you should look to avoid as it limits the amount of data you can convey via your UTM parameters. As of now, Facebook supports a total of eight dynamic URL parameters. Why only use two or three UTM parameters when there is a total of five available? Utilize the powerful tool that is UTM parameters to its fullest extent. You can even use multiple dynamic parameters for one UTM parameter.

4. No reference to either campaign, ad set or ad level

Another common pitfall is conveying only information on one or two out of the three levels that are campaign, ad set and ad. For example, only using {{}} or {{}} means that only your campaign data will be trackable via UTM.

In the same vein, if you only use the dynamic {{}} and {{}} parameters while two ads in different ad sets share the same name, then it will be impossible to determine which ad set the individual ads belong to and you can only view the data of those two ads in aggregate.

The ad ID to rule them all

The only dynamic URL parameter that works by itself is {{}}. IDs are unique by design. Through the ad ID you can identify any ad as well as its parent ad set and campaign. So, including the {{}} is by far easiest way ensure optimal trackability of your Facebook ads.


To reiterate, make sure to use UTM parameters, ideally all five of them. If you are not going to include the ad ID, don’t forget to include references to the campaign, the ad set as well as the ad. Last but not least, avoid name changes after the publication at all costs. Steer clear of those frequently occuring setup pitfalls to rest assured that your Facebook Ads performance is accurately trackable via UTM.

One final thing, please keep in mind that editing the UTM parameters of running ads can lead to them being set back to the learning place or a reset of the learning phase.