A lightweight Google Analytics 4 tracking library for TypeScript, providing a simple and type-safe way to implement GA4 event tracking with support for generic events and triggers.
- 🎯 Type-safe GA4 tracking - Full TypeScript support with proper type definitions
- 🔄 Generic events - Automatically trigger additional events based on action patterns
- 🛡️ Error handling - Graceful error handling for all GA operations
- 📦 Lightweight - Minimal bundle size with no unnecessary dependencies
- 🚀 Easy integration - Simple API that works with any React or vanilla JS project
npm install @mirawision/gator react-ga4import { GAtor } from '@mirawision/gator';
// Initialize GAtor with your GA4 tracking ID
const gator = new GAtor({
trackingId: 'G-XXXXXXXXXX'
});
// Track a page view
gator.trackPageView();
// Track an event
gator.trackEvent({
category: 'User Interaction',
action: 'button_click',
label: 'signup_button'
});new GAtor(config: GAtorConfig)Parameters:
config.trackingId(string, required): Your Google Analytics 4 tracking IDconfig.events(GAEventMap, optional): Predefined event functionsconfig.genericEvents(GenericGAEvent[], optional): Generic events that trigger based on action patterns
Tracks the current page view using the current URL.
Tracks a custom event.
Parameters:
event.category(string, required): Event categoryevent.action(string, required): Event actionevent.label(string, optional): Event labelevent[key](any, optional): Additional custom parameters
interface GAEvent {
category: string;
action: string;
label?: string;
[key: string]: any;
}interface GenericGAEvent {
event: GAEvent;
triggers: string[];
}type GAEventMap = {
[key: string]: GAEventFunction | GAEventMap;
};const gator = new GAtor({
trackingId: 'G-XXXXXXXXXX',
events: {
buttonClick: () => ({
category: 'UI',
action: 'button_click',
label: 'cta_button'
}),
formSubmit: () => ({
category: 'Form',
action: 'form_submit',
label: 'contact_form'
})
}
});
// Use predefined events
gator.trackEvent(gator.events.buttonClick());const gator = new GAtor({
trackingId: 'G-XXXXXXXXXX',
genericEvents: [
{
event: {
category: 'User Interaction',
action: 'page_interaction'
},
triggers: ['click', 'scroll', 'hover']
}
]
});
// This will trigger both the original event and the generic event
gator.trackEvent({
category: 'UI',
action: 'click',
label: 'navigation_menu'
});gator.trackEvent({
category: 'E-commerce',
action: 'purchase',
label: 'premium_plan',
value: 99.99,
currency: 'USD',
transaction_id: 'txn_12345'
});GAtor includes comprehensive error handling to ensure your application continues to work even if Google Analytics is unavailable:
- Initialization errors are caught and logged
- Event tracking errors are caught and logged
- Missing window object is handled gracefully
- All errors are logged to console for debugging
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please open an issue on GitHub or contact us at support@mirawision.com.