Add Sumly through Google Tag Manager
If your site already loads Google Tag Manager, Sumly can come in as a Custom HTML tag on every page, without touching the site's code.
Step by step
- 1
In Sumly, open Visitors and copy your project's key, the
sl_…in its line. - 2
In Tag Manager, open Tags › New › Tag Configuration › Custom HTML and paste the code below, with your key in it.
- 3
Under Triggering, choose Initialization - All Pages, so it loads early on every page. Save the tag.
- 4
Check it in Preview, then Submit and Publish. Tag Manager changes are not live until published.
The tag adds Sumly's script itself, with its key on it, rather than leaving it to Tag Manager to copy the attributes across. Keep the double quotes: Tag Manager rewrites single ones.
<script>
(function () {
var s = document.createElement("script");
s.defer = true;
s.src = "https://sumly.dev/s.js";
s.setAttribute("data-site", "sl_your_key");
document.head.appendChild(s);
})();
</script>
Or let your coding assistant do it
Paste this into Claude Code, Cursor or Codex in your project. It fits the code to how your project is built, asks you for the dashboard steps and leaves the keys to you.
See what it says
Set up Google Tag Manager for Sumly in this project.
Sumly (https://sumly.dev) shows revenue next to the visits and app users it came from. The full guide is https://sumly.dev/install/google-tag-manager; read it if anything below is unclear.
Steps:
1. In Sumly, open Visitors and copy your project's key, the `sl_…` in its line.
2. In Tag Manager, open Tags › New › Tag Configuration › Custom HTML and paste the code into Sumly, with your key in it.
3. Under Triggering, choose Initialization - All Pages, so it loads early on every page. Save the tag.
4. Check it in Preview, then Submit and Publish. Tag Manager changes are not live until published.
Custom HTML: The tag adds Sumly's script itself, with its key on it, rather than leaving it to Tag Manager to copy the attributes across. Keep the double quotes: Tag Manager rewrites single ones.
```
<script>
(function () {
var s = document.createElement("script");
s.defer = true;
s.src = "https://sumly.dev/s.js";
s.setAttribute("data-site", "sl_your_key");
document.head.appendChild(s);
})();
</script>
```
Keep in mind: Ad blockers that stop Tag Manager stop everything it loads, Sumly too. The line pasted straight into the site, from your own address, gets through more often. Google recommends its built-in tag templates over Custom HTML. There is no template for Sumly, so Custom HTML it is.
How to work:
- Look at how this project is built first, and fit the code to its framework and its way of doing things; the examples above are a starting point, not something to paste as is.
- Steps that happen in a dashboard (Sumly, or Google Tag Manager's own) are mine: tell me exactly what to click, then wait for me.
- Keys the code needs belong in environment variables, never in the code or the repository. Never ask me to paste a secret key into this chat; tell me which variable to set.
- Change only what this needs, show me the changes before you commit, and tell me how to check that it works.
- sl_your_key stands for the project's public key; it is on the Visitors page in Sumly. Ask me for it.
Consent
In the EU, the EEA, the UK and Switzerland the script sets no cookie until sumly.consent(true) is called, and counts visits without one until then. Call it from your consent tool when the visitor agrees, for example in a second Custom HTML tag on your consent event: <script>window.sumly && sumly.consent(true);</script>.
Checkout
Stripe Payment Links, pricing tables and buy buttons, Polar checkout links, Paddle buttons and Gumroad product links on your pages carry the visitor into checkout by themselves. For a checkout your own server creates, pass the sumly_vid cookie as metadata named sumly_visitor_id, or send the buyer back to a page with the script and ?session_id={CHECKOUT_SESSION_ID} (Stripe) or ?checkout_id={CHECKOUT_ID} (Polar).
Your own domain
On Starter and Growth, one DNS record serves the script from your own address, past ad blockers: under Visitors › Add tracking › Your own address, enter one such as signal.your-site.com and add the CNAME it shows. If your checkout or app is on another domain, add it under Projects and payments › Other domains: the line then carries data-domains and one person stays one visitor across them.
Clicks and sections
Clicks on links to other sites count by themselves. Mark a button with data-sumly-event="signup" to count its clicks, and a section with data-sumly-scroll="pricing" to count the page views that reached it, a goal such as reached pricing.
Good to know
- Ad blockers that stop Tag Manager stop everything it loads, Sumly too. The line pasted straight into the site, from your own address, gets through more often.
- Google recommends its built-in tag templates over Custom HTML. There is no template for Sumly, so Custom HTML it is.
From Google Tag Manager's own documentation, checked 4 November 2026: support.google.com/tagmanager/answer/6107167, support.google.com/tagmanager/answer/7679319, support.google.com/tagmanager/answer/6107163 .
Other platforms
Try it with your own projects
Sign in with Google or a code by e-mail and connect your first project. Free for one project, and 14 days of a paid plan with no card.
Start freeOr look around first: open the live demo.