-- "I found this note stabbed to my door! ... man."
Wildberry Princess is a JavaScript library for abstracting out Google Analytics (analytics.js), KissMetrics, Segment.io, FullStory, Customer.io and perhaps other analytics platforms in the future.
// Google Analytics initialized somewhere...
// Kissmetrics initialized somewhere...
// Segment.io initialized somewhere...
// FullStory initialized somewhere...
// Customer.io initialized somewhere...
// Setup
const analytics = new WildberryPrincess({
useGoogleAnalytics: true,
useKissMetrics: false,
});
// Set dimensions and users.
if (current_user_id != null) {
analytics.identify({ id: current_user_id, name: 'Name', email: 'email@domain.tld' });
}
if (app_id != null) {
analytics.set('dimension1', app_id);
}
// Track user actions, specifically clicks, where the label is the text content (button, div, tab, etc.) or form input name (input, select, textarea).
// analytics.trackUserActions(selector, category, action, label, value)
analytics.trackUserActions('button', 'Button');
analytics.trackUserActions('input, select, textarea', 'Form Input');
analytics.trackUserActions('tab', 'Tab');
// Send events anywhere, like Backbone model actions.
// analytics.trackEvent(category, action, label, value)
analytics.trackEvent('Model', 'Destroy', this.constructorName);
// Track page views. Currently
// NOTE: KissMetrics is not included here to avoid event bloat 🤑
apptentive.analytics.trackPageView('/fake-page', 'A Cool Fake Title');
// Send eCommerce data.
const transaction_id = `${this.model.id}_${Date.now()}`;
const transaction = {
id: transaction_id,
affiliation: 'Candy Kingdom',
revenue: price,
shipping: '0',
tax: '0',
};
const item = {
id: transaction_id,
name,
category,
price,
quantity: 1,
};
analytics.trackEcommerce('clear');
analytics.trackEcommerce('addTransaction', transaction);
analytics.trackEcommerce('addItem', item);
analytics.trackEcommerce('send');
For more advanced use, please refer to the source.
npm run lint
npm run make
npm run test
npm run report
npm run make-dist-min
- Analytics.js Field Reference
- Cookies and User Identification
- Custom Dimensions and Metrics
- Event Tracking
- Owen Kim - Segment.io Support
- Democritos Tsellos - FullStory Custom Fields
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request