Tracking guide · Meta

Facebook URL parameters for Shopify stores

By the AdZoom team · Last updated 13 November 2026

Facebook URL parameters are text Meta adds to the end of an ad's link on every click. Fill them with UTM values and Shopify records which campaign and which ad each order came from.

Set these on each ad, in Ads Manager › Ad › Tracking › URL parameters.

utm_source={{site_source_name}}&utm_medium=paid&utm_campaign={{campaign.id}}&utm_content={{ad.id}}

{{ad.id}} gives every ad its own UTM set. Orders aren't split.

The same set works for Instagram ads: {{site_source_name}} says which app the click came from. To change a field, use the free UTM builder. For Google Ads, see the Google Ads tracking guide.

How the parameters reach a Shopify order

When someone clicks your ad, Meta swaps each value in double braces for the real one and adds the parameters to the link. The shopper lands on your store with them in the address. On an Instagram click, the address carries utm_source=ig and utm_medium=paid, then utm_campaign= with the campaign's id and utm_content= with the ad's id.

Shopify keeps five UTM values for each visit that leads to an order: source, medium, campaign, content, and term. Apps read them from the order. Shopify does not pass apps the rest of the landing address, so a click id such as fbclid never reaches AdZoom.

To see them on an order, go to Orders in your Shopify admin, click the order number, then open Conversion summary › View conversion details › View full sessions.

AdZoom compares the five values on an order with the URL parameters of your ads and gives the order to the ad that matches. Nothing else ties an order to an ad, so the values have to say which ad was clicked.

The values Meta fills in

A value in double braces is a placeholder. Meta replaces it at the moment of the click. These are the ones AdZoom reads.

ValueWhat it becomes
{{campaign.id}}The campaign's id
{{adset.id}}The ad set's id
{{ad.id}}The ad's id
{{campaign.name}}The campaign's name
{{adset.name}}The ad set's name
{{ad.name}}The ad's name
{{placement}}Where the ad was shown. Meta may add new placements.
{{site_source_name}}The app the click came from, as a short code such as fb for Facebook or ig for Instagram

Ids and names point to one campaign, ad set, or ad. Placement and site source name change from click to click, so AdZoom accepts any value there and relies on the ids beside them.

Why the ad id matters

The five values on an order form its UTM set. AdZoom can give an order to one ad only when one ad sends that set. {{ad.id}} makes every ad's set different.

When several ads send the same set, AdZoom can't tell which one was clicked:

  • Ads in different campaigns. The order is split equally between those campaigns.
  • Ads in one campaign. The order counts toward the campaign, or the ad set the ads share, not toward one ad.

Paused ads count. An active ad that shares its set with a paused one still has its orders split or pooled with it.

Where to set them

URL parameters belong to the ad, so every ad needs them.

  1. In Ads Manager, open the ad for editing.
  2. In the ad's Tracking section, find the URL parameters field.
  3. Paste the string as it is, double braces included.
  4. Do the same on every active ad, and on each new ad you create.

AdZoom reads your Meta ads and never changes them, so this step is yours. Its tracking check lists the ads that still need fixing, each with a link that opens the ad in Ads Manager, and reads them again when you press Re-check.

Mistakes that break attribution

No URL parameters

The order arrives with no UTM values. Shopify can still tell that the visit came from Facebook or Instagram, but nothing says which ad. AdZoom lists these orders apart, outside every campaign's numbers.

The same values on several ads

Typed text such as utm_campaign=fall-sale on every ad gives all of them one UTM set. Their orders are split between campaigns or pooled inside one, as described above. Put {{ad.id}} in one field.

UTMs typed into the website URL

AdZoom's tracking check reads the URL parameters field and nothing else. An ad with UTM values typed into its website URL is listed as having no URL parameters, even though its orders carry them. Move the values to the URL parameters field.

Names instead of ids

Two campaigns can share a name, and renaming a campaign changes the values its ads send from then on. No two campaigns share an id. If you use {{campaign.name}} or {{ad.name}}, keep an id in another field.

Check every ad in one place.

AdZoom's tracking check lists your active Meta ads with no URL parameters and the ads that share a UTM set, so you know which ones to open in Ads Manager.

Coming soon to the Shopify App Store