About Attribution
Analyze tag and Meta Ads leads by source, CPL, ROAS, and 90-day/365-day LTV. Filter leads, export CSVs, and exclude sales emails and pages.
Author: Cascade
Attribution lets you analyze leads from inquiries, bookings, and purchases by "which ad they came from" and "how much they cost to acquire". You can check cost per lead and ROAS by ad platform and campaign, subsequent revenue from acquired customers (LTV), and the journey for each lead. Open it from Customer Management > Attribution in the left menu.
What you can do
Tab | Details |
|---|---|
Summary | Leads (period), Ad-attributed, Ad Spend, CPL, ROAS, and Journey contribution |
By media & campaign | Ad Spend, Leads, CPL, Purchase amount, ROAS, and LTV columns by acquisition source (New Customers through 365-day LTV), listed by ad platform and campaign |
Leads | Lead detail, Total revenue (LTV), Purchased products, and Journey. CSV downloads, automatic exclusion of sales emails, and Uncounted pages settings |
Prerequisites
This feature is available on the Business plan.
To analyze leads from your site, install the measurement tag as described in Track inquiries, bookings, and purchases (install the tag) and register your allowed domains. Purchase tracking requires a snippet for each shopping cart. For Shopline, the snippet is registered automatically when you connect it.
Leads from Meta Ads lead ads (instant forms) are imported automatically when you connect Meta Ads. Leads received from ads in the connected ad account are added to the lead list every 15 minutes. The import status appears in the Meta Ads row under Settings > Integrations in the left menu.
Monetary columns (Purchase amount, ROAS, and LTV) and contact information (email address and phone number) are visible to Owners, Admins, and Editors. Viewers can see only counts and journeys.
Choose a date range
The date range in the upper right is shared across all 3 tabs. The default is This Month, and the maximum range is 92 days. The start date can be up to 2 years ago. Only Journey contribution has a separate date range, which you select in the upper right of its card.
Summary

KPIs
Leads (period) — The number of leads captured during the period. The change from the previous period is also shown.
Ad-attributed — The share of leads identified as coming from ads. This includes leads confirmed by click IDs and leads inferred from UTM.
Ad Spend — Total ad spend during the period. This excludes Amazon Ads and Apple Search Ads that keep users within their stores.
CPL — Ad spend ÷ the number of leads with an ad click confirmed by a click ID.
ROAS — Purchase amounts captured by the measurement tag ÷ ad spend. This is your own measured value, separate from conversions reported by ad platforms. If any purchases can be matched to e-commerce orders, this changes to ROAS (order-based) and uses only order amounts after returns.
ROAS (won-deal-based) — Shown when HubSpot is connected. Won revenue ÷ ad spend, including only won deals linked to ad-attributed leads by email address.
ROAS (won-based, CSV) — Shown when you import a CSV of won deals in CRM Analytics. This includes only won deals that can be linked using a lead ID, email address, phone number, click ID, order ID, or UTM and inquiry date and time.
Journey contribution
For leads with a journey, this shows whether each channel (ad platform, organic traffic, or campaign traffic) contributed as the first, middle, or last touchpoint, along with its involvement rate. Leads with 1 touchpoint count toward both first and last touchpoints. Traffic with UTM that cannot be linked to an ad platform is shown by utm_source for up to the top 5 sources. The rest are grouped under Other campaigns.
The default date range is the last 90 days. Journeys are retained for up to 400 days after the last ad click.
Click Generate AI summary to create a summary. At least 10 leads with journeys are required.
If the number of leads in the period exceeds 120,000, the values are estimates based on a subset of leads, and a note explains this.
By media & campaign

There are 2 tables: CPL by media and CPL by campaign. They include leads with ad clicks confirmed by click IDs. The campaign table also has Attribution (Ad / Non-ad) and Media columns, and you can filter by Media and Campaign.
Column | Details |
|---|---|
Ad Spend / Leads / CPL | Performance during the selected period. |
Purchase amount / ROAS | Purchase amounts and ROAS from the measurement tag. When purchases can be matched to e-commerce orders, the labels include "(order-based)". |
Won Revenue / ROAS (won-deal-based) | Won deals from HubSpot. Won amount (CSV) / ROAS (won-based, CSV) show won deals imported from CSV. |
New Customers / Buyers / Purchases / Lifetime revenue / Avg. LTV / Repeat rate | Customers first acquired during the selected period are grouped by their first-touch source. Their purchases are totaled from initial acquisition to the present. Average LTV = lifetime revenue ÷ new customers. Repeat rate = customers with 2+ purchases ÷ purchasers. |
90-day LTV / 365-day LTV | Cumulative revenue within 90 days (365 days) of initial acquisition ÷ the number of customers who have passed that many days since acquisition. This lets you compare sources with different acquisition dates over the same elapsed period. Customers who have not reached that number of days are excluded from both the numerator and denominator. Rows with no eligible customers show "—". |
Traffic from email, social media, partner sites, and other sources using your own utm_source values becomes available for filtering and aggregation when you register it under Custom Traffic Sources.
For the LTV columns only, the date range refers to "the date the customer was first acquired". Ad spend, lead counts, and purchase amounts in the same row show performance within the selected period.
Lifetime revenue prioritizes actual amounts verified against e-commerce orders (after returns). For purchases that cannot be matched, it uses amounts reported by the measurement tag or Stripe. Recurring Stripe payments are also included.
For products with no e-commerce or Stripe purchases, won deals from HubSpot or CSV are linked to new customers by email address, and the LTV columns show won-deal values. A note appears below the table in this case.
Customer records for the same person are grouped by email address or e-commerce customer ID. Customers whose source cannot be identified are grouped in the Unknown source row, which has values only in the LTV columns.
Fraudulent lead exclusion settings do not apply to the LTV columns. If an excluded lead becomes a customer, the new customer count may exceed the lead count.
A note appears if the number of customers in the period exceeds 10,000 or the number of campaign rows exceeds 300.
Leads

This tab lists captured leads. The most recent 200 are loaded at a time. Click Load More to load more. Check the KPI on the Summary tab for the total number in the period.
View — By person groups leads from the same person into 1 row. By person (all time) groups leads by person, including leads outside the selected period. By event shows 1 submission per row.
Filter — Filter by Type / Company / Name / Email / Media / Campaign / Ad group / Conversion page / Fraud check / Sales email / Counting / Deal stage. You can also filter by landing page split-test version and ranges for Total revenue (LTV) and Purchases.
Display Data — Select the columns to display.
The main columns are Type (Form / Booking / Purchase / Sign up / Gain Friends / Other), Fraud check, Sales email, Uncounted pages, Company, Name, Email, Phone, Media, Campaign, Ad group, Landing page, Version, Conversion page, Amount, Order ID, Total revenue (LTV), Purchases, Purchased products, Deal stage, Won revenue (CRM), and Received.
Lead detail

Click a row to open its details. In addition to the inquiry message, form answers, referrer, landing page, and conversion page, you can check the following.
Journey — Shows the date, time, and ad platform (or organic traffic) for each touchpoint in chronological order. Up to 12 touchpoints are retained per lead. Touchpoints on a different device or browser have an Other browser badge.
Items in this order — Item details for the order linked to a purchase lead. If it has not been matched to an e-commerce order, the reason is shown (matching runs daily, with a matching window of 90 days).
Ad name — For leads from Meta Ads lead ads, this shows the name of the ad that generated the lead.
Deal stage / Won revenue (CRM) — Shown for leads linked to HubSpot deals.
Owners and Admins can delete leads. Deleted leads cannot be restored.
Total revenue (LTV), Purchases, and Purchased products columns
These columns count all time, regardless of how many leads are loaded in the list. Actual amounts verified against e-commerce orders take priority, and duplicates are removed at the order level.
Click a column heading to sort. Use filters to specify a range of "at least [value]" or "at most [value]".
These values are not shown for leads without an email address or e-commerce customer ID. Purchases in a currency different from the product's currency are excluded. Their count appears under Purchases excluded (currency mismatch) in the details.
Purchased products are ordered by total revenue, highest first. When there are multiple products, the display shows "(Representative product name) and [number] more items". Hover over it to see up to the top 10 items. You can view all items in the details (up to 500).
Download as CSV
Click Download lead list as CSV to export leads that match your current filters. The CSV also includes responses from forms on generated landing pages and Meta Ads lead ads. Owners, Admins, and Editors can use this feature.
Exclude leads from totals
Fraudulent leads
Leads likely to come from automated tools rather than people are detected automatically. Reasons for the assessment, such as server-based access, submissions that are too fast, or traces of an automated browser, appear in the Fraud check column and lead details.
Likely fraud — Leads with multiple suspicious indicators. These are excluded from ROAS and CPL calculations by default (they are still included in Leads (period)).
Needs review — Leads with only 1 suspicious indicator. These are not excluded automatically.
Turn exclusion on or off under Exclude fraudulent leads in Ad Settings > Ad Fraud Protection in the left menu. For details, see Use Ad Fraud Protection.
Sales email auto-exclusion
Sales emails submitted through forms, such as pitches for media placements, contract work, partnerships, or services, are identified by sentence patterns in the message. They are automatically excluded from totals and from conversion sending to ad platforms. Identified leads remain in the list with a Sales email badge. You can restore them individually with Restore as regular lead in the details.
Enable or disable this feature with Sales email exclusion settings in the lead list. Disabling it stops detection and restores leads excluded by detection as regular leads. Owners and Admins can change the setting and restore leads.
Uncounted pages
You can register form pages that should not count as conversions, such as contact, recruitment, or media inquiry pages. Open Uncounted pages in the lead list and select a type for each page (up to 50 pages).
Don't count — Keeps leads in the list but excludes them from Leads (period), weekly reports, and conversion sending to ad platforms.
Don't record — Does not save submissions.
You can also apply registered page settings to past leads. Restore excluded leads individually with Count again in the details. Owners and Admins can register and change pages. Use the Counting filter to find leads that are not counted.
Troubleshooting
Symptom | Cause | Action |
|---|---|---|
The message "No leads yet" appears | The measurement tag is not installed | Install it with Set Up Tracking Tag. An Owner or Admin must install it. |
Leads are not linked in the campaign table | The landing URLs of ads created outside Cascade do not have utm_source and utm_id | Set utm_source and utm_id in the landing URLs. For ads published in Cascade, these are added automatically when you turn on Track ROAS by Campaign. |
CPL shows "—" with a note that values are estimates | The lead or ad spend details in the period exceed the aggregation limit | Select a shorter period and reopen the view. |
The LTV columns show "—" in every row | 90-day / 365-day LTV is calculated only for customers who have passed that many days since initial acquisition | Set the end of the date range to more than that many days ago to display values. |
Leads from Meta Ads lead ads are not imported | The Meta Ads connection authorization has expired, or Facebook Page leads cannot be read | Follow the instructions in the Meta Ads row under Settings > Integrations to reconnect or grant the page role. |
A lead without a journey is linked to an ad platform | Ad identifiers remain in a referrer URL from the same site | This is expected behavior. Ad identifiers in the referrer are also used to identify the ad platform. |
Related articles
More articles in this category

