Getting started with Drupal personalization
With the right approach, it's possible to build personalised websites with Drupal using a number of open source modules.
Any Drupal personalization project needs to start with a solid foundation. The following pieces of the puzzle need to be in place for success.
Drupal is well known for its ability to model content and entries related to the content. In a personalisation project typical content types would be page, article, event, promotion, audience and topic. Both audience and topic can be used to classify the content. Furthermore, the user also needs to be modelled with certain user attributes driving the way content is retrieved from the system. A solid ontological framework is therefore needed for a site where personalisation is needed.
A typical web project will involve a discovery phase where user personas are identified, along with common tasks they would like to perform on the site. This is mapped into paths through the site which in turn involves interaction with content of different types. A personalization project takes this process to the next level where the user context takes on a much more important role. User journeys can be mapped to include personalized content to support the user and to drive the user forward in the task they are engaged with.
Personalization works best when there is content which is able to support it. Content needs to be available for the various audiences and interest groups which may be accessing the site. Well structures content help define the affinities users will have for certain content. It is needed for recommendations and to keep people engaged with the site. Site owners therefore need to pay attention to the type of content which will be on the site and who will be producing it.
It takes a team to build a site
It takes a team to build and maintain a site. Editors, marketers and and site builders need to come together for a successful Drupal personalisation project.
Editors produce and manage content which forms the heart of the website. They need a clean and powerful interface which allows them to create the content they need to convey information and tell their story. The content will generally be structured in such a way to support the personalization efforts of the site. A Drupal site for personalisation should include a clearly defined content model for classifying content as well as a number of editor tools for building componentized web pages.
Marketers are driven by a need to communicate messages as effectively as possible, with the aim of altering the behaviour of an individual . On a website the needs of a marketer are similar to those of an editor - they need a clean and powerful interface. However, the content they produce needs to target the attributes of the individuals they wish to speak to. A Drupal site for personalization should model user attributes which are important and allow content to be created for them.
Site builders need to pull all of this together. In order to do this they need to combine knowhow and experience to combine the right collection of Drupal personalization modules. The modules which are showcased on this page will provide you with the required tool. A little bit of knowhow from experienced Drupal site builders will help you get there.
Below are a set of 100% open source Drupal projects which can be combined to form the foundation for a personalized Drupal site.
Recombee is a SaaS recommendation engine. It provides recommendations to users based on their behaviour and the behaviour of others. It is able to use collective intelligence to make recommendations which suit the current user. It is also able to utilise item similarity and other metrics to improve the recommendations it gives. Morpht has developed the Recombee and Search API Recombee modules for easy integration into Drupal. Recombee is based on JSON Template for doing the transformation.
Sajari is an AI powered search engine with many powerful features for superior search experience for users. Its main feature is that it is able to promote popular search results for queries, ensuring that relevant and helpful content is returned. It also supports query recommendations, typos, synonyms, item promotion and excellent search metrics. Morpht has developed the Sajari module which exposes a number of React components to handle faceted search. Sajari is based on JSON Template for doing the transformation.
JSON Template is a utility module which can be used by other front end based modules. It is able to transform JSON data to HTML using templating engines such as Handlebars and others. Themers are able to define their own templates as plugins in the theme layer. Editors are then able to select these templates to transform the data they way they wish. JSON Template enables editors to decide how data will be displayed.
The Smart Content module allows blocks to be displayed depending on the values of client side variables which can be taken from localstorage or cookies. The decision to display a block or not is made 100% on the client side. Smart Content opens up a lot of possibilities for customising what is shown to the user.
Google Tag Manager offers a very flexible backend interface for adding custom scripts, or tags. It can therefore be used to orchestrate various duties including page tracking and event logging on a site. With a bit of knowhow it can be customised to collect rich analytics data which matches the ontology for your site, adding a lot more value and insights into how people are engaging with your Drupal website.
Morpht, a Drupal agency, has worked on many of the above components to provide a toolkit which works together to provide a suite of tools for Drupal personalisation and customization. If you are interested in building a new site or would like to include some of the futures in a pre-existing site, we would love to hear about your project to discuss how it may benefit from personalisation.