Cometly
Conversion Tracking

Cross Domain Conversion Tracking: A Step-by-Step Setup Guide

Cross Domain Conversion Tracking: A Step-by-Step Setup Guide

When a user clicks your ad, browses your main website, and then completes a purchase on a separate checkout domain, most tracking setups lose the thread entirely. The result is misattributed conversions, inflated bounce rates, and ad platforms that optimize against incomplete data.

This is the core problem cross domain conversion tracking solves.

For marketers running paid campaigns across multiple platforms, this broken data chain is not just an inconvenience. It directly impacts how ad algorithms allocate budget, how attribution models assign credit, and ultimately how confident you can be in your marketing decisions. Cross domain tracking ensures that a single user journey spanning multiple domains is recorded as one continuous session, not two separate anonymous visits.

Think of it like this: imagine following a customer through a shopping mall, but every time they walk through a new door, your clipboard resets and you lose all memory of who they are. That is exactly what happens when your tracking setup is not configured for cross domain measurement. The checkout domain sees a brand new visitor with no campaign history, no source, and no click ID. Your ad platform has no idea that the sale it just generated came from the campaign you have been scaling all month.

This guide walks you through the exact steps to set up cross domain conversion tracking correctly, from auditing your current setup to verifying that conversions are being attributed to the right touchpoints. Whether you are running traffic from Meta, Google, or other ad channels through a funnel that spans a marketing site, a landing page subdomain, and a third-party checkout tool, these steps apply directly to your situation.

You will also learn how a platform like Cometly, with server-side tracking and multi-touch attribution, can fill the gaps that client-side setups leave behind. This matters especially in a world where browser restrictions and ad blockers routinely break traditional tracking methods.

By the end of this guide, you will have a working cross domain tracking setup that feeds accurate conversion data back to your ad platforms and gives you a complete view of every customer journey.

Step 1: Audit Your Current Domain and Tracking Structure

Before you configure anything, you need a clear picture of what you are working with. Skipping this step is one of the most common reasons cross domain tracking setups fail. You end up fixing the wrong problem or missing a domain entirely, and the data gaps persist.

Start by listing every domain and subdomain involved in your conversion funnel. This includes your main marketing site, any landing page domains or subdomains, your checkout platform, and your post-purchase thank-you or confirmation pages. If your funnel touches a third-party tool like Shopify, ThriveCart, or a SaaS checkout system, those domains belong on your list too.

Why this distinction matters: Subdomains (like checkout.yourdomain.com) often require different configuration than fully separate domains (like checkout-partner.com). Analytics platforms handle them differently by default, and confusing the two early on leads to misconfigured settings that are hard to diagnose later. Identify which of your domains are true separate domains versus subdomains of your primary property before you touch any settings.

Next, identify where your tracking tags currently fire and where they drop off. Open your tag manager or analytics debugger and walk through your funnel manually. Note which pages have your analytics tag, which have your ad pixels, and which have neither. Pay particular attention to the transition points between domains. This is where most tracking setups break silently.

Check whether your analytics platform currently treats cross-domain visits as a single session or as two separate sessions. In GA4, you can test this by navigating from your marketing site to your checkout domain and checking whether the session ID changes. If it does, your cross-domain configuration is not yet in place.

Document which ad platforms you are sending conversion data to and what events they currently receive. Are you sending purchase events to Meta? Are Google Ads campaigns receiving conversion data from your checkout page? Are there gaps where certain platforms receive no post-click data at all? This inventory will guide every step that follows.

Common pitfall: Many teams discover during this audit that their thank-you page is hosted on a subdomain of their checkout provider, not their own domain. This means you may need to negotiate tag access or use a server-side approach to capture that conversion event reliably.

Success indicator: You have a complete map of every URL a user touches from ad click to conversion, with notes on which domains are first-party, which are third-party, and where your current tracking coverage has gaps.

Step 2: Configure Your Analytics Platform for Cross Domain Measurement

With your domain map in hand, the next step is configuring your analytics platform to treat all of those domains as part of a single, unified user journey. For most teams, this means working inside GA4.

In GA4, navigate to Admin, then select your Data Stream, and look for Configure tag settings. Inside that menu, you will find an option to Configure your domains. Add every domain and subdomain that is part of your funnel here. GA4 uses this list to determine when a user is crossing between your own properties versus arriving from an external referral source.

When a user moves between your listed domains, GA4 automatically appends a linker parameter to the URL. This parameter carries the session identifier from one domain to the next, allowing GA4 to stitch the two visits into a single session. Without this, the checkout domain would see the user as a new visitor arriving from a referral source, which is your own marketing site, and start a fresh session with no campaign context.

Referral exclusions are equally important. Even with cross-domain measurement configured, you need to ensure your own domains are excluded from the referral traffic source list. If your checkout domain is not excluded, GA4 may still attribute sessions to a referral from your marketing site rather than the original ad click. Add all of your owned domains to the referral exclusion list under your tag configuration settings.

For teams using a non-GA4 analytics setup or a custom tag manager configuration, the principle is the same. You need to pass a client ID or session identifier as a URL parameter whenever a user navigates to a different domain. Your tag manager should be configured to read that parameter on the receiving domain and use it to continue the existing session rather than creating a new one.

If you are using Google Tag Manager, the cross-domain linker can be enabled directly within your GA4 configuration tag settings. Enable the linker, specify your domains, and GTM will handle the parameter appending automatically on outbound links to your listed domains.

Common pitfall: Forgetting to add the checkout domain to both the cross-domain measurement list and the referral exclusion list is one of the most frequent mistakes. Teams often add it to one but not the other, and the session still breaks at the domain boundary.

Success indicator: When you walk through your funnel as a test user and check the real-time report in GA4, the entire journey from your marketing site through checkout appears as a single session. No unexplained referral source breaks appear between domain transitions.

Step 3: Pass UTM Parameters and Click IDs Across Domain Boundaries

Fixing session continuity in your analytics platform is only part of the equation. Your ad platforms need their own identifiers to survive the journey from ad click to conversion. This is where UTM parameters and click IDs come in, and where many cross domain setups fall apart even after analytics is configured correctly.

When someone clicks a Google Ads campaign, a GCLID (Google Click ID) is appended to the landing page URL. This parameter is what allows Google Ads to connect a conversion event back to the specific campaign, ad group, and keyword that drove the click. If that GCLID is stripped when the user moves from your marketing site to your checkout domain, Google Ads cannot attribute the conversion. The campaign gets no credit, and the algorithm has no signal to optimize against.

The same principle applies to Meta campaigns. The FBCLID parameter must persist through your funnel for the Meta pixel to attribute conversions correctly. If it disappears at a domain boundary, Meta loses the ability to connect that purchase to the ad that drove it.

To preserve these parameters across domain transitions, you have a few options. The most reliable approach is to configure your tag manager to automatically append UTM parameters and click IDs to outbound links pointing to your other domains. When a user navigates from your marketing site to your checkout domain, the tag manager rewrites the outbound link to include all relevant parameters from the current page URL.

You can also use URL builders to construct links between your domains with parameters pre-built in. This works well for static links but becomes unwieldy if your funnel has dynamic navigation or many transition points.

Redirect chains deserve special attention. If your funnel includes any redirects between domains, such as a tracking redirect or an affiliate link, those redirects will often strip query parameters entirely. Test each redirect step individually by clicking through the chain and inspecting the final URL. If parameters are disappearing at any point, you will need to configure the redirect to preserve them or move the tracking to a server-side approach.

Common pitfall: Teams often test their funnel by navigating directly to URLs rather than clicking through from an actual ad. Direct navigation does not append click IDs, so the test appears to work when in reality the parameters are never present in a real user scenario. Always test using real ad click links or a URL that includes a simulated GCLID and FBCLID.

Success indicator: After clicking through your funnel from a real ad link, you can inspect the URL on your checkout domain and see the original UTM parameters and click IDs still present. Network request inspection tools or browser developer tools can confirm these values are being passed correctly.

Step 4: Implement Server-Side Tracking to Capture What Browsers Miss

Even with analytics and parameter passing configured correctly, client-side tracking has a fundamental vulnerability. It depends entirely on the user's browser to execute your tags, load your pixels, and write cookies. In practice, a growing portion of your audience is browsing in environments where this does not work reliably.

Safari's Intelligent Tracking Prevention (ITP) limits how long third-party cookies persist, often to as little as one day. iOS privacy changes have made it harder for ad pixels to track users across sessions. Ad blockers prevent tracking scripts from loading entirely. The result is a persistent gap between what actually happened in your funnel and what your client-side tracking reports.

Server-side tracking addresses this by moving the conversion signal off the browser and onto your server. Instead of relying on a browser tag to fire when a user reaches your thank-you page, a server-side event fires directly from your infrastructure to the ad platform's API. The browser's behavior, its cookie settings, its ad blocker status, becomes irrelevant.

To implement server-side tracking, you need a server-side event endpoint that fires when a confirmed conversion occurs. This endpoint collects the relevant conversion data, including the transaction value, the event type, and any user identifiers available, and sends it directly to Meta's Conversions API or Google's Enhanced Conversions API.

The key to making server-side events useful for attribution is matching them to the original ad click. This is done by including the click ID (GCLID or FBCLID) that was captured when the user first arrived from the ad, alongside hashed user data such as email address or phone number. The ad platform uses these identifiers to connect the server-side conversion event to the original click.

Platforms like Cometly use server-side tracking combined with first-party data to maintain conversion accuracy across domains even when cookies are blocked. Because Cometly captures the click ID and user identifiers early in the session and stores them server-side, it can reliably attribute conversions even when the browser has discarded its cookies by the time the purchase happens.

Common pitfall: Running both client-side and server-side tracking simultaneously without deduplication logic will inflate your conversion counts. If a browser tag fires on your thank-you page and your server also sends an event for the same transaction, the ad platform may count it twice. Use the event ID field in both your client-side and server-side events to allow the platform to deduplicate them correctly.

Success indicator: Your server-side events appear in your ad platform's event manager with high event match quality scores. High match quality indicates that the platform is successfully connecting your server-side events to real user profiles and ad clicks.

Step 5: Set Up Conversion Events on Your Final Destination Domain

All of the tracking infrastructure you have built so far is only as valuable as the conversion event it feeds. Getting this final piece right is what transforms your setup from a data collection exercise into a genuine attribution signal.

Your primary conversion tag or event should fire on the thank-you page or confirmation screen that loads exclusively after a successful transaction. This sounds obvious, but it is frequently misconfigured. If your confirmation page loads for both successful and failed transactions, or if the same URL is reachable without completing a purchase, your conversion count will be inaccurate and your ad platforms will optimize against noise.

The conversion event must fire with the full context of the original session. This means including the source, medium, campaign name, and click ID values that were captured when the user first arrived from the ad. If your server-side setup has stored these values, pass them into the conversion event payload. If you are relying on client-side tags, verify that the parameters are still present in the URL or stored in a first-party cookie that survives the cross-domain journey.

For purchase conversions, configure value tracking to pass the actual transaction amount dynamically. Using a static placeholder value, such as always reporting a conversion value of 1.00, removes the ability to optimize campaigns toward higher-value customers. Your ad platform's bidding algorithms perform significantly better when they receive real revenue data for each conversion.

For multi-step funnels, consider tracking micro-conversions at each domain transition. If users move from a marketing site to a landing page to a checkout to a confirmation page, each of those transitions is an opportunity to understand where drop-off occurs. Tracking these intermediate events gives you the data to diagnose funnel leaks and prioritize where to focus optimization efforts.

Common pitfall: A common mistake is placing the conversion tag on a page that is accessible without completing a purchase, such as a generic order page rather than a specific confirmation URL. Always verify that the page your conversion tag fires on is only reachable after a successful transaction.

Success indicator: Each test purchase registers exactly one conversion event in your ad platform with the correct campaign attribution and the accurate transaction value. If you see duplicate events or events with no campaign attribution, revisit your deduplication logic and parameter passing configuration.

Step 6: Sync Conversion Data Back to Your Ad Platforms

Capturing accurate conversion data is step one. Making that data useful to your ad platforms is what actually moves the needle on campaign performance. This is where conversion sync comes in.

Ad platform algorithms, including Meta's advantage+ targeting and Google's Smart Bidding, rely on conversion signals to learn which users are most likely to convert and how to allocate budget efficiently. The quality of those signals directly determines how well the algorithm performs. When your conversion data is incomplete or misattributed, the algorithm is learning from a distorted picture, and campaign performance reflects that.

Once your cross domain tracking is capturing accurate conversions, feed that enriched data back to your ad platforms using their conversion APIs. Meta's Conversions API (CAPI) and Google's Enhanced Conversions both accept server-side event data and use it to supplement or replace the signals that browser-based pixels would have provided.

The more context you can include in these events, the better. Beyond the basic conversion event type and value, include hashed customer data such as email addresses, phone numbers, and names when available. These customer match signals allow the platform to connect your conversion events to user profiles with higher confidence, improving match rates and attribution accuracy on the platform side.

Cometly's Conversion Sync feature automates this process. Rather than building and maintaining custom API integrations with each ad platform, Cometly handles the event formatting, the hashing of customer data, and the API calls to Meta CAPI and Google Ads automatically. This means your enriched, cross-domain conversion data is flowing back to your ad platforms without manual engineering work every time a platform updates its API.

Do not limit your sync to click-based conversions only. Including view-through attribution data and offline conversion events where available gives the algorithm a more complete picture of how your campaigns contribute to revenue. Sending only a fraction of your conversion signals leaves the algorithm working with partial information.

Common pitfall: Teams often set up conversion sync and then never audit what is actually being sent. Check your ad platform's event manager regularly to confirm that events are arriving, that match rates are healthy, and that the conversion values being reported align with your actual revenue data.

Success indicator: Your ad platform reports show improved event match quality scores and higher match rates for conversion events. Over time, campaigns that previously struggled to exit the learning phase begin optimizing more efficiently as the algorithm receives consistent, high-quality conversion signals.

Step 7: Validate Your Setup and Monitor Attribution Accuracy

A cross domain tracking setup that has never been properly tested is a setup you cannot trust. Validation is not a one-time task at launch. It is an ongoing practice that protects the integrity of your attribution data every time your funnel changes.

Start with end-to-end test conversions that simulate the full user journey. This means clicking through from an actual ad link, not navigating directly to your landing page URL. The distinction matters because direct navigation does not generate a GCLID or FBCLID, so your test will not reveal whether click ID passing is working correctly. Use real ad links or construct test URLs that include the relevant click ID parameters.

Walk through every domain transition in your funnel and verify at each step that your session identifier, UTM parameters, and click IDs are still present. After completing a test purchase, check your analytics platform, your ad platform's event manager, and your CRM to see whether the conversion was recorded in all three places with consistent attribution.

Discrepancies between these systems are normal to a degree. Some variance exists because of how different platforms count conversions and attribute them to time windows. However, large discrepancies, such as your CRM recording twice as many purchases as your ad platform, signal a tracking problem that needs investigation.

Cometly's attribution dashboard gives you a unified view of the full customer journey across all touchpoints. Rather than toggling between GA4, your Meta Ads Manager, and your CRM to reconcile data, you can see how cross-domain sessions are being stitched together and whether the channel that drove the initial ad click is receiving proper credit for downstream conversions. This multi-touch attribution view is particularly valuable for understanding how different channels contribute across a complex funnel.

Set up monitoring alerts for sudden drops in conversion volume. A sharp decline in reported conversions often signals a tracking break caused by a domain configuration change, a tag manager update, or a checkout platform update that altered the URL structure of your confirmation page. Catching these breaks early prevents extended periods of data loss that corrupt your campaign optimization.

Review your multi-touch attribution data regularly to understand whether your attribution model is reflecting reality. If your last-click model is giving all credit to retargeting campaigns while ignoring the prospecting campaigns that introduced users to your brand, you may be making budget decisions based on an incomplete picture of how your funnel actually works.

Success indicator: Conversion data is consistent across your analytics platform, ad platforms, and CRM within an acceptable variance range. Your attribution reports show complete customer journeys rather than fragmented sessions, and you have confidence that budget decisions are being made on accurate data.

Putting It All Together

Cross domain conversion tracking is one of the most impactful technical setups a marketing team can get right. When done correctly, it gives you a complete, accurate picture of how users move from ad click to conversion across every domain in your funnel. That accuracy directly improves how your ad platforms optimize, how confidently you can scale campaigns, and how clearly you can attribute revenue to the right channels.

Here is a quick checklist to confirm your setup is complete:

Domain structure mapped: Every URL a user touches from ad click to conversion is documented, with subdomains and third-party domains clearly identified.

Analytics configured: Cross-domain measurement is active in GA4 with all relevant domains listed, and referral exclusions are in place so your own domains do not trigger false referral sessions.

Parameters preserved: UTM parameters and click IDs (GCLID, FBCLID) survive every domain transition and redirect in your funnel.

Server-side tracking active: Server-side events are firing with deduplication logic in place, and event match quality scores in your ad platforms are strong.

Conversion events accurate: Your primary conversion tag fires only on confirmed conversion pages, with dynamic value tracking and full campaign context included.

Conversion sync running: Enriched conversion data is flowing back to Meta CAPI and Google Ads automatically, including hashed customer match data.

Validation complete: End-to-end test conversions confirm consistent attribution across your analytics platform, ad platforms, and CRM.

If you want to simplify this entire process and get a platform that handles server-side tracking, multi-touch attribution, and conversion sync in one place, Cometly is built for exactly this. You can start tracking every touchpoint across every domain and give your ad platforms the accurate data they need to perform.

Get your free demo today and start capturing every touchpoint to maximize your conversions.

See Cometly in action

Get clear, accurate attribution — and make smarter decisions that drive growth.

Get a live walkthrough of how Cometly helps marketing teams track every touchpoint, attribute revenue accurately, and scale their best-performing campaigns.