Stop Reporting Clicks: How to Track ChatGPT Ads to Booked Jobs

A media dashboard can tell you that 600 people clicked.

It cannot tell you whether your technicians did profitable work.

That failure is not unique to ChatGPT Ads. A frustrated PPC practitioner described an account this way on Reddit:

“Clicks were high, very high. Conversions, only 1. After thousands of dollars of ad spend.”

The post was about Google Ads, but the lesson applies perfectly to a new channel: traffic is not a business outcome. Read the discussion.

Bottom line

The correct measurement chain is: ChatGPT impression or click → landing page → inquiry → qualified lead → booked appointment → completed appointment → sold job → revenue. OpenAI measures the advertising interaction. Your operating system has to measure the business.

You need two systems of truth

A home-service campaign needs both:

The advertising record

This is OpenAI Ads Manager.

It should tell you:

  • impressions
  • clicks
  • spend
  • CTR
  • average CPC
  • average CPM
  • attributed conversion events

The commercial record

This is ServiceTitan, Housecall Pro, Jobber, the CRM, or a disciplined internal system.

It should tell you:

  • who contacted the business
  • whether the inquiry was legitimate
  • whether they were in the service area
  • what service they wanted
  • whether an appointment was booked
  • whether the appointment happened
  • whether work sold
  • how much revenue and gross profit resulted

Neither system is enough alone.

Layer one: configure OpenAI measurement correctly

OpenAI supports measurement through:

  • the OpenAI Pixel
  • the Conversions API
  • both together

The Pixel is browser-side.

The Conversions API is server-side.

When the same event is sent through both, OpenAI recommends using the same event ID so the platform can deduplicate it. See OpenAI’s conversion documentation.

Preserve oppref

OpenAI appends a click reference called oppref to eligible landing-page URLs.

The Pixel can store it in a first-party cookie and associate it with later events. When available, it can also be passed with server-side conversion events.

Do not accidentally strip it during:

  • redirects
  • URL cleaning
  • form flows
  • cross-page navigation
  • booking handoffs

A beautifully configured campaign with broken click-reference handling produces weak measurement.

Add UTMs too

OpenAI supports static and dynamic landing-page parameters.

Use a clear convention, for example:

utm_source=chatgpt
utm_medium=cpc
utm_campaign=heart_furnace_replacement
utm_content=repair_vs_replace_a

OpenAI also supports macros such as campaign ID, ad-group ID, ad ID, and ad-account ID. See the reporting documentation.

UTMs help your own analytics.

oppref helps OpenAI attribution.

Use both.

Fire events on completed actions

Do not fire a lead event because someone opened the form.

Do not count a phone-button click as a booked appointment.

A useful event hierarchy may include:

  • lead submitted
  • appointment scheduled
  • purchase or order created, where relevant

OpenAI’s conversion-optimization objective currently requires a supported standard event rather than an arbitrary custom event. See conversion-optimized campaign requirements.

Layer two: preserve the source inside intake

The most common attribution failure happens after the lead arrives.

The form sends an email.

The office calls the homeowner.

Someone books the job.

The source disappears.

That is unacceptable.

The lead source should enter the operating system with the customer.

At minimum, preserve:

  • channel: ChatGPT Ads
  • campaign
  • service line
  • landing page
  • original timestamp
  • call or form
  • new or existing customer

Calls need their own attribution path

Home-service customers still call.

Use a campaign-specific tracking number that routes to the normal office.

ServiceTitan says it can create unique phone numbers for campaigns and connect resulting booked jobs to revenue. Its Marketing Scorecard ranks campaigns by revenue rather than only calls. See ServiceTitan’s marketing features.

That is the right mental model:

The call is not the outcome. The job and revenue are.

If ServiceTitan is not available, use another call-tracking solution and make sure the source survives into the CRM.

Define the funnel before launch

Agree on definitions with the client.

Inquiry

A distinct person contacted the business.

Qualified lead

A legitimate prospect requested the promoted service, is in the service area, and meets basic customer criteria.

Booked appointment

The business scheduled a real appointment.

Completed appointment

The appointment occurred.

Sold job

The customer agreed to purchase.

Completed revenue

The work was completed and revenue was recorded or collected according to the company’s reporting policy.

Do not let these definitions change after the results arrive.

Deduplicate people

One person may:

  • click
  • call
  • submit a form
  • call again
  • schedule online

That is one prospect, not four leads.

The scorecard should count unique people and distinguish interactions from customers.

Without deduplication, a campaign can look productive while the office is simply receiving duplicate touches from the same small group.

Be explicit about attribution windows

Ads Manager supports:

  • 7-, 14-, or 30-day click-through reporting windows
  • 0-day or 1-day view-through reporting

A view-through conversion is reported when someone converts within one day of an eligible ad impression and no qualifying click receives credit. If both qualify, the click gets credit. See OpenAI’s measurement guide.

For an early local-services pilot, we generally prefer to report:

  1. click-through conversions separately
  2. view-through conversions separately
  3. CRM-attributed leads separately
  4. booked jobs and revenue from the operating system

Do not collapse everything into one impressive-looking “conversions” number.

OpenAI also warns that attributed conversions may take 24–48 hours to appear. Recent totals can change as processing completes.

The weekly scorecard

A useful client report can fit on one page.

MetricDefinition
Media spendActual OpenAI advertising spend
Unique inquiriesDeduplicated calls and forms
Qualified leadsLegitimate service-area prospects for the promoted service
Booked appointmentsAppointments scheduled
Completed appointmentsAppointments that occurred
Sold jobsCustomers who purchased
RevenueBooked, completed, or collected—clearly labeled
Media cost per qualified leadMedia spend ÷ qualified leads
All-in cost per sold jobMedia + management + tools ÷ sold jobs

Below that, include diagnostic metrics:

  • impressions
  • clicks
  • CTR
  • average CPC
  • landing-page conversion rate
  • call answer rate
  • speed to lead
  • booking rate
  • close rate

The owner should see the business result first.

Common measurement failures

Sending traffic to the homepage

The homepage serves too many purposes and makes campaign-level conversion behavior harder to interpret.

Using one generic phone number

The call arrives, but source attribution depends on someone asking “How did you hear about us?”

That data is unreliable.

Firing events too early

Button clicks are counted as leads. Form views are counted as conversions. The platform gets bad signals.

Ignoring existing customers

A warranty call from an existing customer is not a newly acquired customer.

Counting platform conversions as CRM truth

Ads Manager may include modeled or view-through attribution. The CRM may use first-touch or last-touch. Analytics may use a different window.

Differences do not automatically mean one system is broken. OpenAI explains several reasons totals can differ, including windows, time zones, consent, storage, and deduplication.

Waiting until after launch

Measurement is not cleanup work.

Build and test it before the ad is eligible to serve.

Our measurement standard

ChatDemand’s job is not to produce a report that makes the campaign look good.

It is to answer:

  1. Did ChatGPT produce real prospects?
  2. Were they the right prospects?
  3. Did the business book and close them?
  4. What did acquiring them cost?
  5. Should the company continue, change, or stop?

Anything less is advertising theater.

Sources

Ready to test ChatGPT Ads in your market?

ChatDemand handles everything — from ad to booked job.

Check Your Market →