| 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
- Copy
assets/ga4-event-tracker.jsinto the site (for example,js/ga4-event-tracker.js). - Load it after gtag or GTM (or at the end of
body). - Add data attributes to elements you want to track.
- Validate in GA4 DebugView.
Example HTML
<button
data-ga4-event="button_click"
data-ga4-label="hero_signup"
data-ga4-category="CTA"
data-ga4-params='{"link_text":"Start free trial","value":1,"currency":"USD"}'
>
Start free trial
</button>
Common Tasks
Add a tracked element
- Add
data-ga4-eventwith a stable, action-based event name. - Use
data-ga4-labelfor human-readable context (button text or placement). - Use
data-ga4-paramsfor 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.mdfor event naming and parameter guidance. - Prefer stable, language-agnostic event names and use labels for display text.
Troubleshooting
- If
gtagis not available, the tracker falls back todataLayerfor 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.