Paid Media SEO / GEO AI Automation Web Design About Blog GET AUDIT →
Paid Media

Fix Google Ads Cross-Domain Conversion Tracking

9 min read 5 July 2026 By Amrit · Workflow AI Advisors
Google Ads Conversion Tracking Cross-Domain Paid Media

You've built a solid paid media funnel. Ads are live, Quality Scores are healthy, and traffic is flowing. Then you look at your conversion data and something's off — leads are coming in via your CRM but Google Ads is showing a fraction of the actual conversions. The culprit, more often than not, is a broken cross-domain tracking setup involving a third-party form host.

This is one of the most common and most costly attribution gaps we see at Workflow AI Advisors when auditing new client accounts. It's not a Google Ads bug. It's a configuration problem — and it's completely fixable if you understand what's actually breaking and why.

Why Cross-Domain Conversion Tracking Breaks in the First Place

Google's click tracking works by appending a gclid (Google Click Identifier) parameter to the destination URL when someone clicks your ad. Your Google tag (formerly Global Site Tag) stores this gclid in a first-party cookie on your domain. When the user converts, the tag fires and sends the gclid back to Google so it can attribute the conversion to the correct campaign, ad group, and keyword.

The problem is the word your domain. When you send traffic to a form hosted on a third-party domain — Typeform, JotForm, Calendly, Unbounce (on a separate domain), HubSpot's form pages, or a client sub-portal — the gclid cookie set on your domain is inaccessible on the third-party domain. Cookies don't travel across domains. The form submission fires its own thank-you event on a domain that has never seen the original click data.

Result: Google Ads sees the click. It never sees the conversion. Your optimisation algorithms — Smart Bidding especially — start making decisions based on incomplete data, and your ROAS tanks quietly over weeks.

Step 1 — Audit Exactly Where the Conversion Gap Lives

Before touching a single tag, confirm the scope of the problem. Pull these three data sets side by side:

  • Google Ads conversions over the last 30 days
  • Form submissions / leads from your CRM or backend over the same period
  • GA4 conversion events if GA4 is also installed on your primary domain

If Google Ads is under-reporting relative to your CRM, and GA4 is similarly low on the same conversions, the issue is almost certainly the cross-domain handoff. If GA4 is capturing events but Google Ads is not, you may have a tag configuration issue rather than a pure cross-domain problem — a subtly different fix.

Also check: is auto-tagging enabled in your Google Ads account? Go to Settings → Account Settings → Auto-tagging. If it's off, no gclid is being appended at all. That's your first fix right there.

Step 2 — Understand the Three Viable Fixes

There isn't one universal solution. The right approach depends on how much access you have to the third-party domain. Here are the three architectures, ranked from most to least preferred:

Option A — Linker Parameter Passing (Recommended Where Possible)

Google Tag Manager has a built-in cross-domain linker mechanism. When a user navigates from your domain to the third-party domain, GTM appends a _gl linker parameter to the URL. The Google tag on the destination domain reads this parameter and re-creates the attribution data in a new first-party cookie on that domain.

To implement this, you need Google Tag (or GTM) installed on both domains. In GTM on your primary domain:

  1. Open your Google Analytics 4 Configuration tag (or your Google Ads Conversion Linker tag)
  2. Enable the Conversion Linker tag if you haven't — this is a dedicated GTM tag type
  3. Under the Conversion Linker settings, enable "Enable linking across domains"
  4. Add the third-party domain(s) in the domain list
  5. On the destination domain, ensure the same Google tag or GTM container is firing with the correct Measurement ID

When this is configured correctly, a click from your domain to the third-party form URL will carry the _gl parameter, and the destination domain's tag will pick it up automatically. This is the cleanest solution and preserves full attribution fidelity.

Option B — URL Parameter Forwarding via Hidden Form Fields

If you can't install GTM on the third-party form domain (which is common with platforms like Typeform or Calendly where you don't control the domain-level code), you need to pass the gclid manually through the form submission itself.

The approach works like this:

  1. On your landing page, use JavaScript to read the gclid URL parameter and store it in localStorage or a first-party cookie
  2. When linking to the third-party form, dynamically append the gclid as a URL parameter: https://yourform.typeform.com/to/XXXX?gclid=XXXX
  3. On the form itself (if the platform supports hidden fields), map the gclid URL parameter to a hidden field that gets submitted with the form data
  4. When the lead hits your CRM, the gclid is stored against the contact record
  5. Use the Google Ads Offline Conversion Import feature to upload these conversions back to Google with their original gclid values

This is the approach we implement most frequently at Workflow AI Advisors for clients using tools like Typeform, Calendly, and HubSpot's standalone form pages. It requires a CRM integration step, but it produces highly accurate conversion data and works particularly well when paired with our AI automation workflows that handle the offline import automatically on a scheduled basis.

Option C — Redirect Through Your Own Domain

If the above options aren't feasible, consider hosting a lightweight redirect page on your own domain that captures the gclid, fires the Google Ads conversion tag, and then forwards the user to the third-party form. This is architecturally messy and introduces friction points, so treat it as a last resort — but it works in situations where you have zero control over the destination.

Step 3 — Set Up Offline Conversion Imports Properly

If you're going the URL parameter route (Option B), the offline conversion import setup in Google Ads is non-negotiable. Here's the correct process:

  1. In Google Ads, navigate to Tools → Conversions → New Conversion Action → Import
  2. Select "CRMs, files, or other data sources" and choose your import method (file upload, Zapier, direct API)
  3. Map your conversion action to the appropriate goal (e.g., "Lead Form Submitted")
  4. Set the conversion window to match your sales cycle — don't leave it at the default 30 days if your leads typically close over 60-90 days
  5. Upload a test batch of historical data with known gclid values to verify the match rate before relying on it for live bidding

A match rate below 70% usually indicates one of three issues: gclid values are being dropped before reaching the CRM, the upload is happening more than 90 days after the original click (the gclid expires), or the conversion timestamp format is incorrect. Fix the root cause before scaling this setup.

Step 4 — Validate with Tag Assistant and GTM Preview

Never assume your tracking is working — verify it end to end. Use these tools:

  • Google Tag Assistant (browser extension): Walk through the user journey manually. Confirm the Conversion Linker tag fires on the linking page and that the destination domain's tag is reading the _gl parameter correctly.
  • GTM Preview Mode: Trigger the form submission flow while in preview mode. Confirm the conversion event fires with the correct gclid or transaction ID attached.
  • Google Ads Tag Diagnostics: Under Tools → Google Tag → Diagnostics, check for "Unverified" or "Inactive" status on your conversion actions.
  • Real-time data in GA4: If GA4 is your source of truth for the conversion event, check real-time reports immediately after a test submission to confirm the event appears with the correct session source.

Common Mistakes That Silently Break Cross-Domain Tracking

Even when the setup looks correct on paper, small configuration errors cause ongoing data loss. These are the ones we catch most frequently during our paid media audits:

  • Consent Mode blocking the gclid: If you've implemented Google Consent Mode and users decline analytics cookies, the gclid may not be written. Ensure you're using Consent Mode v2 correctly and that the Conversion Linker is configured to work in a consent-pending state where legally permissible.
  • Safari ITP stripping URL parameters: Safari's Intelligent Tracking Prevention can strip query parameters from cross-site navigations. If a significant portion of your audience is on Safari/iOS, this directly reduces your gclid capture rate. Server-side tagging is the long-term solution here.
  • Redirect chains eating the gclid: If your landing page URL goes through a redirect before reaching its final destination, the gclid parameter may be dropped. Audit your URL structure and ensure final URLs in Google Ads point directly to the landing page with no intermediary redirects.
  • Duplicate conversion actions: Having both a website tag-based conversion and an imported offline conversion for the same action causes double-counting, which inflates conversion data and confuses Smart Bidding. Consolidate to one source of truth per conversion type.
  • Wrong attribution model on imported conversions: Offline conversions default to last-click. If your other conversion actions use data-driven attribution, the inconsistency skews your reporting. Align attribution models across all conversion actions.

The Smart Bidding Impact You're Probably Underestimating

Google's Smart Bidding strategies — Target CPA, Target ROAS, Maximise Conversions — are only as good as the conversion data they're trained on. When cross-domain tracking is broken, you're feeding the algorithm a distorted signal.

In practice, this means Smart Bidding over-bids on users who never actually convert (because it lacks the negative signal) and under-bids on the high-intent segments that do. We've seen accounts where fixing cross-domain tracking alone — without changing a single bid strategy, ad, or keyword — produced a 25-35% improvement in CPA within 30 days, simply because the algorithm finally had accurate data to work with.

This is why, at Workflow AI Advisors, we treat conversion tracking as foundational infrastructure — not an afterthought. Across the accounts we manage, we've achieved an average of 4.2x ROAS and a 31% reduction in CPA, and accurate cross-domain tracking is a prerequisite for both of those outcomes.

When to Consider Server-Side Tagging

If you're operating at scale — significant monthly ad spend, multiple third-party integrations, or audiences heavily skewed toward Safari/iOS — browser-side tagging has inherent limitations that server-side tagging resolves. A server-side GTM setup moves tag execution from the user's browser to a cloud server you control, bypassing browser-based privacy restrictions and ad blockers entirely.

Server-side tagging is a more significant infrastructure investment, but for high-spend accounts it pays for itself quickly in recovered attribution data. Our SEO and technical infrastructure team frequently collaborates with the paid media team on these implementations for clients where the data loss from browser-side limitations is materially affecting campaign performance.

Frequently Asked Questions About Google Ads Cross-Domain Conversion Tracking

What is cross-domain conversion tracking in Google Ads?

Cross-domain conversion tracking is the process of accurately attributing a Google Ads click to a conversion that happens on a different domain from the one the user originally landed on. When a user clicks an ad, lands on your website, and then completes a form on a third-party domain (such as Typeform, Calendly, or HubSpot), the conversion data must be passed across the domain boundary for Google Ads to correctly credit the original click.

Why is the gclid parameter important for cross-domain tracking?

The gclid (Google Click Identifier) is the unique parameter Google appends to ad click URLs to identify which campaign, ad group, keyword, and ad generated the click. For a conversion to be attributed in Google Ads, the gclid from the original click must be present when the conversion event fires. In cross-domain scenarios, the gclid cookie set on your domain is not accessible on third-party domains, which is why special configuration is required to pass it across the domain boundary.

Does fixing cross-domain tracking improve Smart Bidding performance?

Yes, significantly. Smart Bidding strategies like Target CPA and Target ROAS are trained on your conversion data. When cross-domain tracking is broken, the algorithm receives an incomplete and distorted signal — it sees clicks that converted as non-converting, and vice versa. Fixing conversion tracking gives Smart Bidding accurate data to optimise against, which typically produces measurable CPA and ROAS improvements within 2-4 weeks of the fix going live as the algorithm re-calibrates.

Can I fix cross-domain tracking for Typeform or Calendly without GTM access to their domain?

RELATED READING