# Track marketing campaigns with UTM parameters

Sign Customiser captures UTM parameters from your storefront URLs and passes them into webhooks, emails, and JavaScript events so you can attribute form submissions and orders back to the campaign that drove them.

- Source URL: https://www.signcustomiser.com/help/faqs/14631311-track-marketing-campaigns-with-utm-parameters/
- Markdown URL: https://www.signcustomiser.com/help/faqs/14631311-track-marketing-campaigns-with-utm-parameters.md
- Category: FAQs
- Last updated: 2026-04-15

## Article

When someone lands on your store from a marketing campaign — Google Ads, Facebook, an email newsletter, a social post — the URL usually contains UTM parameters like `utm_source=google&utm_medium=cpc&utm_campaign=spring_sale`. Sign Customiser captures those parameters, keeps them for the session, and includes them when the customer submits a quote request or custom design form.

That means you can trace every form submission back to the campaign that brought the customer in. No more guessing which ads or emails are driving leads.

## How it works

1.  A customer clicks a link with UTM parameters and lands on your store.

2.  Sign Customiser captures the UTM values automatically from the URL.

3.  The values are stored in the browser's session storage so they persist as the customer browses your site.

4.  When the customer submits a form, Sign Customiser sends the UTM data along with the submission.

5.  Your CRM, analytics tool, or automation workflow receives the UTM data and can attribute the lead to the right campaign.

No configuration needed. If UTM parameters are in the URL, Sign Customiser captures them.

## Which parameters are captured

Sign Customiser recognises the standard UTM parameters:

-   `utm_source` — where the traffic came from (e.g. google, facebook, newsletter)

-   `utm_medium` — the marketing medium (e.g. cpc, email, social)

-   `utm_campaign` — the campaign name (e.g. spring\_sale, black\_friday)

-   `utm_content` — used to differentiate ad creatives or link placements

-   `utm_term` — the paid search keyword

Only present parameters are captured. If a URL only has `utm_source` and `utm_medium`, only those two will appear in the data.

## The best way to set this up

For most merchants, the cleanest approach is a `form:submitted` webhook. This sends the UTM data to your server or CRM the moment a customer submits a form.

1.  Set up a webhook in Sign Customiser by following our [Subscribe to webhooks](../../integrations/subscribe-to-webhooks/) guide.

2.  Choose the `form:submitted` topic.

3.  Point that webhook at your server, CRM middleware, or automation platform (Zapier, Make, etc.).

4.  Read the `form_submission.utm_params` field from the payload.

5.  Store the values against the contact, lead, or opportunity in your CRM.

If you already process form submission webhooks for Google Ads click IDs, UTM parameters arrive in the same payload — no extra webhook needed.

## Example webhook payload

When a form submission includes UTM data, the webhook payload looks like this:

```
{  "form_submission": {    "submission_number": 42,    "type": "custom_form_submission",    "ad_click_ids": {      "gclid": "CjwKCAjw7p6aBhAoBhAAEiwA..."    },    "utm_params": {      "utm_source": "google",      "utm_medium": "cpc",      "utm_campaign": "spring_sale"    },    "form": { ... },    "responses": [ ... ]  }}
```

The fields your developer needs for campaign attribution:

```
form_submission.utm_params.utm_source
form_submission.utm_params.utm_medium
form_submission.utm_params.utm_campaign
```

## UTM data in notification emails

When UTM parameters are present, they appear in the merchant notification email under a **UTM Tracking** section. Each parameter is listed with its key and value. This is useful for manual attribution if you do not have an automated CRM integration yet.

## Frontend JavaScript events

The same UTM data is available in Sign Customiser's frontend JavaScript events:

-   `signCustomiserProductAddedToCart`

-   `signCustomiserFormSubmitted`

-   `signCustomiserQuoteSubmitted`

Access the data at `event.detail.utmParams`:

```css
document.addEventListener("signCustomiserFormSubmitted", function(e) {  var utm = e.detail.utmParams;  if (utm) {    window.dataLayer = window.dataLayer || [];    window.dataLayer.push({      event: "sign_form_submitted",      utm_source: utm.utm_source,      utm_medium: utm.utm_medium,      utm_campaign: utm.utm_campaign    });  }});
```

For more on frontend events, see our [Tracking events for ad conversions](../../faqs/tracking-events-for-ad-conversions/) guide.

## Where the data is stored

There are two stages:

1.  **While the customer is browsing** — Sign Customiser keeps the UTM parameters in the browser session storage so they survive page navigation within the same session. The storage key is `signCustomiser:utmParams`. If a customer clicks a new UTM-tagged link during the same session, the values update to the latest ones.

2.  **When the form is submitted** — the UTM data is attached to the submission and passed into your webhook payloads, merchant notification emails, and JavaScript tracking events.

Sign Customiser does not store UTM parameters in a database you can query later. The data flows through in real time. Capture it in your webhook handler or JavaScript event listener when it arrives.

## Using UTM parameters alongside Google Ads click IDs

UTM parameters and Google Ads click IDs are captured independently. A single form submission can include both — and often will, since Google Ads traffic typically has both `gclid` and UTM parameters in the URL.

Use click IDs for Google Ads offline conversion tracking. Use UTM parameters for broader campaign attribution across all your marketing channels.

For Google Ads click ID setup, see our [Send Google Ads click IDs to your CRM](../../faqs/14190105-send-google-ads-click-ids-to-your-crm/) guide.

## Common questions

**Do I need to configure anything to capture UTM parameters?**

No. Sign Customiser captures UTM parameters automatically when they are present in the URL. There is nothing to enable or configure.

**What if the customer navigates to another page before submitting a form?**

The UTM values are stored in session storage, so they persist as the customer browses your site. As long as the browser session is still open, the UTM data will be included when they submit a form.

**Does this work when the customiser is embedded in an iframe?**

Yes. UTM parameters are passed through to the customiser across iframes on Shopify, WooCommerce, and any other platform using our embed code.

**Will I always get UTM parameters?**

Only when the customer arrived via a URL that contains them. Direct visits, bookmarks, and links without UTM tags will not produce UTM data. The field will be `null` in those cases.
