Essentials - What Makes a Good Feed?

What makes a good feed - there is no one-size-fits-all answer to this question, as it depends on what service or app you are building, and what your target audience might be. But that's also exactly why 'mbd is here, to provide you with all the tools and options to easily make good feeds for your specific app and users.


Here we will describe some essential elements that help make a good feed.


Personalization

This is probably the most obvious. A good feed is likely personalized to the viewing user. It is personalized to show content that is relevant to the user - things that the user would find interesting, surrounding topics the user likes, created by people they follow or have an an interest on.


If a same generic feed is shown to all users, it is almost certain that a lot of users would be turned off seeing a lot of generic content that they don't find interest in.


Predicting user interactions

Recommendation systems are trained to predict user interactions or engagement - i.e. given that the current user has liked, commented, shared, and viewed but not liked, different pieces of content, an AI model can be trained to predict what the user would likely interact with again in the future. Interaction is a proxy to user interest in the content, and showing high concentration of content that the user is likely to interact with will likely increase the perceived quality of the feed, and increase user engagement as a result.


Cross-chain holistic user profile

With web3 services, user interactions live on chain. With Farcaster already, anyone can build a new client and leverage all the user profile and interaction data already existing on the Farcaster chain. But this is just the tip of the iceberg for what's possible.


There are tons of different chains serving different purposes and applciations. Imagine you can aggregate user interest based on a much wider range of topics, including NFT mints, token trades, or any other interactions that are recorded on chain. This opens up to a potentially much more powerful system for personalization!

Giving control to end users

As engaging as the current major web2 social media platforms might be, there has always been the sentiment that the big corporations have full control over what the users see in their feed, and that is often based on screen-time maximization as a way of increasing ad-revenue opportunities.


With all the configurable options we offer at 'mbd, we can start putting some of the control back to the end users, letting them control the behaviour of the recommendation system. You can already achieve some of this with all the different API parameters available, but we are working towards a future where users have a lot more control in how the recommendation system should behave.


Feed Freshness

As much as personalization is a key for feed quality, having a "fresh" feed is probably as important. If everytime a user comes back to the APP, the user sees the same feed, he or she will likely perceive the feed quality as lower, and disengage with the APP.


The recommendations served through our public APIs are built on on-chain, publicly available data. With this, we currently work behind the scenes to make the feed fresh with the following mechanisms.

Near-realtime recommendation updates

Whenever a user interacts with an item, the interaction gets written on chain, passed to our system, and gets injected into our AI models for inteference. Based on this new information, our model updates itself and changes the recommendations for the particular user.

impression_count

Since the information of whether or not a user has actually "seen" an item has is not stored on chain (we refer to these as potential "private data", data that only lives in your app), there is no way to only use on-chain data to obtain this information. We use impression_count as a way to compensate for this. When an API is called with an impression_count, the top n items (specified by the impression_count) is considered seen by the user, and the same API will not include those items in subsequent API calls. This mechanism helps make the user see a different feed everytime, and improve the perceived freshness of the feed.

Hide interacted items



Relevance to Your Audience

Content relevance to your audience is another factor for a making a good feed. Say you're building a music-focused social APP. You probably don't want to be showing content that gives financial advice.

Filter parameters

Our APIs come with a wealth of filter parameters to taylor the content feed to different needs. Take the music-focused app as an example. You can specify music in AI labels, music in publication types, and perhaps specify some author IDs and channels that you feel are relevant.


Do learn about all the filter options in our Feed Features Explained guide or in our API docs.


Cold Start

If a user is new to the system and has no interaction history, or if the user has not been actively interacting with content for a long period of time, there is not enough signals to recommend a "good" feed to the user.


In these cases, you want to have a carefully thought out type of feed to be shown to the users, so that they still see a feed that is high quality as perceived.


Our APIs provide the option to specify a different feed behaviour when the system detects that the user is considered "cold start". Please do check out the Cold Start Configurations section in our Feed Features guide.


Custom Model & Private APP Data

As mentioned above, there are data that are not stored on chain that can help make recommendations and overall feed quality better. We do work with enterprise customers to inject "private data" and deploy a custom enhanced model based on that. Please contact has at [email protected] to discuss!