Beta open now: browse the apps, connect your agents, and get started
Sundogs Log in
Sundogs

All appsAnalytics and tracking

Tag Manager Beta

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.

$7 USD per site · $21 USD for all your sitesv0.6.2Cloudflare free plan

Beta

Tag Manager is in beta: it works, but things may still break. Tell us if something does: open an issue. Every paid order has a 7-day refund.

Buy Tag Manager

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

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.

Every license includes 12 months of updates; the version you download keeps working after that, and you can renew updates for about half the price.

Buy Tag ManagerRead the license

7-day refund, no questions asked · Refund policy

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.

You'll log in first (new here? that creates your account), then pick the site and review the order before paying.

Ask your AI agent to install this

Paste this into your AI agent (Claude Code, Codex, Cursor or another), opened in your site's project. It tells you what the app needs and costs before it changes anything.

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.)

Connect your agent

What it needs

Cloudflare plan
Cloudflare free plan
Works on
Cloudflare Workers, Cloudflare Pages
Version
0.6.2 (site layer 0.22.0 or later)
Price
$7 USD per site · $21 USD for all your sites
All the details
  • 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.

Site on another host? Start here checks what you have.

Works with

Cloudflare and the Cloudflare logo are trademarks of Cloudflare, Inc. Sundogs is not affiliated with or endorsed by Cloudflare. All other trademarks and logos are the property of their respective owners.
  • Cloudflare Workers
  • Cloudflare Pages
  • Astro
  • Next.js
  • Vite
  • Hugo
  • HTML
  • Vanilla JS
  • Meta Pixel
  • Google Analytics 4
  • Google Ads
  • Google Tag Manager
  • TikTok
  • LinkedIn
  • Pinterest
  • Reddit
  • Snapchat
  • X
  • Microsoft Advertising
  • Microsoft Clarity
  • Hotjar
  • Plausible
  • Fathom
  • Google Search Console
  • Bing Webmaster Tools
  • Google Consent Mode

Works with your other apps

Connects with no setup, in any install order:

Included

What's new

Tag Manager 0.6.2 · Nov 6, 2026

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

Tag Manager 0.6.1 · Nov 5, 2026

  • Small wording updates in the admin and in the instructions for your AI agent. Nothing else changes.

Tag Manager 0.6.0 · Nov 4, 2026

  • Your AI agent now hears what the Tags page says when Cookie Consent isn't installed: without a consent banner every ad and analytics tag loads for every visitor.
  • Saving the settings with nothing to change says what to send, instead of a database error. Setup guides for each vendor use American spelling.
  • Notices are now clean tinted cards in their status color, with no side edge.

Tag Manager 0.5.5 · Nov 4, 2026

  • Removing event settings asks first and says the tags go back to their defaults. Without JavaScript, deletes show a short confirm page instead of going ahead.

Tag Manager 0.5.4 · Nov 2, 2026

  • On "Add a tag", hovering a vendor card (Meta Pixel, TikTok and the rest) highlights the card's border instead of underlining all its text.

Tag Manager 0.5.3 · Nov 2, 2026

  • New Google Analytics 4 tags honour US opt-outs: for a visitor who opts out (Global Privacy Control or the Do Not Sell or Share link) they keep counting but deny ad_user_data and ad_personalization and turn off Google signals and ad personalization signals. Older GA4 tags are not changed: tags_list recommends the switch with an apply you can approve. If GA4 is linked to Google Ads, also switch off ads personalization for US states in the GA4 property settings.
  • The scan for tags pasted into your pages also reads up to 5 known pages by itself (SEO Pack's pages, else the sitemap, else the most visited), so checkPages is rarely needed. It now also sees external script tags with a src.
  • tags_save for Google Analytics 4 or Google Ads in advanced mode says it loads straight away with storage denied and that strict waits for consent. tags_save and tags_list mention a missing privacy policy link when consent is on.
  • A newsletter signup is no longer marked twice as a key event: the GA4 advice says one key event per kind of conversion. A signup through a popup is worth the form's value when the popup has none.
  • On localhost a cf-region-code header stands in for the visitor's region, like cf-ipcountry does for the country.
  • One install order everywhere: add the tag in Tag Manager with confirm:true, then remove the hard-coded snippet in the same change (or the next deploy), and check the page. The warning, the confirm reason, tags_list, tags_save and the skill all say it the same way.
  • Adding a second tag of the same vendor with another ID (two GA4 IDs, two Meta pixels) is saved with a plain warning: "You already have GA4 G-...; two IDs send every page view twice to two properties".
  • The optional Plausible proxy reads at most 20 KB per event even when it arrives in pieces, and only ever forwards the visitor address Cloudflare reports, never a client-sent X-Forwarded-For.
  • The Overview shows one tile for this app (tags live), with a link to add your first tag.
  • The Security policy card says what it does in plain words first and keeps the technical header names under "Details". Times use one format.

Tag Manager 0.5.1 · Nov 2, 2026

  • For agents: a dry run of tags_values_save shows the complete values it would save, from the same code as the real save.

Tag Manager 0.5.0 · Nov 1, 2026

  • A GA4, Google Ads, Meta or Tag Manager ID in the wrong shape is now an error (send force:true if you are sure), instead of a warning that saved anyway.
  • Tags hard-coded in your site's pages are found and named: "G-… is in your page's code and outside Tag Manager; it loads even when consent is required" (tags_list and the Check-up); adding a duplicate of one needs confirm:true. You can choose the pages to scan with tags_settings_save {checkPages}.
  • Custom code that loads a remote script or reads cookies or storage needs confirm:true to save or turn on, shows the hosts and the risky reads first, and is listed as custom-remote in the warnings. The kill switch (killCustom) is a tool, and switching it back off asks first.
  • Tags are named by name and label in every message ("custom-2 (Chat widget)"), and tags_save takes a label. Deleting a tag that is already off says it changes nothing on the live site.
  • New custom code in marketing honours US opt-outs by default (gpc); saved tags are unchanged.
  • tags_get lists the declared events a tag does not send (notSent), with the reason and how to turn one on.
  • Pages that carry a visitor's country or region are marked Cache-Control: private, and the Health page checks that a Cloudflare "Cache Everything" rule is not keeping them.
  • AI agents: tags_toggle takes on:true or on:false (safe to retry); tags_save declares every field it takes (including confirmNoCookies and label) and its dry run returns the complete tag and the same warnings a real save gives.
  • The Overview has a new "Tags live" number with the count of warnings.

Tag Manager 0.4.0 · Nov 1, 2026

  • What's it worth?: type what each conversion is worth once (and, behind "Show more", a different value for one form or popup) and it is sent as value and currency with the conversion to Google Ads, Google Analytics 4, Meta, TikTok and the other tags that take a value. Nothing is sent when you set no value, and values you set before in Analytics wait until you tick "Send these values to your ad tags". Values sent to ad tags are in your page's code, so anyone can see them. The same numbers show in Analytics when it is installed.
  • The Events tab lists what your site reports by app, read from what each installed app declares: a new app's conversions reach your ad tags with no update here (conversions go to the tag's lead event; smaller steps and counted things stay off until you turn them on). Existing event names, mappings and saved settings are unchanged.

Tag Manager 0.3.0 · Oct 31, 2026

  • New ad tags honour US opt-outs: a visitor who sends a Global Privacy Control signal, or clicks the new "Do Not Sell or Share My Personal Information" link, gets the vendor's limited data use (Google Ads: restricted data processing, conversions still counted), or the tag doesn't run for them. Ad tags you already have keep their setting; the Tags page offers to switch them over.
  • The Do Not Sell or Share link: added at the end of every page for US visitors, or placed by you in your footer. It's on as soon as you add your first ad tag, and shared with Cookie Consent.
  • Google Ads and Google Analytics 4 tags added from now on pass click IDs from page to page (url_passthrough), and Google Ads leaves click IDs out of its requests (ads_data_redaction), while cookies are denied. Saved tags keep their settings.
  • Your AI agent sees the same suggestions as the Tags page and Check-up (tags_list recommendations), each with the tool that applies it once you agree.
  • The Check-up says how much traffic Google needs before it models conversions for visitors who decline, with links to Google's pages.
  • With "Only these countries", each tag reads "Live outside the EU/UK; waits for consent in the EU/UK", and the Tags page shows how many visitors who were asked allowed marketing.

Tag Manager 0.2.3 · Oct 31, 2026

  • Clearer about who waits for consent: tags only wait for visitors who are asked (with "Only these countries", that's the EU/UK by default) and load straight away for everyone else. The tag list, the editor and the agent tools now say so.
  • Phone admin: tags are compact list rows with a status dot after the name; in the tag editor the option cards put the label on its own line with the help text under it, and the On switch has its own row above Save.

Tag Manager 0.2.2 · Oct 31, 2026

  • Admin pages work like a phone app: a menu drawer instead of a tab strip, 44px tap targets, fields that bring up the right keyboard, save buttons that stay in reach on long forms, and no sideways scrolling at any phone or tablet width. The event and check-up tab rows are finger-sized on phones.

Tag Manager 0.2.1 · Oct 31, 2026

  • Agents: new tags_get; tags_save states what an edit keeps; self-test fixes name the tool to use.

Tag Manager 0.2.0 · Oct 30, 2026

  • Your AI agent can manage this app through the admin's MCP connection (Settings, Connect an agent), signed in with Cloudflare Access like you. Deletes ask for a second confirmation; personal data is left out unless asked for.
  • Every tag now says in one plain sentence which hosts its code loads from and what that means, with a short "Why this matters" note.
  • New "Never load tags on" list (checkout, cart, account, login and similar pages), filled for new installs and one click to adopt on existing sites, plus a switch to skip pages with a form.
  • New Security policy card on the Check-up tab: a recommended Content-Security-Policy for exactly your enabled tags, a report-only-first plan, install snippets for Pages and Workers, and a note when your tags change. It never sets the header for you.

Tag Manager 0.1.1 · Oct 30, 2026

  • States its cost per visit (requests and database writes) before you install, and can be turned off in an emergency from Settings, Apps.

Tag Manager 0.1.0 · Oct 30, 2026

  • First release: add Meta, TikTok, LinkedIn, Pinterest, Reddit, Snap, X, Google Analytics 4, Google Ads, Google Tag Manager, Microsoft UET and Clarity, Hotjar, Plausible, Fathom, Search Console and Bing verification, or your own code, with only an ID.
  • Every tag waits for the consent it needs and uses its vendor's own consent calls (Meta, TikTok, Pinterest, Microsoft, Clarity, Google Consent Mode).
  • Your forms, signups, waitlist joins, popups, affiliate clicks and review forms become the right event in each tag, with a value and a shared id so a later server copy can be matched. Change any of it per tag or per form, popup, waitlist or link.
  • Mistake prevention: a snippet your site already loads is not loaded twice, personal data is stripped from events, IDs are checked, and sensitive pages can be left out.

Questions

Do I need to write code?

No. Your AI coding agent installs it into your site's project and deploys it with your own Cloudflare account. You approve the changes.

Does it send my site's data anywhere?

No. It runs in your own Cloudflare account. The store never sees your visitors, your form entries or your settings.

What happens after 12 months?

The version you have keeps working. Renew for about half the price if you want 12 more months of updates.

Can I use it on client sites?

Yes, with a site license per client site. The all-sites license covers the sites you own or run yourself.

What does it need from Cloudflare?

Cloudflare free plan, on Cloudflare Workers, Cloudflare Pages.

Guides for this job

The decisions, rules and setup around it, and where the app fits.