Made by Rune Andersen @ Copenhagen, Denmark

Privacy Policy for Event Watcher

Last Updated: August 20, 2026

Overview

Event Watcher is a browser developer tools extension that helps developers debug analytics implementations. This privacy policy explains how the extension handles data, including the optional AI features introduced in version 1.1.0.

Data Collection

Anonymous Usage Analytics

Event Watcher collects anonymous usage analytics to help improve the extension. We use Amplitude (EU data residency) to track:

  • Extension open/close events
  • Feature usage (which filters are used, view modes, settings changes, etc.)
  • App version and platform
  • Resolved theme (light/dark) and browser/OS metadata
  • The size of the extension's own local storage: two byte counts, reported in MB (total, and the share used by saved AI conversations). Sizes only, never the stored content, and never anything about the sites you visit. Added in v1.5.0 so we can tell whether anyone is approaching Chrome's 10 MB limit for extension storage before adding limits or cleanup tools nobody needs
  • AI feature usage meta: provider (Anthropic / OpenAI / Gemini), success or error category, input/output token counts, the selected task preset, and a bucketed length of any free-form question (short / medium / long), but never the prompt content, the AI's response text, or any captured event data. This follows the same opt-out toggle as every other analytics event.

What we DO NOT collect:

  • No personal information (name, email, etc.) outside of explicit feedback form submissions
  • No URLs of sites you visit
  • No website content or tracking data you're debugging
  • No IP addresses (Amplitude EU is configured without IP tracking)
  • No API keys, AI prompt text, or AI response text, even when AI features are in use

How It Works

  • A random device ID is generated locally (not linked to your identity)
  • No cookies are used
  • No user accounts or login required
  • Data is sent to Amplitude's EU servers
  • You can generate a fresh device ID at any time from Settings → Privacy → Analytics identity → Reset

Opt-Out

You can disable analytics in the extension settings (Settings → Privacy). When disabled, no data is sent to Amplitude.

Unknown Tool Detection

When Share unknown tracker hostnamesis on (the default), the extension includes hostnames of unrecognised trackers on its page-load analytics events to help grow built-in detection. Only the hostname is shared (never the path, request data, or page URL), and any hostname sharing a root domain with the site you're on is dropped first. The same setting also controls hostname sharing for trackers identified by payload-shape fingerprinting (for example, a server-side proxy whose URL didn't match a known endpoint but whose request body did): when on, these are reported as "platform | hostname" pairs so we can confirm whether the fingerprint match was correct; when off, only the platform ID is shared. You can turn this off in Settings → Privacy.

Some tracking services give every customer their own subdomain, so a hostname can carry the name of the company whose site you are on even though it belongs to a different domain than that site. Before any hostname is shared, the site's own name is taken out of it: a customer-specific label is replaced with a placeholder (examplecompany.matomo.cloud is shared as {site}.matomo.cloud), which still identifies the tracking service but not the company, and a hostname whose own domain carries the site's name is dropped instead of shared.

Feedback Form Submissions

If you use the in-product Feedback form to send a bug report, feature request, missing-tool report, or wrong-consent flag, the fields you fill in (subject, comment, optional name, optional email, optional website URL, optional endpoint pattern) are sent to Amplitude as part of the analytics event so we can act on them. This is opt-in per submission and is the only place free-text input is collected.

If you include an email address, it is attached to that submission so we can follow up on it, which associates the submission with your install's usage data. It is not attached to anything you do afterwards, and resetting your analytics identity (Settings → Privacy) starts a fresh, unlinked device ID.

AI Features (Optional, Bring Your Own Key) - v1.1.0+

Event Watcher includes optional AI features that you enable by providing your own API key for one of:

  • Anthropic Claude: https://api.anthropic.com
  • OpenAI: https://api.openai.com
  • Google Gemini: https://generativelanguage.googleapis.com

When you enable AI features and trigger an action (e.g., AI Summary on an event, AI Chat across a session, Identify Platform on an unknown event), the extension sends data directly from your browser to the AI provider you selected. There is no Event Watcher proxy or server in the path; you pay the provider directly under their terms.

What is sent to the AI provider

  • The parsed event payload and request context for the selected event
  • For AI Chat: a one-time snapshot of the captured events in the current session, then only the chat history on follow-ups
  • For page-scoped chats: events captured between two page navigations
  • For GTM Container AI: tag, variable, trigger, and event-group structure parsed from the GTM container response
  • Any user-typed comments attached to the event so the AI can reason about them

What is NOT sent to the AI provider

  • Your API key is sent only as the standard authentication header to the provider you chose
  • Your browser's cookie store, browsing history, page DOM content, or anything outside the captured tracking data
  • Data from other tabs or sessions

A note on cookie values.Event Watcher never reads your browser's cookie store for AI features. But when a site copies cookie values into its own tracking payloads or request URLs (Tealium's cp.* parameters are the common case), those values are part of the captured request and are sent along with the rest of the payload. They are indistinguishable from any other tracking parameter, and they are usually the data you asked the AI to explain.

PII redaction. Settings → Features → Redact PII in AI prompts is on by default. When enabled, a regex pass in the extension service worker scrubs a fixed set of credential and contact patterns from prompts before they leave the browser: email addresses, E.164 phone numbers, credit-card-shaped digit runs, JWTs, bearer tokens, and common API-key prefixes (sk-, sk-ant-, AIza, xox*-, ghp_, github_pat_). It does not currently redact tracking identifiers (client IDs, click IDs, hashed email addresses) or IP addresses.

Disabling AI entirely. Settings → Features → Show AI features hides every AI surface. With it off, no AI calls are ever made.

Where API Keys and AI History Are Stored

  • API keys are stored locally in chrome.storage.local under ai_config. They never sync to other browsers or devices, are never sent to Event Watcher servers, and are never included in analytics. Removing a key from the Provider tab wipes it immediately.
  • AI usage history (token counts, daily request counts, recent error states) is stored locally and capped to a 30-day rolling window.
  • AI chat history is stored locally with a Least-Recently-Used cap of 5 conversations. Older conversations are dropped automatically.

What the Extension Does Locally

  • Monitors network requests on the current tab to detect analytics tracking calls
  • Parses tracking data locally in your browser for display in the DevTools panel
  • Stores your filter preferences, settings, AI configuration, and other state locally using Chrome's chrome.storage.local API
  • GTM Hub: Can optionally rewrite or block specific GTM container requests via declarativeNetRequest rules you create (Block / Swap / Preview). Rules apply only on the site they were created on and only in your local browser. A new rule lasts for the current DevTools session by default; only rules you explicitly save as "Always" stay active with DevTools closed, until you remove them
  • Consent Monitoring:Detects Consent Management Platforms (CMPs) on the page and reads their consent state to check whether tracking events comply with the user's consent choices. No consent data is collected or transmitted
  • Custom Endpoints: Allows you to define custom domain-to-tool mappings so the extension can recognize 1st-party proxies and CNAME-cloaked tracking endpoints. These mappings are stored locally in your browser
  • Cookie Monitoring: Reads cookies set by detected tracking platforms on the current page for display in the DevTools panel. Cookie data is processed locally and never transmitted

Permissions Explained

The extension requires the following permissions:

PermissionPurpose
webNavigationDetect page navigations to group events by page and clear events on new page loads
webRequestObserve network request URLs to detect tracking platforms (read-only, no request content is captured)
storageSave your preferences, settings, and AI configuration locally
sidePanelProvide a side panel view for a quick tracking summary from the browser toolbar
contextMenusProvide a right-click menu option to open the side panel
cookiesRead and manage cookies set by tracking requests for the cookie detector feature
declarativeNetRequestApply user-created GTM intercept rules (Block / Swap / Preview) to selected GTM container requests
declarativeNetRequestWithHostAccessAllow GTM intercept rules to act on the host you're currently debugging
scriptingInject the GTM debug/preview flag into the page when you use a Preview intercept rule. (The dataLayer monitor itself is a content script declared in the manifest, not injected through this permission)
<all_urls>Monitor network requests on any website you're debugging

The connect-src directive in the extension's content security policy allows network requests to:

  • https://api.eu.amplitude.com (anonymous usage analytics, opt-out available)
  • https://api.anthropic.com (only if you configure an Anthropic API key)
  • https://api.openai.com (only if you configure an OpenAI API key)
  • https://generativelanguage.googleapis.com (only if you configure a Google Gemini API key)

If you do not configure an AI provider, no requests are ever made to the three AI endpoints.

Data Storage

  • Session Data: Captured events are stored in memory and cleared when you close the DevTools panel or navigate to a new page
  • Preferences: Filter settings, defaults, and analytics opt-out preference are stored locally using chrome.storage.local
  • AI Configuration: API keys, selected provider, chosen model level, and feature toggles are stored locally under ai_config
  • AI Model Catalogue: The list of models your key can reach is fetched from your chosen provider and cached locally for 7 days so the extension can resolve your model level to a current model. It is a cache only and can be deleted at any time
  • AI Usage History: Token counts and daily request counts are stored locally with a 30-day rolling window
  • AI Chat History: Up to 5 most-recent conversations stored locally; older entries are dropped automatically
  • GTM Hub Rules:Container block, swap, and preview rules are stored locally per domain using Chrome's storage API
  • Custom Endpoints: Custom domain-to-tool mappings are stored locally in your browser and do not sync across devices
  • Analytics: Anonymous usage data is sent to Amplitude (EU) unless you opt out

Third-Party Providers

When you opt in to AI features, your data flows directly to the third-party provider you choose. Their privacy policies and data handling terms apply:

Event Watcher does not retain, log, or proxy any AI request or response.

A note on free tiers

What your provider may do with the data differs by tier, and the free tier is usually the permissive one.

Google's Gemini API terms state that on the unpaid tier, submitted content and generated responses are used to "provide, improve, and develop Google products and services", and that "human reviewers may read, annotate, and process your API input and output". On the paid tier, Google states it does not use prompts or responses to improve its products. Anthropic states that by default it will not use your inputs or outputs from its commercial products to train its models, and OpenAI states that data submitted to its API has not been used to train or improve its models by default since March 1, 2023. Both allow an explicit opt-in.

This matters here more than it would in a general-purpose AI tool, because captured tracking payloads routinely carry identifiers belonging to the visitors of the site you are debugging (client IDs, click IDs, hashed email addresses), and Event Watcher does not redact those (see the redaction note above). Event Watcher recommends the Gemini free tier as the easiest way to start, and that recommendation stands for debugging your own sites. If you are debugging a client's site, use a paid tier or clear it with the client first.

Event Watcher cannot enforce this and does not monitor which tier your key is on; the choice and the responsibility are yours. These summaries reflect the providers' published terms as of August 19, 2026; the terms are theirs to change, so treat the linked originals as authoritative.

Website Analytics (eventwatcher.dev)

This website (separate from the extension) collects anonymous page-view analytics using Amplitude (EU data residency):

  • Page views and anonymous interaction events are tracked: which page of this site was viewed, which platform entry or install button was clicked, and how many results a platform search returned (the length of the search text is recorded, never the text itself), plus the browser language
  • A random device ID is stored in your browser's localStorage (key ew_device_id). It is not linked to your identity and is not shared with the extension
  • No cookies are used, and no cross-site tracking takes place
  • As with any web request, Amplitude receives your IP address when the beacon is delivered; data is processed on Amplitude's EU servers

You can remove the device ID at any time by clearing this site's browsing data, or block the beacon with any content blocker; the site works fine without it.

Contact

For questions about this privacy policy or the extension:

  • Author: Rune Andersen

Changes to This Policy

Any updates to this privacy policy will be reflected in the Chrome Web Store listing and on this page.