Your ads fill the SimpleTexting list. Google Ads can't tell which ones did it.
You send paid clicks to a page with a text-to-join widget or a SimpleTexting sign-up form, new numbers land on your list, and Google Ads and Meta record nothing. The widget opens the visitor's texting app, so the join happens when they hit send, out of reach of your site's tags. We tie each sign-up to the click behind it, and when that subscriber later orders, books or buys, that's what Google Ads and Meta learn from.
Free30 minutesNo obligation
SimpleTexting · what breaks
What goes wrong when your ads feed SimpleTexting
- 01
"The text-to-join button gets taps, but my ads show zero sign-ups"
The Mobile Sign-Up Widget opens the visitor's texting app with your keyword and number filled in. The join happens when they hit send, so your page never sees it. Bidding has nothing to learn from, and a trampoline park paying for birthday-party clicks can't say which campaign grew the list.
- 02
"I can't tell ad sign-ups from the sign at the register"
Every keyword opt-in lands on the list looking the same. A propane or water-delivery company that prints its keyword on delivery tickets and also runs Google Ads gets one pile of numbers, so paid search takes credit for customers it never brought in, or loses credit it earned.
- 03
"The sign-up form says thanks, and that's the last we hear"
SimpleTexting documents its web form as a link, an iframe or styleable HTML that ends on a confirmation message. It doesn't document a redirect page, hidden fields or a slot for the ad click ID, so a lash studio's form can't carry the GCLID on its own, and the iframe version keeps the submit away from your tags.
- 04
"Facebook keeps finding people who join for the coupon and never come in"
Even when a sign-up gets counted, the opt-in trains Meta, not the bridal fitting or delivery order that follows. Campaigns drift toward freebie hunters while cost per paying customer quietly climbs.
SimpleTexting · the fix
What changes once SimpleTexting sign-ups reach your ad accounts
Every web-form sign-up tied to its click
The click ID is read on your own domain and sent with the hashed phone number from a server container on your subdomain, once per person.
Keyword joins counted and labeled honestly
Text-to-join opt-ins arrive through SimpleTexting's incoming-message webhook and are sent with a hashed phone number only where Google or Meta accepts phone-only matching. They're never passed off as click-matched.
Bidding learns from customers, not subscribers
The order, appointment or ticket a subscriber buys later goes back to Google Ads and Meta with its value, so campaigns chase buyers instead of coupon collectors.
SimpleTexting · architecture
What SimpleTexting actually lets you hook into
From SimpleTexting's help center and its v2 API reference. Where the docs say nothing, we test on your account.
- 1
Three website opt-in tools
A web sign-up form (phone required), a Mobile Sign-Up Widget that opens the texting app with keyword and number prefilled, and a click-to-text button with a prewritten message. None documents analytics events.
- 2
UTM codes on outgoing texts
SimpleTexting says shortened links keep their UTM parameters for Google Analytics. That measures your texts, not your ads.
- 3
Webhooks for message events
INCOMING_MESSAGE, OUTGOING_MESSAGE, DELIVERY_REPORT, NON_DELIVERED_REPORT, UNSUBSCRIBE_REPORT, conversation opened and closed, and CONTACT_PHONE_UPDATE, each posting to a URL you register through the API. None of the eight fires on a web-form sign-up.
- 4
Contacts API with source and custom fields
Each contact carries custom fields, a subscription status and an updateSource recording how the record was last added or changed, such as KEYWORD, WEB_FORM, ZAPIER or IMPORTED_FROM_FILE. API access is by approval only.
- 5
Zapier and contact syncs, inbound only
The Zapier walkthrough shows an Add Contact action, and contact syncs pull from Constant Contact, Mailchimp, WooCommerce, Squarespace, Wix, Keap, Zoho and Zendesk. None of them is documented as sending conversions to Google Ads or Meta.
SimpleTexting · diagnose
Where SimpleTexting tracking breaks, in the order we check
Start at the hand-off: on SimpleTexting the join usually happens in the visitor's texting app, where your tags can't reach.
- 01
Tap the widget from an ad-tagged URL and text the keyword
Then look in GA4, Google Ads and Meta.
- 02
Check how the sign-up form is embedded
The iframe hides the submit from your page; the HTML version can be listened to.
- 03
Look for the click ID after a test form sign-up
If it's missing from the server event, Google Ads can't match the lead to the click.
- 04
Pull the contact source for last week's joins
Each contact's updateSource (KEYWORD, WEB_FORM, IMPORTED_FROM_FILE and others) shows roughly how much of the list could be attributed at all.
- 05
Check whether one keyword is used everywhere
The same word on ads and on in-store signage makes paid and offline joins impossible to separate.
- 06
Compare subscribers with paying customers
If no purchase data goes back, bidding is optimizing for opt-ins.
SimpleTexting · prove
How we prove SimpleTexting joins are counted
Run on your live site from an ad-tagged link and a real phone, not the widget preview.
Source of truth
SimpleTexting contacts (new subscribers by date, with their list and updateSource) plus your booking, POS or delivery records for what they went on to buy
- One web-form sign-up from a test-GCLID URL, with the click ID confirmed on the server event.
- One keyword text sent from the widget, with the incoming-message webhook received and logged once.
- Exactly one Meta lead per subscriber, confirmed in Events Manager with a shared event ID.
- An unsubscribe received by webhook and that number kept out of any audience we send.
- New contacts and paying customers matched one by one against Google Ads and Meta for a closed week.
- Repeated 30 days later and after any change to keywords, lists or forms.
SimpleTexting · free audit
What we check in the free audit
- Tap the widget from an ad-tagged URL and text the keyword
- Check how the sign-up form is embedded
- Look for the click ID after a test form sign-up
- Pull the contact source for last week's joins
- Check whether one keyword is used everywhere
- Compare subscribers with paying customers
Checked against
SimpleTexting contacts (new subscribers by date, with their list and updateSource) plus your booking, POS or delivery records for what they went on to buy
Free30 minutesNo obligation
SimpleTexting · when not to buy
When you don't need this on SimpleTexting
Some SimpleTexting accounts need a ten-minute settings check, not a build.
- If your list grows from counter signs, receipts and walk-ins and no paid traffic goes to a sign-up page, there's nothing to attribute.
- If you only want to know which texts drive site visits, UTM-tagged short links and GA4 already answer that.
- If your ads send people straight to book or buy and texting is a side channel, track the booking first. The opt-in can wait.
- If you run a haunted house or pumpkin patch for six weeks on a small budget, a paid-only keyword and a weekly count may be all the measurement you need.
SimpleTexting · what we deliver
The event map on SimpleTexting
Widget or click-to-text tap
A browser signal when someone opens their texting app from your page. Kept for reporting, never a bidding conversion.
Web-form sign-up
One event per submit, carrying the click ID plus hashed phone and email, sent server-side.
Keyword opt-in
Taken from the incoming-message webhook when the text matches your paid-page keyword, then checked against the contact record's list and updateSource in the Contacts API.
New subscriber, not a returning one
Checked against existing contacts, so a regular re-texting the keyword for this month's deal isn't a fresh lead.
Paid order, booking or visit
From your booking, POS or delivery system, sent with its real value. This is the conversion bidding should chase.
Excluded
Imported files, Mailchimp and Zapier syncs, paper-form entries, and anyone the unsubscribe webhook reports.
Written guarantee
95%+ tracking accuracy
Measured against SimpleTexting contacts (new subscribers by date, with their list and updateSource) plus your booking, POS or delivery records for what they went on to buy. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
SimpleTexting questions, answered
Not for conversions, going by its help center and API reference. It documents UTM codes on texts you send, inbound contact syncs, Zapier and webhooks, so getting sign-ups or sales into Google Ads and Meta is something built on top.
Not as a click-matched conversion, because the opt-in is a text from the visitor's phone, not an action on your site. We count the widget tap as an intent signal and send the join with a hashed phone number only where the platform accepts phone-only matching, each labeled for what it is.
HTML, if you want it tracked. It sits on your own page, so a listener can catch the submit and attach the click ID; the iframe loads separately and SimpleTexting documents no events from it.
Yes, once paid traffic gets its own keyword or form feeding its own list. Each contact also carries an updateSource value such as KEYWORD or WEB_FORM that separates ad joins from imports and syncs, though it reflects the record's last change, so the dedicated list is what we rely on.
For the webhook and contact lookups, yes. SimpleTexting grants API access by approval, so we request it first, and the web-form path can go live before it's granted.
More on SimpleTexting
- Enhanced ConversionsEnhanced Conversions enrich the conversions that already fire. First we make sur…
- Meta CAPIA one-click CAPI integration sends thin events. That's why your Event Match Qual…
- Cross-Domain TrackingYour checkout provider is the best performing traffic source in your GA4 account…
RELATED GUIDES
Booking tools beside SimpleTexting, and what their bookings feed
- Constant ContactYour ads fill your Constant Contact list. Your ad accounts can't tell which ones paid off.
- RevenueWellPatients request appointments in RevenueWell. Google Ads never hears about it.
- FlodeskYour Flodesk list grows every week. Your ads can't tell you which clicks did it.
- DemandforceDemandforce fills your schedule. Your ads take credit for the recalls.
- Lighthouse 360Lighthouse 360 keeps the schedule full. Your ads still can't tell which patients were new.
- ServiceTitan Marketing ProServiceTitan shows which jobs paid. Google Ads is still bidding on 60-second calls.
- Square MarketingSquare says your emails made the sale. Your ad account says nothing happened.
- KitKit keeps adding subscribers. Your ads can't say which clicks sent them.
Free · 30 min
Find out which ads actually grow your SimpleTexting list
Free30 minutesNo obligation
