GoHighLevel Google Analytics 4 Integration – GoHighLevel and Google Analytics 4 work together, but not in the way most people expect. GoHighLevel has native analytics built in — funnel views, form submissions, appointment bookings, email open rates, and workflow execution data. This is useful for seeing what’s happening inside GHL. GA4, properly connected, tells you where those visitors came from, which campaigns drove which conversions, and how your GHL funnel pages perform within your wider digital footprint.
The two systems do different things. The risk is assuming GA4 is connected and working when it isn’t — or assuming GoHighLevel’s native analytics gives you the campaign attribution data you actually need for ad spend decisions.
This guide covers what GoHighLevel tracks natively, how to connect GA4 correctly, what tracking requires Google Tag Manager rather than the native integration, and the specific setup steps that make the difference between useful attribution data and a GA4 property full of direct traffic.
What GoHighLevel Tracks Without GA4
GoHighLevel’s internal analytics, available in every sub-account’s Reports section, tracks:
- Funnel and website page views (within GHL-hosted pages only)
- Form submission rates
- Appointment bookings and show rates
- Email and SMS open and click rates
- Workflow execution counts and conversion rates
- Pipeline stage movement
- Revenue from GHL payment products
This data lives entirely within GoHighLevel. It tells you what happened — how many people saw your funnel, how many submitted the form, and how many booked a call. It doesn’t tell you where those people came from, which ad set drove the form submission, or how GHL funnel performance compares with traffic from your main website.
GA4 fills that gap. It tells you the story before the form submission — the channel, the campaign, the specific ad or keyword — which is the data you need to make sensible decisions about where to spend your marketing budget.
Option 1: Native GA4 Connection (What It Does and Doesn’t Cover)
GoHighLevel has a native Google Analytics integration at the funnel and website level.
In GoHighLevel: Funnels/Websites → the funnel or site → Settings → Tracking Code
Paste your GA4 Measurement ID (format: G-XXXXXXXXXX, found in your GA4 property under Admin → Data Streams → your web stream) into the tracking code field. GoHighLevel fires the GA4 base tag on every page of that funnel or website.

[SCREENSHOT: GoHighLevel Funnel Settings → Tracking Code field showing GA4 Measurement ID entry]
With the base tag in place, GA4 automatically tracks: page views, session data, basic engagement metrics, and traffic source attribution (organic, paid, referral, direct). This is the minimum viable GA4 setup.
What the native connection doesn’t handle automatically:
- Form submission events (GA4 sees the page view but not the form conversion)
- Appointment booking completions as conversion events
- Payment completions as conversion events
- Cross-domain tracking if you’re sending traffic from your main website to a GHL funnel on a different domain
For conversion tracking beyond page views, you need Google Tag Manager.
Option 2: Google Tag Manager (Recommended for Accurate Conversion Data)
Google Tag Manager gives you precise control over what gets sent to GA4 and when. For any business that runs paid ads and uses GoHighLevel funnels, GTM is worth the additional setup time.
Step 1: Create a GTM container
If you don’t already have one, go to tagmanager.google.com, create an account, and create a new container for your web property. You’ll get a GTM container ID (format: GTM-XXXXXXX) and a code snippet.
Step 2: Install GTM on your GHL pages

In GoHighLevel, go to Funnels/Websites → the funnel → Settings → Tracking Code. Paste the GTM container snippet (the two parts — one in the head, one in the body). Remove any existing GA4 Measurement ID if you’re deploying GA4 through GTM instead.
Step 3: Configure GA4 through GTM
In GTM, create a Google Tag using your GA4 Measurement ID. Set the trigger to All Pages. This replaces the native GA4 connection and provides the same core tracking via GTM.
Step 4: Track form submissions as conversion events
In GTM, create a new tag with event name generate_lead (GA4’s recommended event for lead form submissions). Set the trigger to Form Submission — configure the form ID or CSS selector that matches your GHL forms. This fires a GA4 event every time someone submits a lead form, which you can then mark as a conversion in GA4 under Admin → Events → Mark as Conversion.
Step 5: Track thank-you page views as conversions
An alternative to form submission tracking — often more reliable — is tracking the thank-you page view as the conversion. Create a GA4 Page View event tag that fires only on the URL of your thank-you page (use a Page URL trigger matching /thank-you or the specific slug). Mark this event as a conversion in GA4. Every thank-you page load represents a completed form submission or booking.
Cross-Domain Tracking: The Hidden Attribution Problem
If your main website is on one domain (automatetogrow.com) and your GoHighLevel funnel is on a subdomain or a different GHL-hosted domain, GA4 treats these as separate sessions. A prospect who visits your blog, clicks a button, lands on your GHL funnel, and submits the form is counted as two sessions — the blog visit is attributed to organic search, and the funnel submission is attributed to direct traffic.

This is misleading. The form submission should be attributed to organic search, because that’s what started the journey.
Fix: Configure cross-domain measurement in GA4. In GA4 → Admin → Data Streams → your stream → Configure tag settings → Configure your domains. Add both your main website domain and your GHL funnel domain. GA4 will carry the original traffic source across the domain boundary via URL parameters, correctly attributing the conversion to the original channel.
This is one of the highest-value GA4 configurations for businesses that blog or run informational content alongside GHL funnels.
What to Verify After Setup
After implementing GA4 (native or GTM), verify these before treating the data as reliable:
Real-time report: In GA4, go to Reports → Real-time. Open your GHL funnel page in a browser. Within thirty seconds, a page view should appear in the real-time report. If it doesn’t, the GA4 tag isn’t firing.
Form submission events: Submit a test form on your GHL page. The generate_lead event (or your thank-you page view) should appear in GA4’s real-time events within a minute.
Traffic source attribution: Check GA4 → Reports → Acquisition → Traffic Acquisition. Sessions should appear with sources other than Direct (unless all your current traffic is genuinely direct). If everything shows as Direct, the base tag is firing but UTM parameters aren’t being passed — check your ad links include UTM parameters and that cross-domain tracking is configured if applicable.
GoHighLevel’s Native Analytics vs GA4: Which to Trust for What
| Data Question | Use GoHighLevel | Use GA4 |
| How many form submissions this week? | ✓ | |
| Which ad campaign drove form submissions? | ✓ | |
| What’s my funnel page conversion rate? | ✓ | |
| Where is traffic dropping off in my funnel? | ✓ | |
| Which email sequence drove the most bookings? | ✓ | |
| What’s my organic vs paid traffic split? | ✓ |
The operational picture lives in GoHighLevel. The marketing attribution picture lives in GA4. Both are necessary — and they answer different questions.
Frequently Asked Questions
How do I add Google Analytics to GoHighLevel? For basic tracking: In GoHighLevel, open the funnel or website → Settings → Tracking Code. Paste your GA4 Measurement ID (G-XXXXXXXXXX). For conversion tracking, use Google Tag Manager: paste the GTM container code in the tracking code field, then configure GA4 and conversion events in GTM.
Does GoHighLevel track funnel conversions in GA4? Page views track automatically via the native integration. Form submission events, booking completions, and payment completions require additional configuration through Google Tag Manager — they don’t fire automatically from the native GA4 connection.
Can I use Google Tag Manager with GoHighLevel? Yes. Paste the GTM container code in GoHighLevel’s tracking code field in the funnel or website settings. GTM then manages all tags, including GA4, on those pages.
What does GoHighLevel track natively without GA4? GoHighLevel’s built-in reports track page views (GHL-hosted pages only), form submissions, appointment bookings, show rates, email and SMS performance, workflow execution, pipeline movement, and revenue from GHL payment products. It doesn’t provide traffic source attribution or campaign-level data — that’s GA4’s role.
How do I track form submissions as GA4 conversion events? In Google Tag Manager, create a GA4 Event tag with the event name generate_lead. Set the trigger to fire on form submission using the form’s CSS selector or ID. In GA4, mark the generate_lead event as a conversion under Admin → Events. Alternatively, track the thank-you page URL as a conversion — this is often more reliable.
Why is my GoHighLevel traffic not showing in Google Analytics? Most common causes: the GA4 tag isn’t installed on that specific funnel or page (each GHL funnel needs the tag added separately in its settings), ad blockers are preventing the GA4 tag from firing for some visitors, or cross-domain tracking isn’t configured and traffic is incorrectly attributed to Direct instead of the actual source. GoHighLevel Google Analytics 4 Integration is really effective if you as spending money on ads.
Want your GoHighLevel funnels tracked correctly from day one?
to discuss your implementation.

