How to Sync Revenue and Offline Conversions in Google Ads
Pick which SourceLoop events push to which Google Ads conversion action, configure value mapping, dedup window, and Enhanced Conversions.
On this page
After you’ve connected Google Ads to SourceLoop, the next step is wiring up the actual conversion mappings. Which SourceLoop event (form submit, meeting booked, payment) pushes to which Google Ads conversion action, with what value, attribution model, and dedup behavior.
This is the part that determines whether Google’s bidding optimises toward real revenue or toward whatever happens to fire first on the page.
Before you start
You’ll need:
- Google Ads connected (the card on the Ad Platforms tab shows Active)
- A Google Ads conversion action already created in Google Ads. If you don’t have one yet, in Google Ads go to Tools -> Conversions -> + New conversion action -> Import -> Other data sources -> Track conversions from clicks.
- The numeric Conversion Action ID from Google Ads (find it in the URL of the conversion action page, or via Tools -> Conversions, click into the action, copy the ID from the URL)
- Admin or Owner role in SourceLoop
Step 1: Open the Google Ads drawer in SourceLoop
- Sign in to SourceLoop.
- Open Setup -> Ad Platforms -> Google Ads.
- The Google Ads drawer opens with the connection status at the top and a Conversion sync section below.
Step 2: Add a conversion mapping
- Click Add conversion mapping (or + New depending on the UI variant).
- Pick the Trigger event type from the dropdown:
- Conversion created — fires for every new lead conversion (form submit, meeting, chat with email captured, initial payment)
- Expected revenue updated — fires when the lead’s quote_value field changes (CRM-driven)
- Realized revenue updated — fires when a payment integration confirms revenue (Stripe charge, Lemon Squeezy order, Paddle transaction)
- (Optional) Set a Trigger event name filter — leave blank to match all events of that type, or filter by source (e.g.,
form_submission,calendly_booking,stripe_charge.succeeded). - Pick an Attribution model:
- Last touch — the converting session’s source
- First touch — the original acquisition source
- Paste the Conversion Action ID from Google Ads (just the numeric ID, e.g.,
12345678901).
Step 3: Configure value and dedup settings
- Toggle Include value if you want to send a revenue figure with each conversion.
- Pick the value source:
quote_value— expected revenue (from CRM or lead scoring)sales_value— actual realised revenue (from payment integrations)- Fixed value — a flat amount per conversion (e.g., $50 per lead)
- Set Currency if you want to override the workspace default (Google Ads uses this for tROAS).
- Set the Dedup window in minutes (default 1440 = 24 hours). Within this window, repeated conversions of the same type from the same GCLID won’t be re-pushed.
- Click Save.
The mapping appears in the Conversion sync list. SourceLoop starts pushing matching conversions to Google Ads on the next 2-minute flush cycle.
Step 4: Verify conversions are arriving in Google Ads
- Wait 6 to 24 hours after the first matching conversion fires in SourceLoop (Google Ads has a delay before the count appears).
- In Google Ads, open Tools -> Conversions and click into the conversion action you mapped.
- The Recent conversions column should show counts climbing.
- For more detail, check Tools -> Conversions -> Conversion sources -> Import. Each batch SourceLoop pushes is recorded there with timestamps and any errors.
In SourceLoop, you can also check Setup -> Ad Platforms -> Google Ads -> Sync log to see every conversion push with the GCLID, value, status, and Google Ads response.
Enhanced Conversions
For every push, SourceLoop also sends hashed user data (email + phone, SHA256) as Enhanced Conversions. This gives Google a fallback match path when the GCLID isn’t available (e.g., the visitor’s cookies expired or they used a different browser).
Enhanced Conversions are enabled automatically on the conversion action the first time SourceLoop pushes to it. No additional setup is needed on Google Ads.
What gets pushed
For every matching SourceLoop event, the push includes:
- GCLID captured by the tracking pixel from the visitor’s first session (when present)
- Conversion timestamp in RFC 3339 format with timezone
- Conversion action resource name (built from the Customer ID + Action ID)
- Conversion value (currency units) when
include_value=true - Currency code (ISO 4217)
- Enhanced Conversions PII (hashed email, hashed phone) for fallback matching
- Order ID (the SourceLoop conversion’s external_id) for dedup
For subscription upgrades, downgrades, and refunds (when payments are connected), SourceLoop pushes conversion adjustments (RESTATE / RETRACT) against the original conversion. This keeps your Google Ads revenue reports accurate even when the deal value changes after close.
What’s next
- Troubleshoot pushes that aren’t appearing in Google Ads: Troubleshoot Google Ads sync issues.
- Add more conversion actions for separate funnels (lead, demo, paid plan, upgrade): repeat steps 2-3 with each Google Ads Conversion Action ID.
Frequently asked questions
-
What's the difference between a 'conversion source' and a 'conversion action' in Google Ads?
A conversion source is the system that reports the conversion (e.g., website, app, import). A conversion action is the specific event being tracked (e.g., Form Submission, Demo Booked, Purchase). SourceLoop pushes conversions via the Import source against specific conversion action IDs.
-
Do I need to create the Google Ads conversion action first?
Yes. Open Google Ads, go to Tools -> Conversions -> + New conversion action, pick Import -> Other data sources -> Track conversions from clicks. Name it something specific (e.g., "SourceLoop - Demo Booked"). Then paste its Conversion Action ID into SourceLoop.
-
Where do I find the Conversion Action ID?
In Google Ads, open the conversion action and check the URL. The numeric ID at the end (e.g., `conversionActionId=12345678`) is what you paste into SourceLoop. Alternatively, run a GAQL query against `conversion_action` and grab `conversion_action.id`.
-
Can I send revenue values with conversions?
Yes. In the SourceLoop configuration, toggle "Include value" and pick the value source (e.g., `quote_value`, `sales_value`, or a fixed value). Currency is read from the same source if available, otherwise it defaults to your workspace currency. Google Ads uses the value for tROAS bidding.
-
What's the dedup window for?
Google Ads deduplicates conversions for the same GCLID within a window. SourceLoop sets a 24-hour default but you can change it. Within the window, repeated conversions of the same type from the same click are ignored. This matches Google's default behavior for tag-fired conversions.
-
My conversion action shows as 'Pending verification' in Google Ads. What now?
That's normal for new conversion actions. Google Ads needs to see real conversions arriving before it marks the action as Active. After a few pushed conversions reach Google Ads (within 6 hours of the first push), the status flips automatically.
-
Can I push the same SourceLoop event to multiple Google Ads conversion actions?
Yes. Add separate configuration rows in SourceLoop, one per target Google Ads action. Useful for splitting Search-only vs Display-only conversion actions, or for sending both a Lead conversion and a Purchase conversion off the same form.