AI

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.

Client An online store running paid traffic
Industry E-commerce · paid traffic
Duration 1 month
Type End-to-end attribution
8 sources in the attribution cascade
+62% of deals got a real channel
5 ad channels with real ROAS for the first time

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:

  1. UTM tag on the deal itself.
  2. UTM tag on the client's contact.
  3. UTM tag on the order (if the deal came from the online store).
  4. Referrer of the last visit before the deal was created.
  5. UTM passed into the contact form.
  6. 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.
  7. 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.
  8. 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.

✈ Telegram