End-to-end attribution restored after the fact
We restored the real channel for deals where UTM tags were lost. Attribution is assembled as a cascade across 8 sources — the last, unexpected layers: AI listens to sales calls (clients say themselves where they came from) and a Yandex.Metrica visit match within 5 minutes before the deal was created.
The problem
The company spends hundreds of thousands a year on Google Ads, Yandex.Direct, contextual agencies, Instagram and YouTube ads. In Bitrix24, 95% of deals have source «CALL» or «messenger» — meaning «which exact ad brought the client» is unknown. As a result: ROAS per channel can't be calculated, ads get optimised «by feel», budget gets distributed without data. Every month the director catches the thought: «is the advertising actually working?».
Before
- 95% of deals with source «CALL», «WEBFORM» or «1|OPENLINE» — no detail on which specific ad brought the client.
- UTM tags got lost everywhere: jumping from landing to main site, calls through call-tracking, transitions from messengers.
- The marketer tried to «correlate ad spend with revenue manually» — took a day a week and produced error margins in multiples.
- «Whether to keep running Google Ads, whether to add Instagram» — decided by feel.
What we built
We assembled an eight-tier attribution cascade — for every deal the system walks sources in sequence until it finds the real channel:
- UTM tag on the deal itself.
- UTM tag on the client's contact.
- UTM tag on the order (if the deal came from the online store).
- Referrer of the last visit before the deal was created.
- UTM passed into the contact form.
- AI call analysis: if the client themselves said in the conversation «saw it on Instagram», «found via search», «came by referral» — the system pulls that and sets it as the source.
- Metrica shadow: if there was a website visit in the last 5 minutes before the deal was created — the system takes that visit's UTM and applies it to the deal.
- Default Bitrix24 SOURCE_ID (last resort — «something at least»).
These 8 tiers apply to new deals AND to historical ones — attribution was restored after the fact for a year of past sales.
Results
- +62% of deals got a real channel — these used to be «CALL with no detail».
- For the first time, ROAS is visible across 5 ad channels: Google Ads, Yandex.Direct, Instagram, partner ads, organic SEO.
- Turned out two channels were carrying the plan, one was burning budget — the latter was turned off within a month.
- The marketer spends 30 minutes a week on reporting instead of a full day — data arrives on its own.
- It became possible to compute client LTV by acquisition channel — for remarketing decisions.
The client's name is withheld under NDA. Real names and details are shared at the brief.
A similar task?
Describe it briefly — within 1–2 days we'll come back with an analysis and an hourly estimate. If a packaged solution fits, we'll say so honestly.