Blog
SignalHost for Squarespace: connect the app, paste the code once, and send every order as a purchase
Published · 6 min read
The SignalHost app connects a Squarespace site to server-side Google Tag Manager. Squarespace lets no app write a site's code, so the app hands you two short pieces to paste under Code Injection, checks that the first one is on your site, and fills in each purchase with its products and totals from your orders. This guide follows the order you meet it in: connecting, pasting, checking, and what to do when something does not work.
Before you start
- A Squarespace site on the Core, Plus or Advanced plan. The code goes into Code Injection, which the other plans do not have.
- A SignalHost account. The free plan is enough to try it: 10,000 requests a month and one container. You can create the account while connecting.
- A public site, for the check. A trial site or one behind a password is private, so SignalHost cannot look at it yet, and a trial site cannot take orders.
1. Install the extension and approve it
Install SignalHost from Squarespace's extensions. Squarespace then asks you to approve the app's access to your site: reading your orders, the only permission it asks for. Approve. If you decline instead, nothing is installed and a SignalHost page says so.
Squarespace then sends you to SignalHost. Sign in, or create a free account. You can also start from SignalHost: on a container's page, under Using a website builder?, the Squarespace tile (Connect, then paste the code) opens the same approval screen with that container already chosen.
2. Connect the site to a container
The next screen lists what the app will and will not do. It reads your orders only to send each purchase's products and totals, never your customers' details, and it cannot change your site, use your Google account or see your billing.
Pick the container the site should send its data to, or choose New container and go through the short wizard; it is built in your own Google account, so it stays yours. Building one takes a few minutes, and the code to paste appears as soon as it is ready. Press Connect.
3. Paste the code into Code Injection
The screen after Connect, Finish on Squarespace, holds two pieces of code, each with a Copy button. It takes about two minutes, and only once.
- Paste into Header: in Squarespace, open Code Injection, paste the first piece into the Header field and save. It goes on every page of your site.
- Paste into the order pages: paste the second piece into both the Order Confirmation Page field and the Order Status Page field, and save. Squarespace uses the first page for gift cards, memberships and subscriptions and the second for physical, digital and service products, so the same snippet belongs in each. A site that sells nothing can leave this one out.
Squarespace's own guide to Code Injection shows where the fields are. The same card stays on the container page, as Finish setting up on Squarespace, until SignalHost finds the code on your site, so you can come back to it later.
4. Check that it works
The third step on the card, Check that it works, is SignalHost's own look at your public home page. It runs when you connect, once a day, and whenever you press Check again. Found means the Header code is on your site. The order snippet cannot be checked this way, because the order pages only exist after a purchase.
Then open your site and look around for a moment. On the container page, the Recent tab of Enhanced analytics covers the last 30 minutes, and from the Growth plan up, Live event monitoring shows each event by name as it arrives. Your first real order appears among the container's events as purchase.
What the two pieces do
Nothing reaches your site except what you paste, and SignalHost cannot change it afterwards.
- The Header code is the Google Tag Manager loader, pointed at your own tagging address instead of googletagmanager.com. It loads your Tag Manager container from there, and your Google tag sends page views through it.
- The order snippet runs once, on the first view of the order page. It asks your tagging address for the order's products, tax, shipping and coupon, which SignalHost reads from Squarespace without the customer's name, email address or postal address, and sends the order as purchase, with the order number as its transaction ID. If that lookup does not answer, it still sends the order number and Squarespace's total in your store's currency.
The purchase is sent from the buyer's own browser, so Google Analytics and Google Ads can credit the visit that led to it. A buyer who comes back to the order page does not count the same order twice, and if the page does not already carry the loader, the snippet loads it itself, never a second copy.
Every request leaves the browser in a form ad blockers do not recognise, and your tagging server forwards it to Google Analytics 4 and to the ad platforms you set up on the container page: Google Ads, Meta, TikTok and others. If your cookie banner uses Google Consent Mode, a visitor who declines is counted only as Google's cookieless ping.
Your own tracking domain
Your container starts on an address under signalhost.io. On a paid plan, Set up your own domain on the container page walks you through using a subdomain of your own site instead, such as sgtm.yoursite.com, which survives filter lists and keeps click cookies first-party.
Because you pasted the code yourself, the switch is yours too. When the domain goes live, SignalHost emails you the new code; the old code keeps working until you replace it. After the next check, or when you press Check again, the Squarespace card on the container page reports an older copy and shows both pieces with the new address. Replace both.
Without connecting the app
You can paste the loader without the app. On the container page, find the code in the Install on your site card and press Copy. Paste it into the Header field under Code Injection as in step 3, and save. Then press I have done this on the container page.
What you give up: the order snippet, which SignalHost hands out only to a connected site because its product lookup reads the order through the app, so no purchases are sent; and the check of your public site. Connect the app later and its Header code is the same, so you add only the order snippet.
Managing and disconnecting
Settings, Connected sites lists the site as Squarespace app. Disconnect asks once, then SignalHost stops reading your orders. It cannot remove what you pasted: the code keeps loading until you delete it under Code Injection, and until then purchases arrive with their order number and total but without their products. Your container and its statistics stay, and you can connect the site again at any time.
Uninstalling the extension in Squarespace ends the connection the same way, and the pasted code stays until you remove it.
When something does not work
- Not found on your site: paste the Header code, save, then press Check again. No Code Injection to paste into means a plan without it; it needs Core, Plus or Advanced.
- The check says your site is private: a trial site or one with a password cannot be looked at yet. The code works as soon as the site is public.
- Your container is being set up: the code appears on the card in a few minutes. If the build failed, the card says so; open the container to try again.
- Squarespace access has ended: SignalHost can no longer read your orders, so purchases arrive without their products. Press Connect again on the card.
- This connection link doesn't work: start again from Squarespace, open the SignalHost extension and connect your site.
- Anything else: write to hello@signalhost.io with your site's address.
Trademarks
SignalHost is an independent product of Algorithmo GmbH and is not affiliated with or endorsed by Squarespace, Google, Meta or TikTok. Google Analytics, Google Ads and Google Tag Manager are trademarks of Google LLC; Meta is a trademark of Meta Platforms, Inc.; TikTok is a trademark of ByteDance Ltd.; Squarespace is a trademark of Squarespace, Inc.

