I have integrated mixpanel in my react native application using analyticsServices but after using mixpanel some of the events where i integrated mixpanel are taking more time. For eg. login was taking maximum 3 seconds before now its taking 4 seconds. I made the mixpanel events async but still the issue persist. How to reduce this time.
import { Mixpanel } from 'mixpanel-react-native';
const trackAutomaticEvents = true;
const mixpanel = new Mixpanel("924d6af1d1e872f4e5ba7670df3a48f0", trackAutomaticEvents);
mixpanel.init();
const trackEventAsync = (eventName: string, eventProperties: { [key: string]: any }) => {
return new Promise<void>((resolve, reject) => {
try {
const startTime = performance.now(); // Record start time
mixpanel.track(eventName, eventProperties);
const endTime = performance.now(); // Record end time
const timeTaken = endTime - startTime;
console.log(`Event '${eventName}' tracked in ${timeTaken} milliseconds`);
resolve();
} catch (error) {
reject(error);
}
});
};
const AnalyticsService = {
identifyUser: (userId: string) => {
mixpanel.identify(userId);
},
trackAppOpen: async (properties?: { [key: string]: any }) => {
const defaultProperties = {
// Add default properties here if needed
};
try {
await trackEventAsync('App Open', { ...defaultProperties, ...properties });
} catch (error) {
console.error('Error tracking App Open event:', error);
}
},
trackLoginAttempt: async (username: string, properties?: { [key: string]: any }) => {
const eventProperties = {
username,
...properties,
};
try {
await trackEventAsync('Login Attempt', eventProperties);
} catch (error) {
console.error('Error tracking Login Attempt event:', error);
}
},
trackLoginSuccess: async (username: string, properties?: { [key: string]: any }) => {
const eventProperties = {
username,
...properties,
};
try {
await trackEventAsync('Login Success', eventProperties);
} catch (error) {
console.error('Error tracking Login Success event:', error);
}
},
trackLoginFailure: async (username: string, properties?: { [key: string]: any }) => {
const eventProperties = {
username,
...properties,
};
try {
await trackEventAsync('Login Failure', eventProperties);
} catch (error) {
console.error('Error tracking Login Failure event:', error);
}
},
trackTimetableCreatedSuccess: async (properties?: { [key: string]: any }) => {
const defaultProperties = {
// Add default properties here if needed
};
try {
await trackEventAsync('Event Created - Success', { ...defaultProperties, ...properties });
} catch (error) {
console.error('Error tracking Event Created - Success event:', error);
}
},
trackTimetableCreationFailed: async (properties?: { [key: string]: any }) => {
const defaultProperties = {
// Add default properties here if needed
};
try {
await trackEventAsync('Event Created - Failure', { ...defaultProperties, ...properties });
} catch (error) {
console.error('Error tracking Event Created - Failure event:', error);
}
},
};
export default AnalyticsService;
when i'm using login event to track the login, it is taking more time how to reduce it.
I tried using async-await to reduce time of the main events but it is not working. I am expecting the tracking of events in mixpanel does not take much time.