Netflix is one of the first names that come to mind whenever we talk about personalization. Everything from the home page to the recommendations, images and messages shown to users is personalized based on their preferences, interests and observed behavior. There are a number of ways in which Netflix is not only pioneering personalization but is also setting new records.
Drupal is the CMS of choice when it comes to creating content rich sites. However, it’s no longer enough to display the same content to all users. In a world where diversity is increasingly obvious and celebrated, websites have to step up their game and adapt to a wide range of users and their preferences.
While Netflix personalization is complex and composed of thousands of algorithms, it can be broken down into distinct use cases which can then be solved independently. Here, we will try to explain how Netflix’s personalization approaches to display tailored content to each user can be implemented in Drupal using existing modules and technologies.
Personalized Banner - Captain America: Civil War
Based on this blog, Netflix doesn’t have one product but “over a 100 million different products with one for each of our members with personalized recommendations and personalized visuals.” Netflix is unique in the way it shows recommendations to users; different members are shown different artworks for the same media content, based on their taste, preferences and relevancy.
Let’s say you wanted to enable a similar kind of personalization in Drupal, showing different banners for Marvel’s Civil War movie to different users, based on which character they like more—Captain America or Iron Man (though it is hard to decide that)—allowing users to engage more deeply with the platform. Here’s how you could go about it.
Implementation in Drupal
Smart Content Module
Drupal’s Smart Content, Smart Blocks and Smart Content Segments modules by Elevated Third can be used for this. Smart Blocks can be created to switch the banners based on the user’s segment.
Drupal’s personalization module can personalize content based on geolocation and taxonomy. For this, we will use taxonomies. Content can be tagged with “Captain America” or “Iron Man” and then the personalization module be used to show the relevant banner if users access the content tagged with these vocabularies.
Using Acquia Lift’s Profile Manager, segments can be defined (like Segment_CaptainAmerica and Segment_IronMan) to categorize visitors into these different buckets. Segment criteria could be based on Page Content and Persona Metadata. Content would be tagged with the specific persona taxonomy.
Lift’s Experience Builder can be used to customize the content that matches with the user's interest. A slot will be created on the page where personalized content would appear on the page and then a rule will be created and published to show the Iron Man banner for all users who belong to Segment_IronMan, and the Captain America banner for all users who belong to Segment_CaptainAmerica. A default rule to show the default banner can be created as well using the Experience Builder.
Personalized Search Results
A streaming platform like Netflix cannot rely on lexical matches to surface the content as these results might satisfy the intent of the search query but might fail to surface results that are of users’ interest. Not only does the search system have to bring up results that address the query intent, it also has to allow users to discover new content that may be of interest to them.
Netflix uses a system which blends “Recommendations” and search intelligently to surface highly engaging search results.
Implementation in Drupal
To implement personalization search results in Drupal, we can take advantage of Lift’s Decision API and the “Relevancy sorting” option of Solr search. We can influence the “Relevance score” to weigh the recommended content by the Decision API and show personalized content to the user. To boost the performance, personalized search results can be shown on the first few pages only.
Have you ever wondered how Netflix orders the various categories shown on its home page?
When one of us opens Netflix, the first category shown may be “Shows based on books”. However, when another person lands on the same page, they are shown a different category.
Or let’s look at it another way. How many genres and "subgenres" does Netflix list? Probably hundreds!
Now imagine if every time you wanted to watch a horror movie, you had to scroll through several categories which were listed alphabetically to reach “Horror”. Imagine the horror of having to do this every day, sometimes even several times a day, if horror happened to be your favorite genre. It sounds like the premise of a horror show!
Fortunately, Netflix has learned to remember our preferences. Once it knows that horror is your favorite genre, that will be the first one shown. Other genres that do not interest a user can then be hidden to avoid sensory overload. In other words, Netflix customizes the menu and featured content based on your preferences. Having a short and relevant menu rather than a long list of things a user can get lost in may result in a lot of conversions.
Implementation in Drupal
This can be accomplished in Drupal with the context and the context menu module. You can select which menu to show based on the context. Based on a user’s preference, we can show them a subset of the entire menu. This would help narrow down on the most relevant options for a particular user.
Personalization module/Acquia Lift
While these modules do not provide this functionality out of the box, they can be extended to deliver customized menus. The same functionality that is used to deliver paginated content can be used to filter menu items as well. The most relevant top menu items can then be shown to the user, and others can be hidden behind a “load more” button.
The Netflix recommendation engine algorithm allows users to discover content that they enjoy but would otherwise likely never find. Powered by this recommendation engine, Netflix sends out personalized email notifications like the one below.
Implementation in Drupal
The personalization module builds the user profile and can be used to classify users in different segments. On top of this, custom Drupal code can be written to send personalized emails to specific user segments. This solution may not be ideal if there are a large number of personas. A lot of custom code may need to be written to achieve this with the personalization module.
Acquia Lift and Acquia Journey/Mautic
Not much is available out of the box to send personalized notifications to users apart from Acquia Lift along with Acquia Journey. Unified Customer Profile is stored on Lift, and users are added to different segments. Using Journey, targeted personalized emails can be sent to users.
Acquia is working on integrating Mautic with Acquia Lift to provide Open Marketing Cloud Automation solutions as part of Acquia Marketing Cloud. This opens up an opportunity to personalize marketing emails and other notifications as well. Acquia Lift APIs can be integrated with custom solutions to achieve the same result.
Choosing the Right Personalization tool for Drupal
The technology you use and the personalization solution that’s right for you depends upon your organization’s contextual digital experience strategy. If the need is to contextualize the Drupal menus, Context and Context menu is the way to go. If the use case is to switch the content using Drupal Blocks on a few pages, the Smart Content Module and Personalization module might be enough.
Acquia Lift is the only tool that is enterprise-ready today to build contextual digital experiences with Drupal. It stores a Unified Customer Profile which is very structured and flexible, and data from user interactions from all touchpoints is captured to build the Customer Profile.
Lift also provides Content Syndication and an intuitive way to centrally manage the variations of content using Content Hub, which can be used from anywhere to personalize across digital platforms. Other features like real-time, adaptive segmentation, behavioral targeting, A/B testing, setting up Goals, APIs to pull and analyze customer data, and out-of-the-box integration with Drupal make it an ideal solution for enterprises.
Prateek Jain, Director, Digital Experience Services
Offline, if he's not spending time with his daughter he's either on the field playing cricket or in a chair with a good book.