Skip to content

Marketing attribution & UTM tracking

TripWorks automatically captures where each booking came from — landing URL, referrer, UTMs, and ad click IDs — and records it on the booking for your reports.

Written By Melanie Gannone (Super Administrator)

Updated at November 5th, 2026

TripWorks tracks where each booking came from — automatically. When a visitor lands on your site and books, TripWorks captures the marketing context and records it right on the booking, so your reports show which channels, campaigns, and ads actually produce revenue. There's nothing to switch on.

What TripWorks captures

When a visitor first lands on a page with your TripWorks widget, TripWorks remembers that landing visit in their browser. When they book, it stamps the booking with:

  • Landing URL and referrer: the page they arrived on and the site that sent them. The full landing URL is kept, including any utm_medium or utm_content values on it.
  • Source: worked out from utm_source, the referring site, or an ad click ID (see below).
  • Campaign, ad group, keyword, device, and ad position: read from the landing URL's parameters.
  • Ad click IDs: Google (gclid), Microsoft (msclid), and Facebook (fbclid).

Because it's based on the visitor's landing visit, attribution survives the trip through your booking widget and ties the completed booking back to the campaign that started it.

How attribution works: one touch per booking

TripWorks credits each booking to one visit. It doesn't split credit across several visits or channels (multi-touch attribution).

  • The first landing counts. The visit that's remembered is the first time the visitor landed on a page with your widget. If they come back later through a different link, such as an email or an organic search, the booking is still credited to that first landing.
  • An ad click takes over. If the remembered landing didn't come from an ad, and the visitor later returns by clicking an ad (a link carrying a Google, Microsoft, Facebook, or TikTok click ID), that ad visit replaces it. Once the remembered landing is an ad click, later visits don't replace it.
  • The lookback window is 60 days from the last visit. Every page view with your widget renews the memory for another 60 days. If the visitor doesn't come back for 60 days, it expires and their next visit starts fresh.
  • It's per browser. A visitor who browses on their phone and books on a laptop is a new visitor on the laptop, so the booking is credited to the laptop visit.
  • Staff bookings aren't attributed. Bookings your team makes while signed in to TripWorks use your Unknown source unless someone picks a source by hand.

Google Analytics and your ad platforms run their own attribution models on the conversions TripWorks sends them, so their numbers can differ from TripWorks' reports. See Track bookings in Google Analytics (GA4).

How the source is decided

TripWorks resolves each booking's source against your Trip Sources (for example, Google, Facebook, TikTok, email). It checks utm_source first, then the referring site (for example, a visit from ChatGPT or TikTok without a utm_source). An ad click ID overrides both: a gclid maps the booking to Google, an msclid to Bing, and an fbclid to Facebook. A source is only used if it's in your Trip Sources list. Bookings with no marketing context, or placed by staff, are recorded as Unknown, so paid and organic stay distinct.

Campaign, ad group, and ad position

TripWorks reads campaign, ad group, and ad position from the landing URL using several accepted parameter names, not just one. This isn't limited to a single ad platform's naming convention:

  • Campaign: campaignid, campaignID, cmp, utm_cmp, or utm_campaign.
  • Ad group: adgroupid or adg.
  • Ad position: pos.
  • Keyword: kw, keyword, or utm_term.
  • Device type: mt, dev, or device.

Google Ads' own auto-tagging parameters (ValueTrack) are the most common way these get populated, but any tool that appends the same parameter names to a link works the same way. Whichever value is present on a booking's landing URL is what shows up on the trip and in the Marketing by Ad Campaign, Ad Group, and Ad Position reports.

Where you see it

Attribution appears on each trip and in your marketing reports, so you can slice bookings and revenue by source and campaign. TripWorks also pushes booking events to your page's dataLayer for your own Google Tag Manager setup.

If you run more than one booking widget (for example, separate widgets on different branded websites), the trip also records exactly which widget the guest booked through, shown on the same More tab. See Create & manage booking widgets.

Frequently asked questions

Do I need to tag my links for this to work?

Basic source, referrer, and ad-click tracking is automatic. Adding UTM parameters to your own campaign links makes campaign and content reporting much richer.

Why do some bookings show as unknown or direct?

When there's no marketing context on the visit (a direct visit, or a booking placed by staff), TripWorks records it as unknown/direct so it doesn't inflate a paid channel.

What does (None) mean in the Ad Campaign, Ad Group, or Ad Position reports?

It means that booking's landing URL didn't carry any of the parameter names TripWorks reads for that value. For Ad Position specifically, that's a missing or empty pos parameter. If you expected a value, check that your ad platform's auto-tagging (for example, Google Ads ValueTrack) is turned on and actually appending parameters to the destination URL.

Is TripWorks attribution first-touch or multi-touch?

Single-touch. Each booking is credited to one visit: the first time the visitor landed on a page with your widget, unless they later came back by clicking an ad, in which case that ad click takes over. TripWorks doesn't split credit across several visits or channels. Google Analytics and ad platforms apply their own models to the conversions TripWorks sends them, which is why their numbers can differ.

How long does TripWorks remember where a visitor came from?

60 days from their most recent visit. Each page view with your widget renews it for another 60 days, so a visitor who keeps coming back stays credited to their original landing. If they're away for more than 60 days, their next visit starts fresh. It's stored in the visitor's browser, so a different device or browser counts as a new visitor.

If a guest first came from Facebook and later booked after clicking a Google ad, which gets the credit?

The Google ad, as long as the first Facebook visit wasn't itself an ad click. A returning visit that carries an ad click ID replaces a non-ad landing. If the first visit was already an ad click (for example a Facebook ad with an fbclid), it keeps the credit and the later ad click doesn't replace it.

Does this only work with Google Ads?

No. TripWorks reads a set of parameter names on the landing URL, and several ad platforms and campaign tools use the same or similar names. Google Ads ValueTrack is the most common source, but any link carrying a matching parameter (like utm_campaign) is captured the same way.

Built for attractions, tours & activities

See what's really driving bookings

See how attractions, tours, and activities attribute every booking to its source with TripWorks. Book a demo and make the switch.

Still stuck?

Tell us what you're trying to do and our support team will get back to you as soon as possible.