All notable changes to the EmDash Analytics Plugin will be documented here.
- usePluginAPI shim — Replaced missing
usePluginAPIimport from@emdash-cms/adminwith a local shim built onapiFetch,parseApiResponse, andAPI_BASE, which are the real exports in@emdash-cms/admin0.1.0; resolves the broken Astro build (#6) - Removed postinstall patch — Dropped
postinstallscript andpatch-packagefrom published files;patch-packagecannot locate emdash from inside a consumer'snode_modulestree (#6) - settingsSchema removed — Drops
settingsSchemato eliminate the/_emdash/api/plugins/settings/admin404 caused by EmDash's PluginRegistry colliding the/settingspage path with the plugin ID (#9) - Kysely security override — Adds an npm override pinning kysely to
^0.28.14to resolve a security vulnerability;emdash@0.1.0pinskysely@^0.27.0which has no patched version in that range (#8)
- Admin UI consolidated into tabbed layout — Tracking Pixels and License & Google settings are now subtabs under Marketing ROI (single sidebar entry) via a new
PluginLayoutcomponent; tab state is URL-hash–backed (#tracking,#settings) so refresh and back/forward navigation preserve the selected tab (#9) - settings/load and settings/save routes added — Exposes and persists
dniSwapNumber,dniScriptUrl,customHeadCode,customFooterCode, anddebug— runtime fields previously only writable via the removedsettingsSchema(#9) - License key input — Adds a password-type license key field to the settings page, replacing the auto-generated secret field from
settingsSchema(#9)
- Bumped esbuild → 0.27.7, Vite → 8.0.3, Vitest → 4.1.2 via Dependabot (#7)
- Added npm publish config (
files,publishConfig) topackage.json - Added
scripts/postinstall.mjsto patch@emdash-cms/adminafter install (subsequently removed in 1.0.2)
Initial release. Tag management, native ad platform tracking pixels, GA4 and Search Console OAuth, header/footer script injection, UTM attribution engine, and call tracking provisioning for EmDash CMS.
- Google Tag Manager injection — Automatic
<head>and<body>injection with noscript fallback - Google Analytics 4 — Native toggle + one-click OAuth connection; sessions, users, and traffic sources in the EmDash admin
- Google Search Console — Clicks, impressions, CTR, and average position via OAuth
- Native ad platform tracking pixels — One-toggle setup with built-in help guides for Meta (Facebook) Pixel, LinkedIn Insights Tag, TikTok Pixel, Microsoft (Bing) UET Tag, Pinterest Tag, and Nextdoor Pixel
- Header/footer script injection — Paste in any third-party snippet (Hotjar, Clarity, CallRail, etc.)
- UTM persistence engine — First-touch attribution captured in cookies and pushed to dataLayer
- Call tracking provisioning — Local and toll-free tracking numbers provisioned directly from the EmDash admin
- Basic call log — Caller ID, duration, timestamp, and attributed marketing source per call
- Three-tab admin UI — Marketing ROI dashboard, Tracking Pixels configuration, and License & Google settings
- Compare-and-swap settings saves — Atomic conflict detection prevents race conditions between admin tabs
- Ed25519 license validation — Cryptographic domain-bound license verification with KV cache (expiry driven by the signed token, not a fixed TTL)
- Fail-open architecture — Cached tracking scripts keep running if the backend is temporarily unreachable