Nom des events et properties : préférer user_name à userName.
GoogleAnalytics sert à mesuré l'activité. On y envoit les events comme user_logged et page_view pour se rendre compte de l'activité général sur le site.
MixPanel sert à analysé le comportement des user. On y envoit les events d'un funnel et des propriétés déstiné a caractérisé le type de user.
InterCom sert à contacter le user. On y envoit des events pour déclancher un message automatique et des propriétés pour contacter un certain type de user.
- initServies
- newInstances
- userSignup
- userSignin
- userLogout
- send
- update
- register
- registerOnce
- unregister
- chaining
function({services}, {user})
Pour chaque {services}, appel la fonction init du service.
metrics.initServices({
GA: {trackingId: 'UA-XXXXXXXX-X'},
MP: {apiToken: 'abc123456789'},
IC: {app_id: 'abc123456789'}
})
Chaque service init se retrouve dans metrics.services :
metrics.services // Object {GA: "UA-XXXXXXXX-X", MP: "abc123456789", IC: "abc123456789"}
Si {user} est passer en argument metrics.user = {user}.
Seul metrics.user._id et metrics.user.email sont utilisé par metrics.js. Les autres properties du user sont disponible uniquement pour le debug.
function({services})
Pour chaque {services}, appel la fonction newInstance du service.
metrics.newInstances({
GA: {
trackingId: 'UA-XXXXXXXX-X',
params: {
name: 'ga_2'
}
}
})
function('userId', 'userEmail', {settings})
Pour chaque services init, appel la fonction setUp du service avec {settings} en argument. Puis pour chaque services init, appel la fonction set du service avec {settings} en argument.
metrics.userSignup('user1234', '[email protected]', {
user_hash: 'user_hash' // used by intercom for security
})
Equivaut a metrics.userSignin mais certain services ont besoins de setUp spécifique à la première connexion d'un user.
function('userId', 'userEmail', {settings})
Pour chaque services init, appel la fonction set du service avec {settings} en argument.
metrics.userSignin('user1234', '[email protected]', {
user_hash: 'user_hash' // used by intercom for security
})
function()
Reinitialise metrics.user et ferme certain services.
function({event}, ['services'])
Envoit un event sur chaque services spécifiés.
metrics.send({
name: 'eventName',
action: 'action', // optional only GA
label: 'label' // optional onnly GA
value: 1234, // optional only GA
data: {data} // optional
}, ['GA', 'MP', 'IC'])
// Or more simple
metrics.send({name: 'eventname'}, ['GA', 'MP', 'IC'])
L'historique des events est disponible dans metrics.events.
function({data}, ['services'])
Set les {data} sur le user en cour pour chaque services spécifiés.
metrics.update({
name: 'John Doe'
}, ['MP', 'IC'])
L'historique des updates est disponible dans metrics.updates.
L'état actuel du user (tout service confondu) est disponible sur metrics.user.
function({data})
Chaque appel à metrics.send se fera avec les {data} register.
metrics.register({
page: 'homepage'
})
metrics.send({name: 'click_cta'}, ['MP'])
metrics.events // [{name: 'click_cta', event: {name: 'click_cta', data: {page: 'homepage'}}, services: ['MP']}]
function({data})
Equivaut à register mais est appliqué uniquement sur le prochain send.
function(['data'] || bool, ['data'] || bool)
Le premier argument unregister les data register via register. Le deuxième argument unregister les data register via registerOnce.
Si bool === true toutes les data précédement register sont unregister.
Toutes les fonctions de metrics revoit metrics. Il est donc possible de chain les appels.
metrics.send({name: 'click_cta'}, ['GA'])
.update({country: 'France'}, ['MP'])