Skip to main content
FEATURE · GOOGLE ADS

Every click — even the iOS ones — counted in Google Ads.

Conversion tag, gclid + gbraid + wbraid capture, Enhanced Conversions, and per-location Conversion Labels. The Google Ads stack a restaurant marketer wishes their agency built for them.

TL;DR
  • We capture all three Google Ads click identifiers on landing: gclid, gbraid, and wbraid.
  • The conversion tag fires on every platform tap with the click ID and a unique transaction_id.
  • Enhanced Conversions ship hashed email + phone where consented — recovering 15-20% of iOS attribution.
WHY IT MATTERS

gclid alone hasn\'t been enough since iOS 14.

For most of Google Ads\' history, gclid was the only click identifier you had to worry about. It rode along in the URL, your conversion tag captured it, and Google matched it back to the original auction. Simple.

When Apple introduced App Tracking Transparency in iOS 14, Google had to introduce gbraid and wbraid as aggregated, privacy-preserving alternatives for iOS users who do not grant tracking permission. Most analytics templates and most GTM tutorials still only mention gclid, which means roughly half of iPhone ad clicks — and therefore roughly half of US restaurant traffic — vanishes from your conversion reporting.

DineRoute captures all three click IDs on landing, persists them to a first-party cookie, and re-attaches the right one to every conversion event we fire downstream. This is the difference between Google Ads seeing 60% of your real conversion volume and 85-90% of it.

On top of click ID capture, we wire up Enhanced Conversions with hashed email and phone where the diner has provided them in a downstream ordering flow. Enhanced Conversions cross-match the click back to a Google account, recovering signal that pure gclid attribution would lose to cross-device or cookie-cleared sessions.

HOW DINEROUTE IMPLEMENTS IT

Three things happen between landing and the Google Ads conversion.

No GTM. No custom JS variables. No Conversion Linker tag you forgot to enable.

01

Click ID capture on landing

On page load we parse the URL for gclid (web), gbraid (iOS web), and wbraid (iOS app→web). All three are persisted to a first-party cookie scoped to your domain for 90 days.

02

Conversion tag fires on tap

When the diner taps DoorDash or Uber Eats, gtag('event', 'conversion') fires with the Conversion ID, Conversion Label, transaction_id, and the captured click ID re-attached.

03

Enhanced Conversions hashed

If the diner provided email or phone (e.g. on a multi-step ordering flow), we hash it with SHA-256 and pass it in the gtag enhanced_conversion_data block for cross-device match.

EXAMPLE GTAG CONVERSION CALL (on a DoorDash tap from an iOS Safari user)
gtag('event', 'conversion', {
  'send_to': 'AW-1234567890/AbC-D_efGhIjKlMnO',
  'transaction_id': 'c2c7e62a-9a4b-4f5a-b6f1-2b7e3a9a8c2d',
  'value': 0,
  'currency': 'USD',
  'gbraid': 'CKL1m7vQ8YYDF...',     // iOS web click ID, restored from cookie
  'enhanced_conversion_data': {
    'sha256_email_address': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
    'sha256_phone_number': '7d793037a0760186574b0282f2f435e7'
  }
});
Google Ads finally agrees with my Meta numbers. Both say the same thing.
A restaurant marketer 14 days into running DineRoute · Texas chain · 4 locations
SETUP IN ~5 MINUTES

Five steps, one onboarding wizard.

Everything below happens once, when you first wire up Google Ads.

1

Get your Conversion ID

Google Ads → Tools → Conversions → New conversion → Website. Copy the 9-digit Conversion ID (AW-XXXXXXXXX) and the Conversion Label.

2

Paste both into DineRoute settings

In your account settings, paste AW-Conversion ID and Conversion Label. We validate the format before saving and warn if either looks wrong.

3

Choose a conversion type

Pick "Lead" or "Submit lead form" — these match how Meta and Google treat a restaurant platform tap. Setting it to "Purchase" without a server-side value will cause your Google Ads to over-bid.

4

Enable Enhanced Conversions

In the Conversion settings, toggle Enhanced Conversions on. We will start passing hashed email/phone where consented. This recovers ~15-20% of iOS attribution.

5

Test with Google Tag Assistant

Install Google's Tag Assistant Companion extension, click your live link with ?dr_test=1, watch the gtag conversion event fire with the click ID attached. Expect to see "Tag fired" + "Click ID: gclid=..." in the dev panel.

6

Switch your bidding strategy

Once you have 50+ conversions in 30 days, switch from Manual CPC or Maximize Clicks to Maximize Conversions or Target CPA. Smart bidding needs the click ID + Enhanced Conversion data to actually work.

WHAT YOU SEE IN GOOGLE ADS

The conversion column finally moves.

In Google Ads → Conversions → your PlatformClick conversion, you will see two things change within the first week. First, the Conversions column climbs as gbraid + wbraid restore iOS attribution. Second, the "Conv. value / cost" metric becomes useful because every conversion now carries a transaction_id and (optionally) a value.

If you also import offline conversions on a daily cadence, the Conversion column gets a second layer — "All conv." includes both the online click events DineRoute fires and the actual orders that closed. That is the data you can hand to a Performance Max campaign for it to actually learn.

Screenshot · Google Ads · Conv. column climbing post-setup Live restaurant data redacted for privacy.
DINEROUTE VS BUILD-IT-YOURSELF

Two paths to the same Google Ads conversion column.

You can absolutely build this in GTM. If your agency knows what gbraid is and remembers to set a Conversion Linker on every landing page, you are 80% of the way there.

CapabilityDineRouteGTM + custom JS
gclid capture Auto + cookie persisted GTM cookie variable + custom JS
gbraid (iOS web) capture Auto Most setups still miss this
wbraid (iOS app→web) capture Auto Rarely implemented
Enhanced Conversions hashed PII Built-in with consent gate Bespoke gtag config + hashing
Per-location Conversion Labels One ID, N labels GTM trigger + dataLayer per page
Offline conversion import (daily) CSV ready in dashboard You build the join + upload
iOS conversion signal recovery ~85-90% retained 50-60% retained
FAQ

Eight questions a media buyer actually asks.

What is gbraid and why do I need it for iOS users?

gbraid is Google's aggregated click identifier that replaces gclid for iOS Safari traffic after iOS 14. It carries less granular signal than gclid, but is the only identifier Google supplies for iOS web ad clicks. Most tracking setups still only capture gclid and silently miss roughly half of iPhone traffic.

What is wbraid?

wbraid is the iOS app-to-web variant. When a user taps your Google ad from inside an iOS app (a news app, Instagram, etc.) and lands on your DineRoute page, wbraid is the click identifier Google attaches. We capture and forward all three: gclid, gbraid, and wbraid.

Do you support Google Ads Enhanced Conversions?

Yes. We pass hashed email and phone (SHA-256) in the enhanced_conversion_data field when the diner has provided them through a downstream flow. This typically recovers 15-20% of iOS conversion signal that would otherwise be lost to ATT.

How do you handle the offline conversion import?

If you want to feed actual order revenue back into Google Ads (recommended for chains over 20 locations), DineRoute can export a daily click-to-order CSV with the original gclid attached. Upload it to Google Ads → Conversions → Conversions from clicks for full-funnel ROAS optimization.

Will this work with Performance Max campaigns?

Yes. PMax requires Enhanced Conversions and benefits hugely from offline conversion import. DineRoute customers see 20-35% lower CPA on PMax within 14 days of switching from link-click optimization to PlatformClick conversions.

What conversion value should I assign?

For most restaurants, leave the value at $0 and treat platform clicks as the optimization signal — Google's smart bidding will optimize toward click volume × historical close rate. If you have first-party order data via the offline import, set a dynamic value matching your real average order value.

How does this compare with running GTM yourself?

You can replicate this in GTM with three custom JS variables (gclid, gbraid, wbraid), a Conversion Linker tag, a Google Ads conversion tracking tag, and a Conversion Linker triggered on URL change. DineRoute ships all of it pre-wired with the click IDs already cookie-stored.

Can I track conversions per location for a multi-location brand?

Yes — each location has its own Conversion Label, so a 4-location chain like Malai Kitchen ships 4 separate Google Ads conversion events from one umbrella Conversion ID. Google Ads sees per-location performance natively, no Looker Studio rebuild needed.

WIRE UP GOOGLE ADS

Get iOS back on the books.

Paste your AW-Conversion ID, your Conversion Label, fire a test click. The Conversions column starts moving in 48 hours.

No credit card. 14-day trial. Cancel any time.