End-to-end analytics ties your ad spend to the money customers have already paid. With several channels, you can see clicks and leads without it, but the profit of each channel stays unknown.
What it is
End-to-end analytics pulls data from ad accounts, your website, the CRM and the payment system, and shows the customer's path from the first touch to payment. In its mature form the path continues up to a repeat purchase. Software vendors describe it in a similar way, for example Saby: a way to measure the customer's path from the first touch to a repeat sale using data from the CRM, ad accounts and web analytics.
An owner needs one result out of all this: how much money each channel brought for every euro put into it. It sounds heavy, but the data requirements are simple. You need a shared marker that ties a lead to an ad, and order in the CRM. After that it is ordinary arithmetic with addition and division.
The customer's path and where the data lives
| Stage | Where the data lives | What we record |
|---|---|---|
| Impression and click | Ad account | Spend, clicks, campaign |
| Website visit | Web analytics | Source and campaign tags |
| Lead or call | Website form, telephony | Tags, phone number, email |
| Deal | CRM | Manager, stage, amount, source |
| Payment | CRM or payment system | Amount, date, refund |
The chain breaks where the marker gets lost. A customer came from an ad with tags and left a phone number, a manager entered them into the CRM without a source, and the payment no longer belongs to any campaign. All of end-to-end analytics rests on the marker surviving the trip from click to payment.
What to set up so the numbers add up
- Consistent tags in ad links. Google Analytics defines five parameters: utm_source, utm_medium and utm_campaign are required, utm_term and utm_content are optional. Values are case sensitive, so the system treats utm_source=google and utm_source=Google as different sources. Agree on the spelling once and put it in a cheat sheet for everyone who builds links.
- Tags reach the lead. The website form stores them in hidden fields, so the lead lands in the CRM already carrying its source.
- Calls are tied to a source. For that, the website shows different phone numbers for different channels, otherwise a call from an ad cannot be linked.
- Managers record the source when the customer did not come through a form. Saby makes this discipline a separate CRM requirement, and we agree with it.
- Payments are linked to deals: the amount and date sit in the same place as the source.
Each condition you meet covers part of your leads. The rest stay without a source, and it is worth looking at their share right away, because it shows how far you can trust the other numbers.
What it shows: a hypothetical example
Take two channels over one month. The figures are made up for the calculation and do not describe real clients. The arithmetic was checked with a tool.
| Metric | Channel A | Channel B |
|---|---|---|
| Ad spend | €1,000 | €1,000 |
| Leads | 100 | 300 |
| Payments of €400 each | 10 | 5 |
| Revenue | €4,000 | €2,000 |
| Cost per lead | €10 | €3.33 |
| Cost per payment | €100 | €200 |
| ROMI | 300% | 100% |
By leads, channel B wins: a lead there is three times cheaper. By money, channel A wins: a payment costs half as much and ROMI is three times higher. Someone who looks only at leads will move the budget to channel B and pay for it with profit.
ROMI is calculated like this: revenue minus marketing costs, divided by marketing costs and multiplied by 100%. For channel A that is (4,000 minus 1,000) / 1,000 x 100% = 300%. Bitrix24 notes in its guide that you can use gross profit instead of revenue, and that in B2B people also look at LTV. Decide once what you count as income and apply the same rule to every channel.
Which channel gets the credit for a payment
One customer may have seen an ad in two channels, and the attribution model decides who gets the payment. Google Analytics 4 currently offers data-driven attribution, which distributes credit based on your account's data, and last click options, where all the value goes to the last channel before the purchase. Google switched off the first click, linear, time decay and position-based models in November 2023, as the GA4 help states, and other systems may offer a different set of models.
Pick one model and compare channels only within it, because once you mix models the numbers of different channels cannot be placed side by side.
Where end-to-end analytics gets it wrong
- A tag is lost: the person arrived through a link without tags or typed the website address by hand.
- The customer called from a different number, and the phone in the CRM is written differently from the one in the lead.
- A deal drags on for months, and the payment arrives long after the report for the period was closed.
- Refunds and partial payments did not make it into the total.
- One person was entered into the CRM twice.
Saby says plainly that some error always remains, even with a well thought-out setup. We agree. Compare channels with each other, the third decimal place does not matter, and keep the share of leads without a source on a separate line.
Do you need it
You probably do when you have two or more paid channels, a noticeable part of leads comes by phone or through managers, deals close in chats and calls, and the ad budget is large enough that you have to decide where to add money. You can do without it with a single channel, a small number of leads and payment right on the website: an export from the payment system and the ad account is enough there.
You can start with a table of five columns: channel, spend for the month, leads, payments, payment total. Fill it in by hand for last month. If you see that some payments cannot be tied to any channel, there is something worth automating.
How the Second Brain approaches this
The Second Brain connects ad accounts, the CRM and payment systems. Ready integrations include Meta Ads, Google Ads, Pipedrive, Kommo, SendPulse, Stripe, WayForPay and telephony, and we connect other sources through an API in 1-2 days. From this data the AI links a lead, an ad campaign, a manager and a payment, so you can get an answer in plain words to the question "which channel brought money". For our client Korchel such answers arrive in 5 minutes instead of two days.
Case figures come from our own implementations. Your result depends on the quality and completeness of your data.
The quality of the answer depends on tags and order in the CRM. That is why at the audit we start by checking where you lose the source of a lead. We collected the questions worth asking such data in the article "7 questions worth asking your business", and why ordinary reports do not answer them we covered in "Why BI reports don't answer the question every executive actually asks".
Where to start
Start with a free audit: we will show where you lose the source of a lead and which questions your data can already answer. Then 2 weeks of free data collection, connection on a plan, and a subscription from €349 a month.
Sources: Saby, end-to-end analytics in CRM; Google Analytics Help, campaign URL parameters; Google Analytics Help, attribution models; Bitrix24, ROMI.



