# ga4-event-tracking > Add, review, or update GA4 event tracking on HTML websites using data attributes and a reusable JavaScript tracker. Use when wiring gtag or GTM dataLayer events, choosing event names/parameters, or extending a base GA4 tracking snippet for clicks and simple interactions. - Author: EryetChen - Repository: eryet/codex-skill-collection - Version: 20260102195058 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/eryet/codex-skill-collection - Web: https://mule.run/skillshub/@@eryet/codex-skill-collection~ga4-event-tracking:20260102195058 --- --- name: ga4-event-tracking description: Add, review, or update GA4 event tracking on HTML websites using data attributes and a reusable JavaScript tracker. Use when wiring gtag or GTM dataLayer events, choosing event names/parameters, or extending a base GA4 tracking snippet for clicks and simple interactions. --- # GA4 Event Tracking ## Overview Use this skill to instrument GA4 events in static HTML or simple web apps by attaching data attributes and a base JS tracker. ## Quick Start 1. Copy `assets/ga4-event-tracker.js` into the site (for example, `js/ga4-event-tracker.js`). 2. Load it after gtag or GTM (or at the end of `body`). 3. Add data attributes to elements you want to track. 4. Validate in GA4 DebugView. ### Example HTML ```html ``` ## Common Tasks ### Add a tracked element - Add `data-ga4-event` with a stable, action-based event name. - Use `data-ga4-label` for human-readable context (button text or placement). - Use `data-ga4-params` for extra GA4 parameters (JSON string). ### Extend the base tracker - Add more event types (e.g., `submit`, `change`, `input`). - Switch to event delegation for dynamic content. - Add defaults (category, labels) based on element classes or containers. - Add guardrails for invalid JSON in `data-ga4-params`. ### Apply naming conventions - Use `references/ga4-event-naming.md` for event naming and parameter guidance. - Prefer stable, language-agnostic event names and use labels for display text. ## Troubleshooting - If `gtag` is not available, the tracker falls back to `dataLayer` for GTM. - If neither gtag nor GTM is installed, events will not reach GA4. - Add temporary console logs to confirm event payloads. ## Resources ### references/ - `references/ga4-event-naming.md`: Common GA4 event naming and parameters. ### assets/ - `assets/ga4-event-tracker.js`: Base GA4 tracking script to copy and extend.