Know which campaign closed the deal.

The CRM that connects your ad spend to closed revenue, then sends the result back to Google and Meta.

Running attribution for teams in construction, facilities, legal and B2B services.

Platform

Every click, all the way to the invoice. Odal records the ad click, stitches it to the person, and reports the revenue against the campaign that started it.

How it works

One connection each. Google Ads, Meta, Microsoft and TikTok connect over OAuth. Spend and campaigns land in Odal within minutes. No CSV exports, no data team.

No spreadsheets in the loop.

Spend and campaign structure refresh on their own, so the numbers in a report are the numbers in the ad account.

Search Console too.

Organic queries sit beside paid, so you can see what brand demand your spend is creating.

Every click, captured. One script records gclid, gbraid, wbraid, msclkid, fbclid and ttclid, then stitches them to the person first-party. The journey survives a cleared cookie and a six-month sales cycle.

First-party by design.

Identity is resolved on your own domain against your own data. No third-party cookie to break.

First touch and last touch.

Every contact stores both, so you can switch the model on a report and watch the split move.

Your pipeline, with the source attached. Contacts, companies and deals in a board your team will actually update. Nobody has to ask where the lead came from.

Built like a CRM, not a dashboard.

Custom fields, lifecycle stages, tasks, notes and full activity history on every record.

Attribution on the record.

The campaign that created a contact travels with it into the deal, and into the report.

Send the result back. Closed-won deals upload to Google and Meta as offline conversions, so the ad platforms optimise towards revenue instead of form fills.

Match on the click ID.

Uploads carry the original click ID, so the platform credits the campaign that actually started the journey.

Watch it land.

Match rates, upload status and platform health are visible, so a silent failure cannot cost you a quarter.

Live, on this page

Your journey, mapped. Built while you read this.

Everything beside this was captured first-party, in your own browser, in the milliseconds after you landed. No cookie banner, no third-party script, and none of it leaves this page. Give a real visitor a form to fill in and the same record becomes a contact, with the campaign already attached.

Capturing this visit…

Close the loop.

Attribution tools do not own your pipeline. CRMs do not talk back to your ad accounts. Odal does both.

  1. Ad click
    gclid captured
  2. Contact created
    stitched first-party
  3. Deal won
    £34,000 attributed
  4. Conversion uploaded
    back to Google and Meta

It tracks itself.

The script captures the click ID. Odal does the stitching, on your own domain.

No cookies to break.

First-party identity, so the journey survives long sales cycles.

Spend meets revenue.

Ad spend and closed-won value resolve in the same query.

First touch or last.

Switch the model on a report and watch the split move.

The platforms learn.

Real revenue flows back as offline conversions.

Integrations

Connect the stack you already run. Ad platforms over OAuth, booking and call tools for the touchpoints in between, and a REST API for everything else.

Google Ads
Spend, campaigns, creatives
OAuth
Meta Ads
Spend, campaigns, creatives
OAuth
Microsoft Ads
Spend and campaigns
OAuth
TikTok Ads
Spend and campaigns
OAuth

Sales and revenue

The touchpoints between the click and the deal.

Calendly
Shopify
CCallRail
FFireflies
CClio
SSearch Console

Offline conversions

Where closed-won revenue is sent back to.

Google
Meta
Microsoft
TikTok
LinkedIn

LinkedIn is supported as an offline-conversion destination.

Getting started

Live in minutes. Connect your ad platforms, add one script, and watch the first attributed contact land.

01

Connect your ad accounts.

Sign in with Google, Meta, Microsoft or TikTok. Spend and campaign structure start syncing immediately.

02

Drop one script on your site.

Paste the snippet, or install the Odal tag from Google Tag Manager. It captures click IDs on the next page view.

03

Watch the first contact land.

The next form submission arrives with its channel, campaign and click ID already on the record.

Changelog

Shipped recently.

Read the blog
September 2026

Faster report tiles

Eligible ads and blended tiles now serve from a precomputed day cube, so dashboards load without waiting on a live aggregate.

August 2026

Shopify integration

Orders and revenue sync into Odal, so ecommerce sales attribute back to the campaign that created the customer.

August 2026

Pipeline drag improvements

The deal board scrolls when you drag a card to the edge, so off-screen stages stay reachable on smaller displays.

Your stack, stitched. Your revenue, attributed.

Stop reporting on clicks you cannot connect to money. See the campaign behind every deal.