> ## Documentation Index
> Fetch the complete documentation index at: https://partner-help.letsdothis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-domain tracking

> Keep UTM attribution intact when participants visit your own website before continuing to the Let's Do This checkout, so registrations trace back to the campaigns that drove them.

In December 2025 we launched [Marketing Links](/docs/marketing/marketing-links), which guides you to create links to your event with the right UTM parameters attached. Those UTMs unlock campaign-level insights inside Nova and the Marketing analytics dashboard.

Marketing Links work best when you send traffic straight to the Let's Do This checkout. But you don't always want to do that. Often you want to send participants to your own website first, then on to your event checkout. Cross-domain tracking is what preserves attribution across that hop.

Without it, UTM parameters can be lost when a visitor moves from your domain to ours. Registrations then can't be reliably matched back to the channels or campaigns that drove them. With cross-domain tracking in place, that attribution is preserved end to end.

For example, if you create a UTM-tagged link like:

```
www.your-event.com/register?utm_source=instagram&utm_campaign=earlybird
```

The script carries `utm_source=instagram&utm_campaign=earlybird` through to the Let's Do This checkout when a visitor clicks from your site. That registration is then correctly attributed back to your Instagram early bird campaign.

## What you'll need

* UTM-tagged links pointing to your website.
* Access to edit your website, or a web team member who can do this for you.

## How to set it up

<Steps>
  <Step title="Add the script to your website">
    Copy the script below and paste it into the `<head>` tag of any page on your site where you send paid or organic traffic on to Let's Do This.

    ```html theme={null}
    <!-- Cross-Domain UTM Tracking -->
    <script>
    (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.CrossDomainTracking={}))})(this,function(e){function t(e){let t=new URLSearchParams(e),n={};return t.forEach((e,t)=>{t.startsWith(`utm_`)&&e!==``&&(n[t]=e)}),n}function n(e){return e?e===`letsdothis.com`||e.endsWith(`.letsdothis.com`):!1}function r(e,t){let n=Object.keys(t);if(n.length===0)return e;let r=new URL(e);for(let e of n)r.searchParams.set(e,t[e]);return r.toString()}function i(){try{let e=t(window.location.search);if(Object.keys(e).length===0)return;document.querySelectorAll(`a[href]`).forEach(t=>{try{n(new URL(t.href).hostname)&&(t.href=r(t.href,e))}catch{}})}catch{}}try{typeof document<`u`&&(document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,()=>setTimeout(i,100)):setTimeout(i,100))}catch{}e.TARGET_DOMAIN=`letsdothis.com`,e.appendUtmParams=r,e.extractUtmParams=t,e.isTargetDomain=n});
    </script>
    ```

    We recommend testing on a single event page first, before adding the script to the rest of the pages on your website.

    <Note>
      The script is self-contained and fails safe. If anything goes wrong it simply does nothing, so your visitors are never affected.
    </Note>
  </Step>

  <Step title="Validate the setup">
    Once the script is live, click through from a UTM-tagged link to the page
    where you added the script. Confirm that the UTM parameters carry through as
    you continue on to the Let's Do This checkout. Your Technical Account Manager
    can help you verify this if needed.
  </Step>

  <Step title="Check your attribution data">
    You can now see campaign-level attribution data in your Let's Do This dashboard, and within Nova or the Marketing analytics dashboard. This data can take up to an hour to sync.

    Traffic, conversions, and registrations are tagged with the relevant UTM parameters. This lets you see which campaigns and channels are driving traffic and conversions.
  </Step>
</Steps>

## Where to add the script

Add the script to every page on your site that links out to Let's Do This. Start with one page and validate it before rolling it out to the rest.

## Performance and privacy

The script has no impact on your page load times. It is lightweight and self-contained. It does not store, create, or read any cookies, and it only rewrites links that point to Let's Do This. Every other link on your page is left untouched.

## If you don't have a web team

Let us know and we can talk through the options. In many cases you can add the script yourself through a website builder such as WordPress or Squarespace, without developer support.

## Works with any paid or organic channel

The script carries through any UTM-tagged link, whatever the channel. Whether you're running Meta Ads, Google Ads, email campaigns, or anything else, the parameters are preserved as long as they are present in your links.

## How this works with Marketing Links

You don't need both, but they work well together. If someone arrives on your site through a UTM-tagged link, for example from a paid ad, those parameters are retained all the way through to the Let's Do This checkout. If someone arrives directly with no parameters, they pick up the fallback ones you set on your Marketing Link, for example a source of website and a medium of organic.

A simple rule: use Marketing Links when you send traffic straight to Let's Do This, and use cross-domain tracking when you send traffic to your own website first. When you have both, the parameters on your Marketing Links act as a safety net for untagged traffic.
