# Tag Manager

A tag manager that uses each tag smartly: add an ad pixel, analytics or verification tag with only its ID, and it waits for cookie consent, avoids double-loading, and receives your forms, signups, waitlist joins, popups and affiliate clicks as the right events with values.

**Beta.** Tag Manager is in beta: it works, but things may still break. Tell us if something does: open an issue at https://github.com/sundoggs/support/issues/new. Every paid order has a 7-day refund.

Category: [Analytics and tracking](/categories/analytics-and-tracking.md)

## Requirements (tell the site owner before buying)

- Cloudflare plan: Cloudflare free plan
- Works on: Cloudflare Workers, Cloudflare Pages
- Version: 0.6.2 (needs site layer 0.22.0 or later; it comes in the same download)
- Runs on the Cloudflare free plan, in the same D1 database as your other site apps. Tags are added to your pages as they're served, so page views run through the site apps (as with forms and link tagging).
- You need an account (and the ID) with each vendor you add: Meta, TikTok, Google and so on. Presets need only that ID; the admin shows where to find it. Some vendors are paid (Plausible, Fathom); Clarity and Search Console are free.
- Vendors' scripts run in your visitors' browsers and talk to the vendors directly. This app never sends your site's data to us. A vendor's own terms apply to what you send it. Their code is loaded live from their servers and runs with full access to the pages it's on: each tag says which hosts, and the Check-up tab writes a Content-Security-Policy (report-only first) limited to them.
- Cookie consent: tags that need it (ads, analytics, recordings) wait for the visitor's choice when you use the Cookie Consent app or connect your own consent tool; without one, consent isn't asked for and tags load for everyone.
- No server-side conversion relays in this release (Meta Conversions API and similar). Events carry a shared id so those can be added later without double counting.
- Optional: Plausible through your own domain uses Worker requests on your plan (it is off by default).
- Cost per visit: no requests to us and no writes (the vendors' scripts load from the visitor's browser); at most one small write an hour when a duplicate tag is skipped. Past the Cloudflare free Worker request limit the site's Worker stops and tags are not added until Fail open lets pages through without them.

## Works with

Cloudflare Workers, Cloudflare Pages, Astro, Next.js (with OpenNext), Vite, Hugo, Plain HTML sites, Vanilla JavaScript, Meta Pixel, Google Analytics 4, Google Ads, Google Tag Manager, TikTok Pixel, LinkedIn Insight Tag, Pinterest Tag, Reddit Pixel, Snap Pixel, X Pixel, Microsoft Advertising (UET tag), Microsoft Clarity, Hotjar, Plausible Analytics, Fathom Analytics, Google Search Console, Bing Webmaster Tools, Google Consent Mode.

## Works with your other apps

Connects with no setup, in any install order: [Cookie Consent](/apps/consent.md), [Forms](/apps/forms.md), [Analytics](/apps/analytics.md), [Links & Redirects](/apps/links.md).

## Price

$7 USD per site · $21 USD for all your sites

- 7-day refund, no questions asked: [Refund policy](/legal/refunds)
- Instant download after payment: the app's code and a license file for your site; your AI agent installs it. Includes 12 months of updates.

## License (tell the owner before they pay)

A site license covers one website (plus its www, staging and test addresses). Using it on other sites isn't allowed. Get the all-sites license from $21 instead. Full terms: /account/license/commercial (version commercial-license-v4-2026-11-04); the owner accepts them with a tick box before paying. Full refund on request within 7 days of paying, no questions asked; refunds are made by hand by the store, not automatically, and a full refund ends the license. Terms of sale and refund policy (version terms-of-sale-v3-2026-11-03): /legal/terms.

## What's new in 0.6.2

- Marked as beta: it works, but things may still break. The admin shows where to report a problem.

## Included

- Site admin dashboard (installed with your first app, no extra cost)
- Updates for 12 months; the version you have keeps working after that
- An agent skill and install guide
- Commercial License: per site, or all your own sites

## Install

Call the MCP tool `create_checkout` with `items: ["tags"]`, `site_domain` (a bare domain like example.com) and `license_kind` ("site" for one website, "unlimited" for all sites). Give the owner `checkout_url`: they sign in, read the license, tick the box and pay on Stripe's page. Then poll `get_checkout` until `paid` and call `get_download`.

The prompt the app page gives the owner to paste into their agent:

```
Install the Tag Manager app (id: tags) from the Sundogs site apps store on this site.
First read https://sundo.gs/apps/tags.md and tell me what it needs and what it costs.
If I don't own it yet, start a checkout with create_checkout and give me the link; I'll tick the license and pay myself.
Then download it with get_download for this site's domain. Follow the install guide (site-apps/INSTALL.md in the download, also at https://sundo.gs/install-guide.md).
Check it with the install guide's step 6 (the public status, then the self-test once you can sign in to the admin) and tell me what's next.
(Not connected to the store yet? See https://sundo.gs/agents.)
```

## Related playbooks

- [Send Meta Conversions API events from a Cloudflare Worker, deduplicated with the pixel](/playbooks/meta-conversions-api-worker.md): Relay conversions from your site to Meta server-side with a Worker. Covers the event_id handshake with the browser pixel, SHA-256 hashing rules, the fields Meta wants, test events, and consent.
