Compare · Do it yourself

Should a gym wire its own offline conversions or use a tool?

Wire it yourself if you run one location on one CRM and a booked appointment is the goal: a Zap, a sheet and Google’s offline import cover that. Once you need showed and paid, membership revenue from Mindbody, WellnessLiving or Stripe, or a per-location split, DIY becomes a maintenance role. That is Adsu’s job.

Updated

Book a demo

What the DIY stack actually is

An offline conversion is a win reported to Google or Meta after the click, because it happened at the front desk and not on your website. Six parts, each stopping somewhere a gym needs it to keep going.

  1. 01

    Offline conversion import

    A scheduled upload to Google Ads, from a sheet or a Zap, of the gclid (the click ID Google appends to your landing-page URL), the time and the value of each win. Where it stops: keeping each person’s gclid from enquiry to payment.

  2. 02

    Enhanced Conversions for Leads

    Google’s second match: send the hashed email or phone with the sale and Google finds the click itself. Where it stops: one email on the form and another at the desk matches on neither.

  3. 03

    HighLevel’s Add to Google Ads action

    HighLevel’s own article calls the action “ideal for tracking offline conversions, such as form submissions, chat replies, purchases, or appointment bookings”, but the same article says it “only works for Form Submission, Order Purchase, Number Pool Calling, Survey Submission, and Chat Widget”: no calendar, appointment-status or pipeline-stage trigger. Quoted 12 September 2026. Where it stops: at those five triggers.

    HighLevel native vs Adsu, in full
  4. 04

    Meta Conversions API from a pipeline stage

    Meta’s server-side channel for wins from your systems, not the browser. HighLevel’s Meta action can fire a Lead event on a pipeline stage change (help.gohighlevel.com · 2026-09-12). Where it stops: a stage called Joined is a card someone dragged, not a payment. See Facebook ads for gyms.

  5. 05

    Looker Studio

    Google’s reporting layer over the ad account, the sheet and a CRM export. Where it stops: it shows only the joins you built.

  6. 06

    The human who maintains it

    Somebody owns the Zap, the sheet and every authorization. Where it stops: the week they are away, the month they leave.

When DIY is enough

One location, one CRM, and either every member pays through HighLevel’s order forms or booked appointments are the goal. Then a Zap to a sheet, Google’s import keyed on the gclid and HighLevel’s Meta action beat a form fill. Adsu is overkill here, and we will say so on the call. Capture side: Google Ads for gyms.

Where it breaks

  • Showed and paid are not on the trigger list.HighLevel’s Google action fires on a form, an order, a number-pool call, a survey or the chat widget, never on an appointment status or a pipeline stage (help.gohighlevel.com · 2026-09-12). Paid means a HighLevel order-form purchase, so billing in Mindbody, WellnessLiving or a standalone Stripe account never reaches it.
  • The revenue is not the money.HighLevel reports the value of won opportunities, not the payments that cleared; detail on the HighLevel page.
  • Several gyms, one ad account.A conversion row carries a gclid, a time and a value, not a gym.
  • Walk-ins and phone joins have no click ID.A member who saw the ad, drove past and joined at the desk never landed on the page that captures the gclid.
  • Renamed campaigns, expired tokens, a Zap nobody owns.A renamed campaign breaks a report keyed on its name; an expired authorization stops the upload without a sound; the Zap built in March fails in August.

What Adsu does instead

  1. 01
    Click or call
  2. 02
    Enquiry
  3. 03
    Appointment booked
  4. 04
    Appointment showed
  5. 05
    Membership paid
  6. 06
    Every renewal after

The payment account sets the location, so a member who enquired on the shared site and paid at your second gym lands on that gym’s line. Identity is exact: email, or phone when the email does not match. Booked, showed and paid go back to Google and Meta; unmatched revenue is shown as a gap, never assigned.

Do it yourselfAdsu
Stages sent backForm, order, call, survey, chatBooked, showed and paid, to Google and Meta
Revenue sourceA HighLevel order form or a hand-filled sheetThe connected payment source (Stripe, Mindbody or WellnessLiving), which also sets the location
Per-locationOne sheet or action per gym, by handYes, by payment account; no per-location fee
Walk-ins and callsNo click ID, no rowFront-desk joins resolve by exact email or phone; we follow inbound calls
MaintenanceYours: Zaps, tokens, sheets, renamesNone for the operator
CostYour time, plus Ad Manager via your agencyOne plan by tracked revenue from $149/mo; results or you don’t pay

What it costs

Your time first, for as long as the ads run. Then the add-on: HighLevel’s Ad Manager, which creates the Google offline conversion actions. HighLevel’s changelog listed it at $10 per sub-account per month to the agency, or $29 per month when the sub-account paid directly (November 2024), then made it free to agencies, which set the resale price (October 2025); both read 12 September 2026. Whether your gym pays nothing, $29 or a markup depends on your agency.

Adsu is one plan by tracked member revenue, from $149/mo, no per-location fee, results or you don’t pay (pricing); the definition is under offline conversion tracking.

Questions, answered.

  • Not with HighLevel’s Google action: as of September 2026 it fires only on a form, order, number-pool call, survey or chat widget, and sees a payment only as a HighLevel order form. Yourself means a Zap from the appointment, a billing export, a sheet of gclids and Google’s scheduled import. Adsu reads both and sends both back.

  • Both. The import is keyed to the gclid, one click to one ID. Enhanced Conversions for Leads is the fallback: send the hashed email or phone with the sale and Google finds the click itself. Neither creates the sale record.

  • Not from Mindbody’s own tools. As of September 2026 Mindbody documents no Meta Conversions API or Google offline-conversion upload; its 30 August 2026 update added Google Analytics 4, Tag Manager and the Meta pixel on booking widgets, which stop at the browser (mindbodyonline.com). Yourself means exporting sales, storing each gclid and uploading on a schedule, or a connector. Adsu connects Mindbody directly.

  • You can, and the location is what breaks. A Google offline conversion carries a click, a time and a value, not a gym, so the split is one sheet or action per location, by hand. Adsu takes the location from the payment account, no per-location fee.

  • Through the Conversions API, Meta’s server-side channel. HighLevel’s Meta action can fire a Lead event on a pipeline stage change, as of September 2026, so a stage called Showed can reach Meta. But a stage is a card someone moved, and a walk-in has no click ID. Adsu sends each stage once verified.

  • When any of four things is true: you want showed and paid sent back; members pay through Mindbody, WellnessLiving or Stripe, not a HighLevel order form; you run more than one location; or the person who built the Zap runs the gym. Then it is a maintenance role, and Adsu costs less: from $149 a month, results or you don’t pay.

The proof

Net members
+21
Lifetime value added
$67,000+

Bobby & Maria Gasdia, Big Day Fitness, 2 locations

Read the full story