-
-
Notifications
You must be signed in to change notification settings - Fork 247
/
analytics.js
49 lines (45 loc) · 1.22 KB
/
analytics.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import Analytics from 'analytics'
import segmentPlugin from '@analytics/segment'
/* initialize analytics and load plugins */
const analytics = Analytics({
debug: true,
plugins: [
segmentPlugin({
writeKey: 'TpKoFHqy1g98bXjd3wdVp3JvkHJRl5Q5',
disableAnonymousTraffic: true,
}),
exampleProviderPlugin({
xyz: '123'
})
]
})
/* This is an example plugin */
function exampleProviderPlugin(userConfig = {}) {
return {
NAMESPACE: 'provider-example',
config: userConfig,
initialize: ({ payload }) => {
console.log('Load stuff')
},
page: ({ payload }) => {
console.log(`Example Page > [payload: ${JSON.stringify(payload, null, 2)}]`)
},
/* Track event */
track: ({ payload }) => {
console.log(`Example Track > [${payload.event}] [payload: ${JSON.stringify(payload, null, 2)}]`)
},
/* Identify user */
identify: ({ payload }) => {
console.log(`Example identify > [payload: ${JSON.stringify(payload, null, 2)}]`)
},
loaded: () => {
return true
},
ready: () => {
console.log('ready: exampleProviderPlugin')
}
}
}
window.Analytics = analytics
/* export analytics for usage through the app */
export default analytics