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.
| Parameter | Role | Example |
|---|---|---|
| utm_source | Where the traffic comes from | Meta, Google |
| utm_medium | The type of traffic | paid, organic, cpc |
| utm_campaign | Which ad campaign | spring_campaign_2026 |
| utm_content | Which specific ad | T1_I3_video_testimonial |
| utm_term | Which ad group (adset) | audience_lookalike_2pct |
| utm_campaign_id | Meta campaign numeric ID | 120213456789 |
| utm_ad_id | Meta ad numeric ID | 120298765432 |
| utm_adset_id | Ad group numeric ID | 120211223344 |
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.
4. The Ad Link
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.
| Priority | Method | Precision | Description |
|---|---|---|---|
| 1 | meta_ad_id to ad_id | Exact (100%) | Direct match by Meta identifier. Most reliable method. |
| 2 | utm_campaign + utm_content | Very high | Combination of campaign name and ad name. |
| 3 | utm_content alone | High | Match by ad name only. |
| 4 | utm_campaign to first ad in campaign | Low | Last 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.