Call tracking and AI scoring
VibeAds-provisioned tracking numbers route inbound calls through Twilio, transcribe via Deepgram, score with Gemini, and upload qualified calls to Google Ads as offline conversions. Pro and Max only.
What it does
For local service businesses, calls drive most of the high-intent leads. Google's native call tracking only tells you call duration. VibeAds tells you:
- Was this a real lead or spam?
- What service did they ask for?
- How urgent (emergency, soon, flexible)?
- Are they price-shopping, comparing competitors, ready to book?
- Should you call them back? When?
And it feeds that intelligence back to Google Ads so Smart Bidding optimizes for the keywords that drive booked jobs, not the ones that drive spam calls.
Dynamic Number Insertion
On every funnel page, a meta tag carries the campaign's tracking number. A small client-side script reads the tag, the URL gclid, and the UTM params, then:
- Registers the session (gclid + utm) with the backend, mapped to the tracking number for 30 minutes.
- Swaps every
[data-tracking-phone]element with the tracking number.
When the visitor calls, Twilio looks up the gclid by tracking number, attaches it to the call record, and post-call processing uses it to upload the conversion.
Call flow
- Caller dials the VibeAds tracking number.
- Twilio webhook plays a two-party consent announcement ("This call may be recorded for quality purposes") to cover all 50 states.
<Dial>to your business number withrecord="record-from-answer-dual".- Call completes. Twilio status callback triggers post-call processing.
- Recording is downloaded from Twilio storage.
- Deepgram Nova-3 transcribes with speaker diarization (~$0.0066/min).
- Gemini 2.0 Flash analyzes the transcript (~$0.0002/call).
- CRM lead record is created with the call linkage.
- Push notification fires for qualified leads and missed calls.
AI lead qualification scoring
Gemini extracts per call:
is_spam(boolean)call_outcome(booked / interested / info_only / not_interested / spam / voicemail / missed)lead_score(0 to 100, weighted)intent_classification(service_request, quote_request, emergency, information, complaint, spam)service_type(extracted, e.g. "water heater repair")service_urgency(emergency / urgent / soon / flexible / unknown)estimated_value(from category lead values)caller_name,caller_location,property_typeneeds_callback,mentioned_competitor,price_sensitivesummary(1-2 sentence CRM summary)recommended_action(call_back_immediately / follow_up_today / add_to_drip / no_action)
Offline conversion upload
upload-call-conversions runs every 15 min. Picks up calls with score over 30 + valid gclid + not yet uploaded. Uploads them to UPLOAD_CLICKS_LEAD (or AD_CALL where applicable). Smart Bidding learns which keywords drive booked jobs vs which drive tire-kickers.
When Jobber is connected and the call generated a Jobber Job, the call upload is skipped (the eventual paid invoice will upload, double-counting protection).
Cost
VibeAds absorbs the cost on Pro and Max:
- Pro: 1 tracking number, 100 minutes/month included. Overage at $0.01/min.
- Max: 3 tracking numbers (DNI pool), unlimited minutes.
Per-call cost breakdown (4-min call): Twilio voice $0.034 + recording $0.010 + Deepgram $0.026 + Gemini $0.0002 = ~$0.07 per call.
vs CallRail and CTM
CallRail starts at $150/mo. CallTrackingMetrics is $179/mo. Both offer call tracking + transcription + AI scoring. Neither bundles campaign creation, landing pages, or autonomous optimization. VibeAds Pro at $20/mo includes call tracking + everything else.