Creating a Unique Experience for Every User: Personalizing Drupal Websites
We have been busy adding new features to the website personalization engine we have worked on for the past few months. We made this primarily for our website, which has more than 110k page views monthly from organic searches. If we could show the right message to the right visitor on our website, our chance of converting the visitors into clients would increase. Pieces of this system were deployed to our website, and we started seeing results.
I will talk about that later; now, let me talk about the new feature we deployed. We can now display Drupal blocks based on the visitor's attributes. This feature will allow you to display different content on your Drupal pages based on the attributes of the user visiting the site. This way, you can tailor the pages to each visitor's specific interests and needs, leading to a better user experience and increased engagement.
E.g. If you want to customize your home page with a few elements that should display only to those who come from an ad campaign, Or you want to show a prominent career-related ad on your home page if the user is visiting the website from popular job portals.
What can a personalization engine do for you?
The personalization engine will allow us to display different content on the website based on information we know about the individual user visiting.
For example, if they have previously shown an interest in our Drupal services, they will see a block on the homepage that speaks explicitly to that interest. On the other hand, if they are interested in our media platform offerings, they will see a completely different block tailored to that interest.
The Benefits of Personalization
The benefits of this type of personalization are numerous.
1) It leads to a much better user experience. Users who see content relevant to their interests are more likely to spend time on the website and engage with it. This leads to a higher likelihood of them taking action, such as making a purchase or filling out a form.
2) It helps us better understand our audience. By gathering data about individual users, we can gain insights into what they're looking for and what kind of content resonates with them.
The implementation
The block_field module is a helpful tool that can bring available blocks as a field, which can be inserted into any entity. For implementing a prototype, we created a custom block type with a block field as a multi-value field. This made it easy for us to render the different versions of content we wanted to display to different segments of users in one place.
The rest of the code is part of the website personalization engine, which decides which blocks should appear on the placeholder. The rule engine and persona detection engine do all the heavy lifting and decide which one to show. The message delivery system then picks the right block from the list and delivers it to the user.
We need to address some complexities, like Flashes of unstyled content (FOUC) or increased CLS value due to the block's size difference; I will talk about these issues in detail in another article.
Results and Future Plans
The deployment of the personalization engine feature is still in its early stages, and as such, results are not yet available. However, we're continuously monitoring the data and preparing a report to give us a more in-depth look at the impact of this new feature.
We're confident that the ability to tailor content to individual users' specific needs and interests will enhance the user experience and increase engagement. The report will provide further insights into the results and impact of this feature, and we're excited to see how it will improve our website's ability to convert visitors into clients.
Let me know if you want an early preview or more details about the personalization engine we are working on.