Skip to content

Attribution & UTM

Attribution is the mechanism that allows DURUM.ai to link each event (lead, booking, sale) to the ad that generated it. Without attribution, you see your spend on one side and your revenue on the other, but you don't know which ad is performing. This guide explains how attribution works and how to ensure it's accurate.

UTM Parameters

When a prospect clicks on your Meta ad, the destination URL contains UTM parameters. These are tags added automatically to the URL that identify the source of the click.

ParameterRoleExample
utm_sourceWhere the traffic comes fromMeta, Google
utm_mediumThe type of trafficpaid, organic, cpc
utm_campaignWhich ad campaignspring_campaign_2026
utm_contentWhich specific adT1_I3_video_testimonial
utm_termWhich ad group (adset)audience_lookalike_2pct
utm_campaign_idMeta campaign numeric ID120213456789
utm_ad_idMeta ad numeric ID120298765432
utm_adset_idAd group numeric ID120211223344

Why These Parameters Matter

UTMs are the only way to link a submitted form to the ad that triggered the click. Without them, DURUM.ai knows a lead came in, but can't determine which ad attracted them.

For the complete UTM setup (Meta Ads parameters, tracking script, hidden fields per platform), see the UTM Tracking guide.

How Attribution Works in DURUM.ai

The attribution process follows five steps, from the initial click to full journey tracking.

1. The Ad Click

A prospect sees your Meta ad (Facebook or Instagram) and clicks on it. The destination URL contains the UTM parameters identifying the campaign and ad.

2. The Form Submission

The prospect fills out a form (Typeform, GHL, or other). UTM parameters are captured with the submission through the form's hidden fields.

3. The Event Reception

DURUM.ai receives the event via webhook. UTM data is attached to the event in the system.

The event is linked to the specific ad through the utm_content field, which matches the ad name (ad_name) in the system. This correspondence is what allows the lead to be attributed to the right ad.

5. The Journey Tracking

When the same prospect books an appointment or makes a purchase later, the attribution is preserved. All events in the customer journey remain linked to the original ad.

Attribution Priority

DURUM.ai uses multiple matching levels to attribute an event to an ad, from most precise to least precise.

PriorityMethodPrecisionDescription
1meta_ad_id to ad_idExact (100%)Direct match by Meta identifier. Most reliable method.
2utm_campaign + utm_contentVery highCombination of campaign name and ad name.
3utm_content aloneHighMatch by ad name only.
4utm_campaign to first ad in campaignLowLast resort: if only the campaign is known, the event is attributed to the first ad found in that campaign.

Maximize Precision

The higher the priority level, the more reliable the attribution. Make sure your forms capture at least utm_content for good-quality attribution.

What Attribution Gives You

In the Marketing tab of the dashboard, each ad displays its attributed metrics:

  • Leads: number of prospects generated by this ad
  • Bookings: number of appointments booked
  • Sales: number of sales closed
  • ROAS: return on ad spend, calculated from the ad's spend and attributed sales

This data lets you see exactly which ads generate results and which ones consume budget without converting.

Pages Viewed in the Journey (pixel)

Beyond CRM milestones (lead, booking, sale), DURUM.ai shows every page a contact has viewed, thanks to the tracking script (pixel) installed on your landing pages.

To view them: Contacts tab, open a contact's profile, then scroll to the Journey section. Viewed pages are woven directly into the timeline, in chronological order, alongside CRM events. A Hide viewed pages button lets you collapse them to keep only the milestones.

For each page, you see:

  • The title and path of the page, shown cleanly (UTM parameters and click IDs are stripped from the displayed path, e.g. /roofing-offer, /quote); the source is still shown separately
  • The time spent on the page (in seconds)
  • The scroll depth reached
  • The source of arrival (utm_source, otherwise the external referrer)
  • The campaign and ad when the page comes from an ad

Pages viewed before the contact became a lead are marked with a Before opt-in badge. This lets you see the entire discovery journey, including pages viewed anonymously before the prospect submitted their details.

Prerequisite

Pages only appear if the tracking script is installed on your pages, and only for contacts whose browsing session has been linked (this link is created when the form is submitted). A contact without a linked pixel session shows their journey without viewed pages.

Configuration by Platform

Hidden field and tracking script configuration varies depending on the form tool you use (GHL, Typeform, Calendly, Jotform, WordPress, etc.).

See the complete UTM Tracking guide for detailed per-platform instructions.

Missing Configuration

If hidden fields aren't configured in your forms and the tracking script isn't installed, your leads will arrive in DURUM.ai but won't be attributed to an ad. They'll appear under "Unattributed".

Events Without Attribution

Events that arrive without UTM data aren't lost. They still appear in your dashboard, but with the following behaviors:

  • In global KPIs: unattributed leads, bookings, and sales are counted in the totals.
  • In per-ad tables: these events don't appear, since no ad can be associated with them.
  • In traffic sources: they're grouped under the Unattributed or Organic category depending on context.

To reduce the number of unattributed events, verify that all your landing pages and forms correctly transmit UTM parameters.

Powered by DURUM.ai — ad attribution and operational intelligence