How to properly handle search (query) params in javascript

An Outseta customer wanted to pass along the UTM search params to the Outseta SignUp widget so that a visitor who came in through https://example.com?utm_source=facebook&utm_medium=paid_social&utm_campaign=summer_sale gets attributed to the summer sale paid Facebook ad.

Search, or query params, is the information after the ? in a URL such as utm_source=facebook&utm_medium=paid_social&utm_campaign=summer_sale in our example.

UTM is a set of params commonly used for tracking marketing efforts, but you can add anything here to suit your needs.

I did some quick googling and came over many creative solutions like separating out the search params by splitting on ? etc.

However, vanilla JS supports this use case out of the box 🤯

const url = new URL(
  "https://example.com?utm_source=facebook&utm_medium=paid_social&utm_campaign=summer_sale"
);

console.log(
  url.searchParams.get("utm_source"),
  url.searchParams.get("utm_medium"),
  url.searchParams.get("utm_campaign")
);

// Output: facebook paid_social summer_sale

URL is the constructor you should reach for every time you deal with URLs, and the searchParams we are accessing here conforms to the URLSearchParams interface with methods such as has, sort, getAll and more.

Never try to deal with URLs yourself; JS got your back!

You'll also need to keep the values arround in session storage to make use of them later.

 

All the best,
Queen Raae

Interested in more daily treasures like this one?
Sent directly to your inbox?