feat: track recommendations group (#793)
This commit is contained in:
@@ -30,9 +30,9 @@ import {
|
||||
import { getAllPossibleQueryParams } from '../data/utils';
|
||||
import FormFieldRenderer from '../field-renderer';
|
||||
import {
|
||||
activateRecommendationsExperiment,
|
||||
activateRecommendationsExperiment, RECOMMENDATIONS_EXP_VARIATION, trackRecommendationViewedOptimizely,
|
||||
} from '../recommendations/optimizelyExperiment';
|
||||
import { trackRecommendationsViewed } from '../recommendations/track';
|
||||
import { trackRecommendationsGroup, trackRecommendationsViewed } from '../recommendations/track';
|
||||
import { saveUserProfile } from './data/actions';
|
||||
import { welcomePageSelector } from './data/selectors';
|
||||
import messages from './messages';
|
||||
@@ -79,7 +79,11 @@ const ProgressiveProfiling = (props) => {
|
||||
const queryParams = getAllPossibleQueryParams(registrationResponse.redirectUrl);
|
||||
if (enablePersonalizedRecommendations && !('enrollment_action' in queryParams)) {
|
||||
const userIdStr = authenticatedUser.userId.toString();
|
||||
const showRecommendations = activateRecommendationsExperiment(userIdStr);
|
||||
const variation = activateRecommendationsExperiment(userIdStr);
|
||||
const showRecommendations = variation === RECOMMENDATIONS_EXP_VARIATION;
|
||||
|
||||
trackRecommendationsGroup(variation, authenticatedUser.userId);
|
||||
trackRecommendationViewedOptimizely(authenticatedUser.userId);
|
||||
setShowRecommendationsPage(showRecommendations);
|
||||
if (!showRecommendations) {
|
||||
trackRecommendationsViewed([], true, authenticatedUser.userId);
|
||||
|
||||
@@ -14,13 +14,7 @@ export const eventNames = {
|
||||
* @param {String} userId user id of authenticated user.
|
||||
* @return {boolean} true if the user is in variation else false
|
||||
*/
|
||||
const activateRecommendationsExperiment = (userId) => {
|
||||
const variation = optimizelyInstance.activate(
|
||||
RECOMMENDATIONS_EXP_KEY,
|
||||
userId,
|
||||
);
|
||||
return variation === RECOMMENDATIONS_EXP_VARIATION;
|
||||
};
|
||||
const activateRecommendationsExperiment = (userId) => optimizelyInstance.activate(RECOMMENDATIONS_EXP_KEY, userId);
|
||||
|
||||
/**
|
||||
* Fire an optimizely track event for post registration recommended course card clicked.
|
||||
@@ -31,7 +25,18 @@ const trackRecommendationCardClickOptimizely = (userId, userAttributes = {}) =>
|
||||
optimizelyInstance.track(eventNames.recommendedCourseClicked, userId, userAttributes);
|
||||
};
|
||||
|
||||
/**
|
||||
* Fire an optimizely track event for post registration recommendation viewed.
|
||||
* @param {String} userId user id of authenticated user.
|
||||
* @param {Object} userAttributes Dictionary of user attributes (optional).
|
||||
*/
|
||||
const trackRecommendationViewedOptimizely = (userId, userAttributes = {}) => {
|
||||
optimizelyInstance.track(eventNames.recommendationsViewed, userId, userAttributes);
|
||||
};
|
||||
|
||||
export {
|
||||
RECOMMENDATIONS_EXP_VARIATION,
|
||||
activateRecommendationsExperiment,
|
||||
trackRecommendationCardClickOptimizely,
|
||||
trackRecommendationViewedOptimizely,
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@ export const LINK_TIMEOUT = 300;
|
||||
|
||||
export const eventNames = {
|
||||
recommendedCourseClicked: 'edx.bi.user.recommended.course.click',
|
||||
recommendationsGroup: 'edx.bi.user.recommendations.group',
|
||||
recommendationsViewed: 'edx.bi.user.recommendations.viewed',
|
||||
};
|
||||
|
||||
@@ -43,7 +44,18 @@ export const trackRecommendationsViewed = (recommendedCourseKeys, isControl, use
|
||||
);
|
||||
};
|
||||
|
||||
export const trackRecommendationsGroup = (variation, userId) => {
|
||||
sendTrackEvent(
|
||||
eventNames.recommendationsGroup, {
|
||||
variation,
|
||||
page: 'authn_recommendations',
|
||||
user_id: userId,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
export default {
|
||||
trackRecommendationsClicked,
|
||||
trackRecommendationsGroup,
|
||||
trackRecommendationsViewed,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user