1.3.0 • Published 5 years ago
@s-ui/analytics v1.3.0
sui-analytics
Description
This package adds an abstraction layer on top of segment.com's javascript library
Usage
After adding your Segment snippet into your html, you'll need to include this package in order to be able to fire events.
sui-analytics will be an object with the methods described here
In your html page (SPA / Monolith docs)
<script type="text/javascript">
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t,e){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.1.0";
analytics.load("YOUR_WRITE_KEY"); // your write key must be set here
}}();
</script>
In your modern and beautiful JavaScript...
import suiAnalytics from '@s-ui/analytics'
In your monolithic JavaScript...
// First load the UMD module.
<script src="https://unpkg.com/@s-ui/analytics/umd/index.js"></script>
<script>
// Then trigger all the events you need referencing the right namespaced
// object: `window.sui.analytics`. For more info see the "Events" section below.
window.sui.analytics.identify('your user id', {});
window.sui.analytics.track('your event', {});
window.sui.analytics.reset();
</script>
Events
Identify - docs
suiAnalytics.identify('97980cfea0067', {
name: 'Peter Gibbons',
email: 'peter@initech.com',
plan: 'premium',
logins: 5
})
Track - docs
suiAnalytics.track('Registered', {
plan: 'Pro Annual',
accountType: 'Facebook'
})
Reset - docs
suiAnalytics.reset()