- Delivery
- Google Ads API click conversion upload, plus adjustments for refunds
- Conversion action type
- Offline (Import) actions only. Website tag actions cannot be used
- Matching
- gclid, gbraid or wbraid; hashed email and phone as enhanced conversions when ad-user-data consent is granted
- Deduplication
- Order ID on each upload, so a retried conversion is not counted twice
- Consent
- adUserData and adPersonalization signals are sent with every upload
- Connect with
- Google sign-in, a 10-digit customer ID, and an optional manager (MCC) ID
- Retries
- Durable queue; new conversion actions are retried until Google starts accepting them
- Reporting delay
- Uploads can take several hours to appear in Google Ads
How it works
The ad click is captured
When a visitor lands from a Google ad with auto-tagging on, the URL carries a gclid (or a gbraid or wbraid for some iOS traffic). SignalBridge stores it for that visitor so it is still available when the conversion happens, which may be in a later session.
The event is stored and consent is read
The event is stored durably first. SignalBridge then reads the visitor's marketing consent and derives Google's two signals, ad user data and ad personalization. If marketing consent is denied, nothing is sent to Google.
The event is matched to a conversion action
Each SignalBridge event type must be mapped to a Google Ads conversion action. Mapping is exact: an event with no active mapping is skipped rather than sent to a guessed action.
Eligibility is decided
An event uploads if it has a click ID, or if it has a usable email or phone and ad-user-data consent is granted. Hashed email and phone are only attached when that consent is granted.
The conversion is uploaded
SignalBridge sends the conversion with the action, time, value, currency, order ID, click ID, consent signals and, for Shopify, whether the customer is new or returning. Temporary failures and brand-new conversion actions are retried automatically.
Which events are uploaded
You choose which Google Ads conversion action each SignalBridge event feeds. Anything you do not map is not sent.
| SignalBridge event | Becomes in Google Ads | Notes |
|---|---|---|
| Purchase | Your Purchase offline conversion action | Sent with value, currency and order ID. The order ID is what keeps a retried upload from counting twice. |
| Lead, CompleteRegistration, SignUp, SubmitApplication, Contact, Subscribe, StartTrial, Schedule | One conversion action per event you map | Lead-type events use a stable submission ID when your form supplies one, and otherwise the event ID. |
| PageView, AddToCart, InitiateCheckout and other standard events | Optional actions you create and map | Useful as secondary actions. Avoid making them primary unless you intend to optimise for them. |
| RefundedOrder, OrderCancelled (Shopify) | An adjustment to the original Purchase | A full refund or cancellation retracts the conversion. A partial refund restates it with the new value, matched by order ID. |
| Custom events from sb_track() | The action you map to that exact event name | The name is case-sensitive. |
What decides whether an event uploads
Google needs something to match the conversion to. SignalBridge checks this on every event, and logs the route it took.
| Situation | Result |
|---|---|
| The event has a gclid, gbraid or wbraid | Uploaded. Hashed email and phone are added only if ad-user-data consent is granted. |
| No click ID, but a usable email or phone and ad-user-data consent granted | Uploaded as an enhanced conversion using the hashed identifiers. |
| No click ID, email or phone supplied, but consent not granted | Not uploaded. The customer data is never sent without consent. |
| No click ID and no usable email or phone | Not uploaded. There is nothing for Google to match. |
Requirements
- A Google Ads account with auto-tagging turned on, so the click ID is added to landing page URLs.
- Admin access to the account (or access through a manager account) to sign in with.
- One offline conversion action in Google Ads for each event you want to upload.
- The SignalBridge script on your site or the SignalBridge Shopify app.
- If you run a consent banner, connect it so consent signals reflect real choices.
Set up Google Ads
Create offline conversion actions in Google Ads
In Google Ads open Goals and create a conversion action. At the data source step, deselect conversions on a website, in an app and from phone calls, and keep only conversions that are imported or offline. Choose the category, for example Purchase or Submit lead form, then save. Repeat for each event.
Connect Google Ads in SignalBridge
In your pixel's settings find Google Ads and choose Connect. Sign in with the Google account that has access, then pick the account. If you work through a manager account, choose the client account underneath it.
Enter the account details
Confirm the 10-digit customer ID, and the manager account ID if the client account is reached through a manager.
Map each event to an action
For each SignalBridge event, choose the event type and enter the Conversion Action ID. Open the action in Google Ads and read the number after ctId= in the browser address. Use that ID, not the one shown under Tag setup. For custom events, enter the exact event name.
Install SignalBridge and accept the data terms
Add the SignalBridge snippet or install the Shopify app. If Google reports that the enhanced conversions customer data terms are not accepted, accept them in the Google Ads account, then retry.
Verify it works
Check delivery in SignalBridge
The Google Ads card shows the mapped actions, the last accepted delivery and any failures from the last 24 hours with a plain-language reason. A state of needs attention means Google reported something you can fix.
Click a real ad, then convert
Click one of your own ads, complete a test conversion in the same browser, and watch the event stream. The event should show a Google click ID and a delivered status for Google Ads.
Look for the conversion in Google Ads
Open Goals, then the conversion action, and check its status and diagnostics. Allow several hours before concluding anything: uploaded conversions are not instant.
Troubleshooting
Google rejects the upload as an invalid conversion action type
The mapped action is a website action. Create an offline (import) action and map that one instead.
The customer data terms error appears
Accept Google's enhanced conversions customer data terms in the destination Google Ads account, then retry the failed deliveries.
A new conversion action rejects everything for hours
Google can take a while to accept uploads for a newly created action. SignalBridge retries automatically, after about 30 minutes when the action is not found yet and after about 6 hours when it is too new.
Click not found, or the click ID is invalid
Check that auto-tagging is on, that no redirect or form strips the gclid, and that the click is from the same Google Ads account you connected. Retrying an unreadable ID does not help, and it does not block later events.
Purchases are counted twice in Google Ads
The SignalBridge offline action and a website tag action are both primary for the same purchase. Make one of them secondary.
Conversions from some iOS traffic are rejected on a "One" counting action
Google does not accept gbraid or wbraid conversions on actions that count one per click. Use the Every counting option for purchases.
The integration says the token expired or was revoked
Reconnect Google Ads in SignalBridge to renew its permission.
What to know before you rely on it
Where this integration stops, so the numbers you see are read correctly.
- Only offline conversion actions work. Existing website actions that use the Google tag cannot receive these uploads.
- An event needs a Google click ID, or a consented email or phone. Direct, organic or other-channel conversions without either are not uploaded, and are not meant to be.
- SignalBridge passes consent signals to Google, but it does not run Google's consent mode modelling. Keep your own consent mode setup for the browser tag.
- Refund and cancellation adjustments need an order ID, so they apply to Shopify orders and other sources that provide one.
- Uploads reach Google after a delay, and Google's own attribution and reporting decide how they are counted.
Questions about this integration
What are enhanced conversions?
Enhanced conversions let you send hashed first-party customer data, such as email and phone, with a conversion so Google can match it more reliably. SignalBridge hashes the data with SHA-256 and attaches it only when ad-user-data consent is granted.
Do I still need the Google tag?
Keep it if you use it for audiences, remarketing, or website conversion actions. SignalBridge adds server-side uploads for the conversions the tag misses. If both report the same purchase, make only one of the two actions primary.
What is the difference between gclid, gbraid and wbraid?
The gclid identifies a click on most web traffic. Gbraid and wbraid are used for some iOS traffic where Google limits the gclid, for app-to-web and web-to-app journeys. SignalBridge uploads whichever one the click carried.
Why are fewer conversions uploaded than I have orders?
Only conversions that can be matched are uploaded. Orders from organic search, email, direct visits or other ad platforms have no Google click ID, and Google is not given customer data without consent.
Are refunds handled?
For Shopify, yes. A cancellation or full refund retracts the original conversion and a partial refund restates its value, using the order ID. Other platforms need to supply an order ID and a refund event to do the same.
Can I connect through a manager account?
Yes. Enter the manager account ID when you connect, and SignalBridge sends it as the login customer so the client account can be reached.
How long until conversions show in Google Ads?
Several hours is normal for uploaded conversions. A brand-new conversion action can take longer before Google accepts the first upload.
Is ad spend synced as well?
On the Pro plan and above, SignalBridge can pull daily ad spend from your Google Ads account so cost per acquisition and return on ad spend use real spend.