Search

Engineering Review: Boost Recommendation (EN)

To improve the boost navigation UX, we provide an API endpoint that recommends boosts to users based on various criteria.
In general, it is assumed that the number of recommended boosts is top 3 top 6.
(6 random boosts if the hierarchical relationship is not clear)

API Spec

api-server(@Get /v1/boost/recommended)
BoostRecommendationController → Returns response from the boost-server
boost-server(@Get /recommendation)
Based on the recommendation criteria get the boost promotion brand ID from orm, return the boost that matches the brand among all boosts currently visible to the user in the order specified by the recommendation criteria.
Recommendation criteria selection will be random or can be modified externally.
Random based on v1.0
There can be multiple active boost promotions of the same brand. These are treated individually.
Example: Yogiyo boost (at the time of update)
There should be no duplicate boost promotions in the recommendation list, and the boosts in the list must be available for the user to purchase immediately.
Example: Filtering process is needed for expired time attack boosts, maxed out first-come-first-served boosts, mission boosts that cannot be purchased, etc.
When the boost period is not valid for immediate purchase
When locked (if it is a card boost but the user is not a card user..)
Boost recommendation is meaningless right now as it is only open to card users based on v1.0.
When a user cannot purchase a boost type due to the characteristics of the corresponding boost type
Expired/unopened time attack, maxed out first-come-first-served, incomplete mission
If the user exceeds the number of purchases available for the boost campaign
If the boost has already been activated by the user, or if it is already included in the list of recommendations accumulated so far
When the number of purchasable boosts that meet the initially selected recommendation criteria is less than the set number of recommendations (6 based on v1.0)
1.
(Based on v1.0) Brand IDs are fetched in the order in which other card users purchase the most.
2.
If it's still not enough, get a random boost from all currently available boosts.
Since the app receives all information about enabled & visible promotions at startup, it will be sufficient to pass only the ID. - resolved: same information as given when entering the main screen

Recommendation Criteria

v1.0 - All recommendations except for Favorites are based on the last 30 days.

Boosts frequently purchased by user

Group all boosts purchased by the user by brand ID, and extract brand IDs in the order of the number of boosts
Not sure whether to group by boost promotion, group by boost campaign, or whether to join with the brand table and group by brand ID and then select the active boost promotions of the brand. - resolved: by brand

Boosts recently purchased by user

Extract the boost campaign brand IDs purchased by the user in time order from the boost table.

Boosts recently clicked by user (currently disabled)

This data is not in the DB.. How? -

Boosts added to user’s favorites

Extract brands marked as user’s Favorites in random order