Fix Amplitude: 1 instanciation, track utm
This commit is contained in:
parent
1ae0420656
commit
a4b7bfdbe4
|
|
@ -1,39 +1,50 @@
|
|||
import amplitude from "amplitude-js"
|
||||
import amplitude from 'amplitude-js'
|
||||
|
||||
export const useAmplitude = () => {
|
||||
let amplitudeClient = null
|
||||
|
||||
export function useAmplitude () {
|
||||
const config = useRuntimeConfig()
|
||||
const amplitudeCode = config.public.amplitudeCode
|
||||
const amplitudeClient = amplitudeCode ? amplitude.getInstance() : null
|
||||
if (amplitudeClient) {
|
||||
amplitudeClient.init(amplitudeCode)
|
||||
if (!amplitudeClient && amplitudeCode && !process.server) {
|
||||
amplitudeClient = amplitude.getInstance()
|
||||
amplitudeClient.init(amplitudeCode, null, {
|
||||
includeReferrer: true,
|
||||
includeUtm: true,
|
||||
includeGclid: true,
|
||||
includeFbclid: true
|
||||
})
|
||||
}
|
||||
|
||||
const logEvent = function (eventName, eventData) {
|
||||
if (!config.public.env === "production" || !amplitudeClient) {
|
||||
console.log("[DEBUG] Amplitude logged event:", eventName, eventData)
|
||||
if (!config.public.env === 'production') {
|
||||
console.log('[DEBUG] Amplitude logged event:', eventName, eventData)
|
||||
}
|
||||
|
||||
if (!amplitudeClient) {
|
||||
return
|
||||
}
|
||||
|
||||
if (eventData && typeof eventData !== "object") {
|
||||
throw new Error("Amplitude event value must be an object.")
|
||||
}
|
||||
if (eventData && typeof eventData !== 'object')
|
||||
throw new Error('Amplitude event value must be an object.')
|
||||
|
||||
amplitudeClient.logEvent(eventName, eventData)
|
||||
}
|
||||
|
||||
const setUser = function (user) {
|
||||
if (!amplitudeClient) return
|
||||
if (!amplitudeClient) {
|
||||
return
|
||||
}
|
||||
amplitudeClient.setUserId(user.id)
|
||||
amplitudeClient.setUserProperties({
|
||||
email: user.email,
|
||||
subscribed: user.is_subscribed,
|
||||
enterprise_subscription: user.has_enterprise_subscription,
|
||||
enterprise_subscription: user.has_enterprise_subscription
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
logEvent,
|
||||
setUser,
|
||||
amplitude: amplitudeClient,
|
||||
amplitude: amplitudeClient
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue