Personalization Tech Stack
Are you looking to build a personalization platform for your company? The buzzword status of personalization has made it harder to have clarity on it. Mostly because of a plethora of SEO optimized vendor-generated content. This post can help you think clearly about it.
I have been thinking about it for long. First, in a large public company where an in-house tool was the way to go. And, then recently in a mid-size company where using 3rd party tool seems like a smarter way to go.
The platform has many names. Personalization platform or engagement platform or consumer journey orchestration platform at its core are same. The platform enables you to serve contextual experience to a specific set of users. The tag line that we used to sell the idea was — the right messaging to the right users at the right time to drive engagement and profitability.
Thirty thousand foot view
To achieve personalization, you need to make sure your platform has capabilities around three areas:
You may like to check out BitCaffeonce. I’ll be using that as a model site to talk about how BitCaffe can look to build to a platform to serve personalized experiences.
- A capability that tells you the context of the users. A user is on the home page, or it is on your video page. A user is watching video just after landing on the video page or after browsing through multiple pages in your site. We used to call it activity-based segments in my last role.
- This one user groups based on user attribute or historical user activity. You need to have this information available to serve personalized content.
- Capability to create personalized content and optimize the content efficiently and cheaply. The ability to create an experience without repeated engineering effort is like a goldmine. The ability to experiment with different combination of expereince X activity segment X user segment makes the dold mine even more valuable.
Thousand-foot view: A conceptual view of the platform
A personalization platform at its core looks like below:
Let us peel the layers of the diagram in steps. Please read the diagram along with commentary below.
- The users type www.bitcoincaffe.com. The browser would start getting data from the cookies and send a request to the server for new content.
- The cookie has data on the visits of the users. It may have an old data file that has a list of experiments running on the site and the page. It is also possible to create user segments based on past visits of users. You may be able to create a segment based on # of visits in the past 7 days or past 30 days. Remember, data in cookies can also be used for personalization. The personalization tool that you see in the market makes use of data in the cookies. They don’t have access to your database to create segments.
- The third box is an experimentation platform (EXP). EXP stores data file that has a list of all experiments running on the site and/or the page. This data file is sent to the client, and if there are new experiments, the old data file gets updated. Once the client knows the live experiments, it sends Visitor id, the context of the experiment (attribute label) and the experiment name to the server.
- This box is a segmentation platform. You pass this platform visitor id and segment name, and it gives you back segment values of the users.
- This box does the job of a controller. It matches an experiment with an appropriate copy of the site. It also matches a user segment with an appropriate copy of the site when there is no experiment running.
- It is nothing, but it holds many copies of the site. For new users, the site experience is different, so it has a copy. Old users need to see a different experience, so there is another copy of the site. Users who have visited the video page of www.bitcoincaffe.com the experience must be different, so there is another copy of the site.
- This UI is available to internal users. You can define a new segment here. You can define a new segment here based on events available. The segmentation platform will make sure that the segment is available in minutes in production. A couple of years back, this feature was rarity. Earlier, product guys would put a request of a segment, and data engineering guys would have it ready in the segmentation platform. Now, companies have developed UI that gives business users flexibility to create a new segment. Fortunately, there are tools available in the market that gives you similar flexibility if you don’t want to build in-house tools.
- It is UI for experimentation tool. You can control the traffic of an experiment. Define the context of an experiment, start and stop experiments. You could also create an experience here. Through feature flagging, you can have specific components of your site parametrized, and play with the values of the parameter in the tool. Remember with the change in the value of the parameter the experience changes. You can change the color of the button, make it bigger, hide it. You can do algorithmic testing using this feature. Client-side integration of experimentation tool gives you even more flexibility to create experiences.
Putting it all together
The above diagram is a conceptual set up that help you create a personalized experience. Let us revisit the framework of thirty-thousand view once more, and see how can you tackle them.
- Context of users or activity-based segment: here, we need to make sure that we are tracking events that can help us create those segments. No need to pass this data element back to the server and then to the client for personalized experiences. You can create activity-based segment on client-side and use for serving experiences. After serving the experience, make sure that you pass the segment values for analytics and reporting purposes. All tag management solution tools can help you here.
- User-based segment: These segments are created based on the historical activity of users. These data sets are in the server. You need to have segmentation platform to create and serve the segments. In some cases, a simple user-based segment can be created with client-side cookie data. Third-party personalization platforms use these data for serving experience. You need a segmentation platform here. Tools like Braze or Lytics or audience management may come handy here.
- Experience building + experimentation flexibility: You need engineering resources to build complex experiences. The tools in the market are getting flexible every day. Now, you can build more and more experience through the UI. It is crucial to have an ability to experiment with the content and segment combination. Business users need to have the ability to create experiences and segments on the fly to achieve this.
Parting thoughts
Here is a couple of more thoughts to keep in the back of your mind as you embark on your journey of personalization.
- Please focus on creating a system and a platform where creating a personalized experience is cheap. Don’t delay the built of the platform on account of mapping out and finalizing the user journey. The building of a platform is like building lego pieces. You don’t need to stop building the pieces, because you still are debating the details of how you want to connect those lego pieces. Once the lego pieces are ready, you can build any of those options that you are currently debating on.
- What is essential for you to is to develop a personalized experience? If there is a long debate around buy vs. build, buy is the way to go. The assumption here is you are getting started with personalization now. First, start connecting available tools in the market as lego pieces to create engageing experience. You can work on creating your own lego pieces later. Delay in serving a engageing and relevant product experience is same as continue serving a sub-par experience even after you are aware of it.
- Don’t underestimate the need for UI. It gives product and marketing team flexibility to create segments. It is a big deal as it helps with the velocity of innovation. Experimentation is one way to figure out the personalized experience that works best for users. If you don’t have a cheap way to experiment with a segment definition, you would never try to learn it through experimentation.