export function trackLogout() { if (!trackingEnabled) { return; } track('Logout'); //Mixpanel.removePushToken(); Mixpanel.reset(); Analytics.setUserId(null); }
export function track(eventName: string, params: ?Params) { if (!trackingEnabled) { return; } if (params != null) { const firebaseSafeParams = {}; for (let key of Object.keys(params)) { firebaseSafeParams[firebaseSafe(key)] = params[key]; } AppEventsLogger.logEvent(eventName, 1, params); Mixpanel.trackWithProperties(eventName, params); Analytics.logEvent(firebaseSafe(eventName), firebaseSafeParams); } else { AppEventsLogger.logEvent(eventName, 1); Mixpanel.track(eventName); Analytics.logEvent(firebaseSafe(eventName)); } }
async function setupPersonProperties() { const token = await AccessToken.getCurrentAccessToken(); if (!token) { return; } Crashlytics.setUserIdentifier(token.userID); Mixpanel.identify(token.userID); Analytics.setUserId(token.userID); const user = await performRequest('GET', 'me', {fields: 'id,name,first_name,last_name,gender,locale,timezone,email,link'}); const now = new Date().toISOString().slice(0,19); // Trim off the fractional seconds from our ISO?UTC time Crashlytics.setUserName(user.name); Crashlytics.setUserEmail(user.email); Mixpanel.set({ '$first_name': user.first_name, '$last_name': user.last_name, 'FB Gender': user.gender, 'FB Locale': user.locale, 'FB Timezone': user.timezone, '$email': user.email, 'Last Login': now, }); Mixpanel.setOnce({'$created': now}); Analytics.setUserProperties({ 'FBFirstName': user.first_name, 'FBLastName': user.last_name, 'FBGender': user.gender, 'FBLocale': user.locale, 'FBTimezone': user.timezone.toString(), 'FBEmail': user.email, 'LastLogin': now, }); }