diff --git a/client/composables/useAmplitude.js b/client/composables/useAmplitude.js index 19a598a6..bc220b08 100644 --- a/client/composables/useAmplitude.js +++ b/client/composables/useAmplitude.js @@ -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 } }