Skip to main content
Ad platform
Setup about 3 minutes

Google Ads server-side conversion uploads with SignalBridge

SignalBridge uploads your conversions to Google Ads from its servers, matched to the ad click by gclid, gbraid or wbraid, with hashed email and phone attached when the visitor has given Google consent. A purchase is still credited to the right campaign when the Google tag or its cookies were blocked in the browser.

The uploads are offline click conversions: they use the Google Ads conversion upload API, not the website tag. This page explains what is sent, what makes an event eligible to upload, how refunds are handled, how to set it up, and where it stops.

By Kiril Kostov, Founder of SignalBridge. Checked against the product on .

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 eventBecomes in Google AdsNotes
PurchaseYour Purchase offline conversion actionSent 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, ScheduleOne conversion action per event you mapLead-type events use a stable submission ID when your form supplies one, and otherwise the event ID.
PageView, AddToCart, InitiateCheckout and other standard eventsOptional actions you create and mapUseful as secondary actions. Avoid making them primary unless you intend to optimise for them.
RefundedOrder, OrderCancelled (Shopify)An adjustment to the original PurchaseA 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 nameThe 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.

SituationResult
The event has a gclid, gbraid or wbraidUploaded. 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 grantedUploaded as an enhanced conversion using the hashed identifiers.
No click ID, email or phone supplied, but consent not grantedNot uploaded. The customer data is never sent without consent.
No click ID and no usable email or phoneNot 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

  1. 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.

  2. 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.

  3. Enter the account details

    Confirm the 10-digit customer ID, and the manager account ID if the client account is reached through a manager.

  4. 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.

  5. 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

  1. 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.

  2. 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.

  3. 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.

Try Google Ads with SignalBridge

Every plan starts with a 14-day free trial. Connect it, send a test conversion and see the result before you decide.