Skip to content

Know which ad closed the deal.

See which ads bring you buyers, not just leads.

One answer

Every source in. One report out.

Ads, social, email and search, joined per person and credited to what made the sale.

Sample data

How it works

Three steps. Then every sale has an ad behind it.

No new funnel, no new CRM. Odin sits between the tools you already run.

  1. 01Funnel pages

    Add the tracking code

    One script on your funnel pages records every visit and ad click: fbclid, UTMs and ad ids.

  2. 02Meta, CRM, payments

    Connect your tools

    Meta brings the spend. The Odin app in GoHighLevel, Zapier or Stripe brings the leads, calls and sales.

  3. 03Attribution

    See revenue per ad

    Each event is matched to the person's visit, credited to the campaign, ad set and ad, and sent back to Meta so it finds more buyers.

Product

Everything a media buyer needs to scale on revenue.

Built around how high-ticket sales really happen: a lead, an application, a call, and a payment plan.

01 · Reports

Cost per sale for every ad, not cost per lead.

Break results down by campaign, ad set, ad or traffic source and see what each step of the funnel costs you. Credit first click, last click or a multi-touch model (linear, U-shaped, time decay, Smart).

  • Cost per lead, application, booked call, show-up and sale
  • Cash collected and contracted value per ad
  • Compared with the previous period
Reports · Ads · Last 30 daysSample data
CampaignAd setAdFirst clickLast click Export CSV
AdPer callPer sale
VSL · Testimonial cut$151.22$885.71
Founder story 45s$175$1,225
Static · Case study$200$1,267
UGC · Hook test B$350No sales
Total$187.76$1,314

02 · Meta Conversions API

Send Meta the events that actually pay you.

Odin sends Lead, SubmitApplication, Schedule, ShowedUp and Purchase with the match data Meta needs to find the person, so the algorithm learns from buyers.

  • Email, phone, name, address, fbc and fbp
  • IP and user agent from the real visit
  • Deduplicated against your Pixel
Conversions API · EventsSample data
  • Purchase

    $1,500 · VSL · Testimonial cut

    Sent
  • ShowedUp

    Founder story 45s

    Sent
  • Schedule

    VSL · Testimonial cut

    Sent on retry
  • SubmitApplication

    Static · Case study

    Sent
  • Lead

    UGC · Hook test B

    Deduped with Pixel

Match data sent with Purchase

  • Email
  • Phone
  • First name
  • Last name
  • City / State / ZIP
  • fbc
  • fbp
  • IP address
  • User agent

IP and user agent come from the lead's real visit, not the server.

03 · CRM

Every lead's path, from first click to last payment.

Open any person and see the ad they came from, what they did on the funnel, the call, the show-up and the sale, in order. When a sale has no traced visit, Odin flags it.

  • One call per lead: reschedules move it, never double it
  • Payment plans count as one sale, once
  • Find untraced sales and fix the gap
CRM · Lead journeySample data

Dana R.

Credited to VSL · Testimonial cut

Cash
$1,500
Contracted
$9,000
  1. Oct 2 · 9:14

    Ad click · VSL · Testimonial cut · fbclid, utm_campaign

  2. Oct 2 · 9:16

    Lead · Opt-in on the VSL page

  3. Oct 2 · 9:24

    Application · Submitted from the funnel

  4. Oct 3

    Call booked · For Oct 6

  5. Oct 5

    Rescheduled · Moved to Oct 8. Still one call.

  6. Oct 8

    Showed up · Marked in GoHighLevel

  7. Oct 8

    Sale · $9,000 plan · 6 payments · $1,500 collected

Integrations

Plugs into the stack you already run.

Read the setup guide
  • GoHighLevel

    Odin app

    Install it in the sub-account: five workflow actions send leads, applications, calls, show-ups and sales.

  • Zapier

    Native app

    Connect any form, calendar or CRM that Zapier supports.

  • Meta

    Ads + Conversions API

    Spend per campaign, ad set and ad in, conversion events out.

  • Stripe

    Restricted key

    Payments and refunds arrive in Odin as they are charged.

Client logins only ever see their own dashboard.

Put every sale on the ad that earned it.

Install the tracking code, connect GoHighLevel, and the next booked call already has an ad behind it.