Skip to main content

Campaign attribution: know which marketing produced a booking

Track which campaigns bring customers to you and which ones convert, using first-touch and last-touch attribution stored directly on each booking.

Written by Luca Lattanzio

When a booking comes in, attribution tells you how that customer found you.

CaptainBook stores this information directly on the booking so you can answer questions like:

“Which campaign produced this booking?”

without exporting data or trying to reconstruct the customer journey later.
​

What attribution tells you

If you market your business through several channels — Google Ads, Instagram, email, partner sites, or QR codes — attribution helps you understand what each one actually produced.

Instead of only knowing:

“We received 180 bookings.”

you can understand:

“42 came from the spring newsletter, 31 from Google, and 4 from Instagram.”
​

What is a UTM tag?

A UTM tag is information added to the end of a link so CaptainBook can identify where the visitor came from.

For example:

https://yourwebsite.com/tours?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale

The page itself does not change for the visitor. The URL simply carries extra information about the campaign.

CaptainBook reads these UTM parameters:

  • utm_source — where the visitor came from, such as google, facebook, or newsletter

  • utm_medium — the marketing channel, such as cpc, email, or social

  • utm_campaign — the campaign name, such as spring_sale

  • utm_term — usually the paid-search keyword

  • utm_content — used to distinguish different ads or links

  • utm_id — the campaign ID from the advertising platform

The first three are the most important.|
​

💡 Easy way to remember them
​

Source = who sent them
​Medium = how
​Campaign = why
​

First touch and last touch

Customers often interact with your marketing more than once before booking.

For example:

  1. They click a Google ad in March.

  2. They click your newsletter in April.

  3. They return through a retargeting ad in May and book.

CaptainBook stores both:
​

First touch

The campaign that first introduced the customer to your business.

This helps you understand acquisition.

Last touch

The most recent campaign before the customer completed their booking.

This helps you understand conversion.

Both are stored on the booking.
If the customer only arrived through one campaign, first touch and last touch will be the same. That is normal.
​

What attribution cannot tell you

Attribution has some natural limitations.

It cannot reliably identify:

  • Offline recommendations or conversations

  • Customer journeys across different devices before identification

  • Whether a booking with no attribution was genuinely direct or lost its campaign trail

  • Marketing influence that did not involve a click

For offline marketing such as flyers or brochures, use a QR code that points to a tagged URL if you want the visit attributed.
​

How CaptainBook captures attribution

Your CaptainBook booking widget runs on your website.

When a visitor lands on a URL containing UTM parameters, the CaptainBook embed script reads those parameters and passes them into the booking widget.

The journey is:

Campaign link → Your website → CaptainBook widget → Booking

CaptainBook records campaign arrivals as touches.

When the booking is confirmed, it saves:

  • The earliest recorded touch as First touch

  • The most recent touch as Last touch

Refreshing a page does not create another touch

If a visitor refreshes a page while the same UTM parameters remain in the URL, CaptainBook does not record another campaign touch.

A genuinely different campaign does create a new touch.

CaptainBook keeps up to 10 campaign touches per visitor.

If more than 10 are recorded, the first and most recent touches are preserved.
​

Where to see attribution

On a booking

Open a booking and scroll to the Attribution section.

You will see:

  • First touch

  • Last touch

  • Source

  • Medium

  • Campaign

Additional fields such as utm_term or utm_content appear only when they contain data.

If the booking has no attribution information, the section is not shown.
​

On a customer record

The customer sidebar includes an Attribution (latest booking) card.

It shows attribution from the customer’s most recent booking and includes a link to the full booking attribution.

For repeat customers, remember that this card only reflects their latest booking.

Earlier bookings keep their own attribution records.

How to tag your own links

Start with a page on your website and add UTM parameters.

For example:

https://yourwebsite.com/tours/sunset-cruise?utm_source=facebook&utm_medium=social&utm_campaign=summer_2026

Follow these rules to keep your reporting clean:

  • Tag the page on your website, not the CaptainBook widget URL

  • Keep UTM values lowercase

  • Avoid spaces — use underscores or hyphens

  • Keep utm_medium values consistent

  • Include dates or seasons in utm_campaign when useful

  • Do not add campaign tags to internal links on your own website

For example:

Use:

utm_source=google

instead of:

utm_source=Google

These would be treated as two different values.
​

Google Ads and Meta auto-tagging

Google Ads may add:

gclid

Meta may add:

fbclid

CaptainBook does not use these for campaign attribution.

CaptainBook reads the standard utm_* parameters.

If your campaigns rely only on automatic platform tagging, attribution may not appear in CaptainBook.

Make sure your campaign URLs also include UTM parameters.
​

Attribution and consent

Campaign attribution and behavioral tracking are handled differently.

If a visitor declines behavioral tracking:

  • Behavioral Timeline activity is not recorded

  • Campaign attribution can still be recorded

This is because attribution is associated with the commercial transaction rather than general browsing activity.

If account-level tracking is completely disabled, attribution is also disabled.

Bookings through the AI Assistant

If a customer completes a booking through the embedded CaptainBook AI Assistant, the Assistant becomes the last touch.

It is recorded as:

  • Source: captainbook

  • Medium: assistant

Any earlier campaign remains stored as the first touch.
​

Why attribution may be empty

Attribution is empty on every booking

Check whether CRM and tracking are enabled on your account.
​

Google Ads bookings have no attribution

Your campaigns may be using Google auto-tagging without UTM parameters.

Add UTM parameters to your campaign URLs.
​

The visitor clicked a tagged link, but attribution is empty

Check whether the UTM parameters are still present in the browser URL when the CaptainBook widget loads.

Some websites remove query parameters during navigation.
​

The booking was created manually

Bookings created by staff do not have a visitor journey, so they do not have campaign attribution.
​

Only some bookings are missing attribution

This can happen because of:

  • Private browsing

  • Safari Lockdown Mode

  • Cleared site data

  • Privacy extensions

First touch and last touch are identical

This is usually normal.

Most visitors only arrive through one tracked campaign before booking.
​

⚠️ Testing tip

If you test a tagged campaign link and then make a booking in the same browser, your test campaign can be recorded on that booking.

Use a private browser window for testing.
​

Limits to know

CaptainBook campaign attribution has a few important limits:

  • Only first touch and last touch are stored on the booking

  • Maximum 10 campaign touches per visitor

  • UTM values are limited to 255 characters

  • No cross-device matching before the visitor identifies themselves

  • gclid and fbclid are not used

  • Attribution is written when the booking is confirmed

  • A blank attribution result can mean either a direct visit or a lost attribution trail

Which plans include campaign attribution?

Campaign attribution is available on:

  • Starter

  • Extended

  • Ultra

Attribution is stored on the booking itself, so it is not removed after the 90-day behavioral Timeline retention period.
​

Older bookings continue to keep the attribution that was recorded when they were created.

Did this answer your question?