Loading tutorials…
Loading tutorials…
Squarespace has a 'Google Analytics' field that accepts a Measurement ID. The problem: it doesn't fire enhanced ecommerce or custom events by default. Here's the install that actually gives you usable data.
Who this is forSquarespace site owners moving from Universal Analytics to GA4, or installing analytics for the first time on a new site. Especially relevant if you run paid ads and need conversion data.
What you'll need
Step 1
Google Analytics → Admin → Create Property → set up GA4 from scratch. Skip Universal Analytics — it's sunset.
Go to analytics.google.com. Click Admin (gear icon) → Create Property.
Property name: your brand name. Reporting timezone: your business timezone. Currency: your primary currency.
Industry category and business size: pick the closest options. Affects benchmark reports later.
Business objectives: select 'Generate leads' and 'Examine user behavior.' This affects which reports are pre-built.
Create the property → set up a Web data stream → enter your domain (https://yoursite.com) → name the stream ('Web — Production').
Squarespace will need the Measurement ID, which looks like 'G-XXXXXXXXXX.' Copy it.
Step 2
Marketing → Analytics → Google Analytics → paste the G- Measurement ID. Easiest path; covers basic pageviews.
Squarespace Admin → Marketing → Analytics → Google Analytics.
Paste your G-XXXXXXXXXX Measurement ID. Save.
Wait 5-10 minutes. Then visit your site in incognito and click around 4-5 pages.
In GA4 → Reports → Realtime. You should see at least one active user with the page paths you visited.
If you see Realtime data: native install is working. If not: clear your browser cache, disable any ad blockers, and try again. If still nothing: move to Step 3 (Tag Manager).
Note: native GA tracks pageviews, scroll depth, outbound clicks, and basic engagement. It does NOT track ecommerce events, form submissions, or custom events.
Step 3
If you need custom events, ecommerce tracking, or multiple pixels (Meta, TikTok, Klaviyo), use GTM instead of native field. More flexible, slightly more setup.
Create a GTM container at tagmanager.google.com. Copy the GTM-XXXXXXX container ID + the two snippets (head + body).
Squarespace Admin → Settings → Advanced → Code Injection. Paste the GTM head snippet into the 'Header' field and the GTM body snippet into the 'Footer' field. Save.
Important: REMOVE the GA4 Measurement ID from Marketing → Analytics → Google Analytics. Otherwise you'll have duplicate pageview tracking (GA via native AND GA via GTM).
In GTM, add a GA4 Configuration tag: New Tag → Google Analytics → GA4 Configuration → paste your G-XXXXXXXXXX. Trigger: All Pages. Save.
Preview in GTM (the Preview button) → opens a debug window in your browser → click around your site → confirm the GA4 Configuration tag fires on every pageview.
Publish the container (GTM → Submit). Live within 1-2 minutes.
Step 4
Squarespace's native GA does NOT push ecommerce events. You need GTM + custom event listeners, or a third-party connector.
If you have a Squarespace store, you need: add_to_cart, begin_checkout, purchase, and view_item events firing into GA4.
Squarespace's storefront does NOT push these to dataLayer natively. Workaround: install a Squarespace-to-GTM connector (e.g., 'Squarespace Ecommerce Tracking for GTM' on Code Garden).
Or: write custom GTM event listeners. Inspect Squarespace's checkout HTML, identify the right CSS selectors for cart-add buttons and order-confirmation pages, build GTM triggers that fire on those.
Custom event listener for purchase: trigger on Page View → Page Path contains '/checkout/thank-you' → fire GA4 Purchase event with transaction details parsed from page DOM.
Validate in GA4 → Reports → Realtime → Events. Each ecommerce event should fire with the correct parameters (currency, value, items).
If you're not comfortable writing custom triggers, hire a specialist or use a paid connector. Don't ship ecommerce tracking that's silently broken.
Step 5
GA4 → Configure → Events → Mark as conversion. Tag the events that matter (purchase, form submission, key page view) as conversions.
GA4 → Configure (left nav, gear icon at the bottom) → Events.
Find each event you want to track as a conversion: 'purchase,' 'generate_lead' (form submission), 'sign_up,' or a custom event you created.
Toggle 'Mark as conversion' next to each. They now appear in GA4 → Reports → Conversions and feed into Google Ads + Meta if linked.
For lead-gen sites: 'form_submit' (if you set up form tracking via GTM) and 'phone_call' (click-to-call) are typical conversions.
For commerce: 'purchase' is the primary conversion. Optionally tag 'begin_checkout' and 'add_to_cart' to track funnel drop-off.
Don't tag too many events as conversions — 3-5 max. Otherwise reporting becomes noisy.
Step 6
GA4 → Admin → Google Ads Linking → link your Ads account. Conversions then feed bidding strategies.
GA4 Admin → Property column → Google Ads Linking → 'Link.'
Select your Google Ads account (must use the same Google login or have shared access). Confirm.
In Google Ads → Tools → Conversions → 'Import from Analytics' → select the GA4 conversion events.
Important: pick ONE source of truth. If your purchase conversion fires from both GA4 (imported) AND a Google Ads tag, you'll double-count. Disable one.
Enable Enhanced Conversions: Google Ads → Conversions → click the purchase conversion → Enhanced Conversions → ON. This sends hashed customer email to Google, improving attribution by 15-30%.
Wait 7-14 days. Smart Bidding strategies (Target ROAS, Maximize Conversions) need 30+ conversions to work — let data accumulate before changing bid strategy.
Step 7
Run a real test on the live site. Verify every event you care about fires correctly. Don't trust 'Realtime' alone — use DebugView for full event inspection.
Install the GA Debugger Chrome extension. Open your site, click around 4-5 pages.
Open GA4 → Configure → DebugView. You should see your session with full event payloads — pageview, scroll, click events, and any custom events.
If you have ecommerce: run a real test purchase in incognito. Verify 'purchase' event fires with correct transaction ID, value, currency, and items array.
Verify in 24h via GA4 → Reports → Realtime (real-time data) AND Reports → Engagement → Events (24h aggregated). Cross-check both show the same events.
Cross-check with Google Ads conversions in 24-48h — your test purchase should appear in Ads as a conversion.
Common mistakes
Using both native GA field AND GTM (duplicate tracking)
What goes wrong: Every pageview fires twice — once from Squarespace's native install and once from GTM. Sessions are inflated by 50-80%. Bounce rate looks artificially low. Conversion rate looks artificially low. Decisions based on this data are wrong.
How to avoid: Pick ONE method. If using GTM, REMOVE the GA Measurement ID from Marketing → Analytics → Google Analytics. If using native, don't install GTM's GA4 Configuration tag.
Expecting ecommerce events without GTM
What goes wrong: Native Squarespace GA install tracks pageviews only. Add_to_cart, purchase, and checkout events don't fire. You see traffic but no revenue data in GA4. Smart Bidding has nothing to optimize against.
How to avoid: For ecommerce, use GTM with custom event triggers, or a paid Squarespace-to-GA4 connector. Validate purchase event fires on a real test order.
Not marking key events as conversions
What goes wrong: Events fire but aren't 'conversions' in GA4's eyes. They don't show up in the Conversions report and don't import into Google Ads. Bidding strategies see zero conversions and underspend or pause.
How to avoid: GA4 → Configure → Events → toggle "Mark as conversion" on purchase, generate_lead, and any other key events. Re-import to Google Ads.
No Enhanced Conversions enabled
What goes wrong: Without Enhanced Conversions, Google Ads loses 15-30% of attribution data due to iOS 14.5+ tracking restrictions and ITP. CPA inflates by 20-40% over 30-60 days.
How to avoid: Google Ads → Conversions → click each conversion action → Enhanced Conversions → ON. Squarespace native checkout passes the customer email automatically.
Cross-domain tracking not configured (subdomains)
What goes wrong: If you have a separate subdomain (e.g., blog.yoursite.com hosted on Squarespace, shop.yoursite.com on Shopify), users traversing from one to the other are counted as new sessions. Attribution breaks.
How to avoid: GA4 → Admin → Data Streams → click stream → Configure tag settings → Configure your domains → add all your subdomains. Restores cross-domain tracking.
Forgetting to test in incognito with ad blockers off
What goes wrong: Test the install while logged in / on your usual browser → ad blocker silently blocks GA → you think it's broken → spend hours debugging an install that actually works.
How to avoid: Always validate in incognito with all extensions disabled, on a network that doesn't block analytics. Use the GA Debugger Chrome extension for confirmation.
Recap
Done — what's next
How to install the Meta Pixel on Squarespace
Read the next tutorial
Hand it off
GA4 on Squarespace is deceptively simple — paste an ID, see pageviews. The trap is that you don't realize ecommerce events aren't firing until you try to make a bidding decision. A vetted Squarespace specialist at $14-16/hr can install GA4 + GTM + ecommerce events + Google Ads integration in 2-4 hours, typically $50-150 total.
See specialist rates
For content sites with no commerce and no paid ads: yes, native is enough (pageviews + basic engagement). For commerce or lead-gen with paid ads: no, you need GTM + custom events for purchase and form tracking.
Universal Analytics was sunset July 2024 — it no longer collects data. Only GA4 matters going forward. If you see old UA properties in your account, they're read-only history.
For native GA install: no, even Personal plan supports the Measurement ID field. For GTM (advanced setup): yes, you need Business minimum since GTM requires code injection. Most real businesses need Business anyway for ad pixels.
Squarespace forms don't push events to dataLayer natively. Workaround: in GTM, create a trigger that fires on Form Submission with a CSS selector targeting Squarespace's form selector (usually `.form-block form` or similar). Fire a GA4 generate_lead event. Validate with a test submission.
Yes — install via GTM the same way (a new tag for Meta Pixel, a new tag for TikTok Pixel). Squarespace's native 'Pixels' field also accepts a Meta Pixel ID but lacks event firing — GTM gives more control.
Squarespace
Squarespace has a 'Meta Pixel ID' field that fires base pageviews. The problem: it doesn't fire Purchase events, doesn't support Conversions API, and silently loses 30-50% of iOS attribution. Here's the real install.
Squarespace
Squarespace Commerce makes setting up a basic store look easy. The reality: shipping zones, tax compliance, payment methods, abandoned cart, and inventory rules need deliberate configuration or you'll lose 20-40% of CR to friction.
Squarespace
Squarespace's SEO defaults are 'fine' — which means mediocre. Sites built on Squarespace can rank, but only if you actively configure 15-20 things the platform doesn't do for you. Here's the real checklist.
Wix
Wix has a 'Google Analytics' integration that requires zero technical work. The problem: it only fires PageView. Ecommerce events, form submits, and custom events don't fire without Tag Manager. Here's the real install.