Tagfire icontagfire
Documentation

The Tagfire handbook.

Account setup, workspaces, billing, the browser extension, and a full guide to every tool in the GA4 + GTM productivity suite. Use the sidebar to jump straight to what you need.

Getting started

Tagfire is a productivity suite for analytics and tag management professionals. One sign-in unlocks twelve tools that automate the repetitive parts of running GA4 and GTM at scale — audits, sync checking, anomaly monitoring, container management, UTM building, and more.

Most tools work directly against your live Google accounts via OAuth. There is no data import step, no manual export, and nothing to install on your site. Sign in, pick a property or container, and you have a working report in under two minutes.

New here? Start with Sign in & accounts to connect your Google account, then run a GA4 Audit to see Tagfire in action.

Getting started

Tagfire uses Google OAuth only. Visit /app, click Continue with Google, and approve the requested scopes. Tagfire requests read and (where applicable) write access to GA4 admin and GTM data on your behalf — no other scopes are requested.

Your account is keyed to your Google profile. If you switch Google accounts inside Chrome, sign out of Tagfire first and back in with the new account — the two sessions are independent.

Session expiry

If your session expires while you are working, Tagfire detects the 401 silently and shows a sign-in prompt without reloading the page. Any unsaved form state is preserved.

Getting started

A workspace is a shared container for an agency, team, or client engagement. Members of a workspace share saved resources, UTM templates, bookmarks, scheduled detectors, and audit history. The workspace switcher is in the top-right of the app shell.

Choosing Personal in the switcher hides workspace data and shows only what you created yourself. Choosing a workspace scopes every read and write to that workspace.

Roles

  • Owner — billing contact, can invite/remove members and delete the workspace.
  • Admin — manage members and all workspace resources.
  • Member — full read/write access to workspace resources, cannot manage seats.

Invitations

Owners and admins invite by email from Profile → Workspaces. The invitee receives a token link and joins on accept. Seat limits depend on the workspace plan.

Getting started

Most tools are free with no rate limits beyond fair-use throttling. A few scheduled or compute-heavy features require Pro:

  • GA4 Anomaly Detector — scheduled checks and email alerts
  • Higher audit run quotas
  • Multi-seat workspaces

See Pricing for the current plan matrix.

Analytics tools

Runs 18+ automated checks across a GA4 property in under two minutes: data-collection coverage, event data quality, key event configuration, ecommerce setup, user tracking, attribution, traffic-source quality, privacy/consent, property integrations, audience/device coverage, and property configuration.

How to run

  1. Open GA4 Audit.
  2. Pick the GA4 property to audit.
  3. Select a date range (default: last 28 days).
  4. Click Run audit. Results stream in as each check completes.

Output

A weighted health score, prioritised issue list (critical / warning / info), and an actionable fix for each finding. Reports are saved to Audit history and can be re-opened anytime.

Analytics tools

Schedules automated checks against one or more GA4 properties and emails the configured recipients the moment a tracked metric drifts past its threshold. Watch sessions, conversions, revenue, or any combination on a daily or weekly cadence.

How to set up

  1. Open GA4 Anomaly Detector and click New detector.
  2. Pick the property and metrics to watch.
  3. Set thresholds (absolute or % change vs baseline).
  4. Pick a cadence — daily at hour X UTC, or weekly on day Y.
  5. Add recipient emails. Save.

How scheduling works

A Vercel Cron job triggers due detectors. On the Hobby plan that fires once a day at an unpredictable hour, so detectors run in best-effort mode (once per UTC day for daily, target weekday for weekly). On the Pro plan crons fire hourly, so each detector runs at its exact configured hour.

Per-period dedupe ensures a detector cannot fire twice for the same window even if the cron retries.

Analytics tools

A full snapshot of a GA4 property's admin configuration in one screen: account, data streams, enhanced measurement, data retention, attribution settings, and product links. Writable settings can be edited inline without leaving the page.

What you can edit

  • Property display name and time zone
  • Data retention period and reset toggle
  • Attribution model and lookback windows
  • Enhanced measurement toggles per data stream

Export the full snapshot to CSV for sharing or archival.

Analytics tools

View, create, and manage annotations across your GA4 properties. Mark launches, incidents, campaign changes, and seasonality so the next person reading the report has context. Supports the six standard GA4 colours and reads system-generated annotations alongside user annotations.

Bulk workflow

Select multiple properties and create the same annotation across all of them in one action — useful for marking a release that touched every brand in a portfolio.

Analytics tools

Compares the parameters your GTM GA4 tags are sending against the custom dimensions and metrics you have registered in GA4. Flags two failure modes:

  • Parameters sent by tags but not registered in GA4 — data is being dropped.
  • Dimensions registered in GA4 but never populated by any tag — empty columns in your reports.

Produces a sync score and a per-parameter breakdown showing which tag fires the parameter and which dimension (if any) collects it.

Analytics tools

Paste a GA4 network request or Measurement Protocol hit and the decoder expands every parameter into human-readable fields with explanations — consent signals, ecommerce arrays, custom dimensions, session state, and more.

Supported inputs

  • Client-side GA4 collect requests (?v=2&tid=… style)
  • Server-side Measurement Protocol POST bodies
  • Raw query strings or full URLs

Analytics tools

Watches analytics hits fire in real time as you browse a site. The companion browser extension captures every GA4 and Measurement Protocol request from the attached tab and streams it to the debugger UI, where each hit is decoded live with the same engine as the Payload Decoder.

Quick start

  1. Install the Tagfire Live Tag Debugger extension (see Install & attach).
  2. Open Live Tag Debugger.
  3. Click the extension icon on the tab you want to debug, then click Attach.
  4. Browse normally — hits appear in the debugger as they fire.

What it captures

  • GA4 client-side beacons (collect requests)
  • Server-side GTM and Measurement Protocol calls
  • dataLayer and gtag pushes from the page itself
All capture happens inside your browser — nothing is sent to Tagfire's servers. See Privacy for the full breakdown.

Beyond live debugging, the Tag Debugger can record reusable tests and run them automatically — see Journeys & Monitors.

Analytics tools

The Tag Debugger has two halves. The live capture above is for hands-on debugging. The other half lets you turn a debugging session into an automated, scheduled test — so you find out tracking broke before your stakeholders do.

There are two concepts:

  • Journey — a flow through a site you record once (clicks, inputs, navigations) on the Journeys tab. A journey can declare the analytics events it should fire and hold a reference screenshot.
  • Monitor — watches a group of journeys for one site on a schedule. On each run it replays every journey, checks its expected events, compares screenshots, and emails you when anything breaks.
Monitors run on Tagfire's servers in a real headless browser — they do not need the browser extension or your machine to be open. You only need the extension to record a journey in the first place.

Recording a journey

  1. On the Journeys tab, click New journey and attach a tab with the extension.
  2. Click Record and perform the flow (e.g. view product → add to cart → checkout).
  3. Stop, give it a name, and save. It needs a start URL (a navigate step) to be saveable.
  4. Add expected events — the GA4 / dataLayer hits that must fire when it replays.

Creating a monitor

  1. On the Monitors tab, click New monitor and give it a name + site.
  2. Tick the journeys to include, and set each one’s expected events and baseline.
  3. Set the schedule, visual-regression options, and alert recipients.
  4. Turn on Monitoring enabled. Use Run now to test it immediately.

Monitor settings

  • Site — the origin the monitor covers, e.g. https://example.com.
  • Monitoring enabled — the master on/off switch. Off pauses the schedule (you can still Run now).
  • Frequency — Daily or Hourly.
  • Hour (UTC) — for daily monitors, the UTC hour to run at.
  • Visual regression — capture a screenshot each run and diff it against each journey’s baseline. The first run seeds the baseline.
  • Threshold % — how much of the page may change before it counts as a regression (lower is stricter).
  • Alert recipients — who gets the digest email on failure. Defaults to your account when empty.

Per-journey settings inside a monitor

  • Expectations — the events that must fire when the journey replays. Require an event fires exactly once (catches double-firing tags) or must not fire (assert something never happens, e.g. no PII).
  • Visual baseline — the accepted “this is how the page should look” screenshot. Use Accept latest as baseline after an intentional design change.

What counts as a failure

A journey fails — and the run is marked failed — if any of these happen:

  • An expected event fails — a required hit didn’t fire, fired wrong, or fired too often.
  • A step fails — the journey couldn’t complete (e.g. an element it needed wasn’t there).
  • A visual regression — the screenshot differs from the baseline by more than the threshold.

When any journey fails, a single digest email with the details and screenshots goes to every recipient. Each run is also saved to the monitor’s run history with a screenshot/diff comparison.

Statuses

  • Passing / Failing — the outcome of the most recent run.
  • Error — the run couldn’t complete at all (as opposed to a clean pass/fail), e.g. the replay service was unreachable.
  • Paused — monitoring is disabled, so the monitor won’t run on its schedule.
  • Not run yet — newly created, no runs recorded.

By default the Anomaly Detector and tag Monitors alert you by email. You can also push those same alerts to Slack or any webhook — in addition to email. A channel you add is shared: every detector and monitor in that scope sends to all of its enabled channels.

Where to manage channels

  • For a workspace — open the workspace’s Settings → Notifications tab. These fire for every detector and monitor in that workspace (admins manage them).
  • For yourself — open Profile and find Alert channels. These fire for your personal (non-workspace) detectors and monitors.

Add a channel

  1. Open the Notifications tab (workspace) or Alert channels section (profile).
  2. Choose the type — Slack or Webhook.
  3. Paste the webhook URL (see below for how to get one) and give it a label, e.g. #analytics-alerts.
  4. Click Add channel, then Send test to confirm the message arrives.
  5. Use the toggle to pause a channel without deleting it.

Get a Slack webhook URL

  1. Go to api.slack.com/apps and click Create New App → From scratch; pick your workspace.
  2. Open Incoming Webhooks and turn it On.
  3. Click Add New Webhook to Workspace and choose the channel to post into.
  4. Copy the URL (it looks like https://hooks.slack.com/services/…) and paste it into Tagfire as a Slack channel.
Create the webhook inside a Slack app, as above. Slack’s older “custom integration” incoming webhooks (from the legacy custom-integrations page) are deprecated and may be removed — the app-based webhook here is Slack’s recommended replacement.

Use any webhook

Choose the Webhook type to POST a structured JSON payload to any HTTPS endpoint — handy for Zapier, n8n, Make, or an internal service. Tagfire sends a JSON body with the alert title, summary, detail facts, and a link back to the app. To try it quickly, paste a webhook.site URL and click Send test.

URLs must be HTTPS; internal/private addresses are rejected. Channels are best-effort and independent of email — they fire even with no email recipients, and a failing webhook never blocks a run.

Tag management

Runs 50+ checks against a live GTM container covering tags, triggers, variables, Consent Mode v2 setup, ecommerce tracking, security risks, and the third-party MarTech stack detected in the container.

Categories

  • Tag hygiene — unfired tags, paused tags, duplicate fires
  • Trigger hygiene — orphans, overlap, misconfigured filters
  • Variable hygiene — unused, broken, hardcoded secrets
  • Consent Mode v2 — required consent types, default state, ad redaction
  • Ecommerce — purchase, item arrays, currency consistency
  • Security — unsanitised inputs, HTML/JS tags from variables
  • MarTech stack — detected vendors and their config

Run the audit, share the report URL, or export to PDF for client delivery.

Tag management

Browse and operate on your live GTM containers. Inspect every tag, trigger and variable with a full dependency graph, visualise the container as an interactive node graph, clone published versions across containers, export to JSON, and save individual resources to reuse in any other container.

Key workflows

  • Dependency graph — click a tag to see which triggers fire it and which variables it depends on, transitively.
  • Clone version — copy a specific container version (tags, triggers and variables) into another container as a workspace draft.
  • Save resources — save individual tags or variables to your library, then paste them into a different container later.
  • Export JSON — full container export, compatible with the GTM import endpoint.
All write operations create a new draft workspace in the target container — nothing is published automatically.

Other tools

Build, manage and track UTM-tagged campaign links with templates, validation, bulk URL generation, QR codes, and a searchable history of every link you have built.

Templates

Ship with templates for Google Ads, Meta, LinkedIn, email, and generic web. Create your own template to enforce a campaign naming convention across the team — required fields, allowed values, and auto-lowercase rules.

Bulk generation

Paste a list of destinations or a CSV and produce all variants in one pass. Output as a copy-pasteable table or download as CSV.

Audits user access across your GA4 properties and GTM containers in one unified view. See exactly who has admin, editor, or viewer roles, filter by resource, user, or role, and export the full access report to CSV for compliance review.

Use cases

  • Quarterly access review — does anyone still need admin?
  • Off-boarding — find every property/container an ex-employee can still touch.
  • Client takeover — confirm the agency has the role they need before kickoff.

Other tools

A workspace-aware bookmark manager for the assorted URLs every analytics practitioner accumulates — solution design docs, implementation specs, tracking matrices, client dashboards. Group by type and client, pin the ones you reach for daily, and search across all of them.

Browser extension

The Live Tag Debugger extension is a Chromium browser extension (Chrome, Edge, Brave, Arc). Install it from the Chrome Web Store link inside the Live Tag Debugger tool, then:

  1. Open the Tagfire Live Tag Debugger in one tab.
  2. Navigate to the site you want to debug in another tab.
  3. Click the Tagfire extension icon in the toolbar of the site tab.
  4. Click Attach. The debugger tab will start receiving hits.

Only one tab can be attached at a time. Closing the attached tab, navigating away, or clicking Detach ends the session.

Browser extension

The extension never sends captured data to Tagfire or any third party. All relay happens inside your browser via window.postMessage and the browser's own messaging APIs. No telemetry, no analytics, no remote logging.

Read the full breakdown — permissions, storage, Chrome Web Store user data policy — at /extension-privacy.

Billing is handled by Paddle. Manage your subscription, update card, change plans, or download invoices from Profile → Billing.

Plan changes

Upgrading takes effect immediately and is prorated. Downgrades take effect at the end of the current billing period. Cancellation keeps Pro features active until the period ends, then reverts to Free.

Refunds

See our Refund Policy for the full terms.

Do I need to install anything on my site?+
No. Every tool reads from the GA4 and GTM APIs over OAuth. The only optional install is the Live Tag Debugger browser extension, and that only watches your own browser — nothing on the site itself.
Does Tagfire store my analytics data?+
Audit reports and detector run results are stored so you can re-open them later. Raw event-level data from GA4 is never persisted — Tagfire reads aggregated counts to compute checks, not individual hits.
Can I share an audit report with a client?+
Yes. Every saved report has a shareable URL that is workspace-scoped — anyone with access to the workspace can view it. Export to PDF for clients who are not in the workspace.
What happens to my workspaces if I cancel Pro?+
Workspaces and their data are preserved. Seat limits revert to the Free plan — if you are over the limit you keep read access but lose the ability to add new members until you upgrade or remove seats.
Why does the Anomaly Detector say 'best-effort'?+
On the Hobby tier of Vercel, scheduled crons fire once a day at an unpredictable hour. Detectors honour the day you picked but not the exact hour. On Pro tier crons fire hourly and detectors run at their exact configured time.
Can I export tool data?+
Yes. GA4 Audit, GTM Audit, Access Governance, GA4 Property Inspector, and UTM Builder all support CSV or PDF export. GTM Container Manager exports to JSON compatible with the GTM import endpoint.
I found a bug — where do I report it?+
Email hello@tagfire.app with steps to reproduce. Screenshots and the workspace name (if applicable) help us triage faster.

Still stuck?

We answer support emails ourselves.

Reply within one business day, usually same day.

hello@tagfire.app