DXP Examples

The following is a list of personalisation and customisation that has been added to this site:

Audience Tracking

When a user visits an Event, the system stores what kind of event it is in a JSON array. Currently this is either "Rock" or "Chill".

The system also stores what the most visited event Genre is, we can then use that to display custom Drupal Blocks based on that stored data using the Smart Content and Personified modules.

User Information

Using an IP lookup (https://ipregistry.co/) we are able to uncover information about the user such as:

  • Country
  • Time of day (Generalised into Morning or Afternoon)
  • Season (Calculated from the Month and their latitude being greater or less than 0)
  • Views (How many seperate pages has the user viewed)

Using Country, Time of Day and Season, content and graphics can be personalised for the users.

For example, pre-filling in forms with Country, language specific greeting text, changing colours based on time of day.

Views count is used to see how engaged someone is.  Users with a higher number are visiting lots of pages on the website and would need less guidance and direction.

History

We are also able to track the users History, which is currently the last five pages that the user has visited.  This would be handy if the content was very referential between pages and sections with lookups, and the user is constantly jumping back and forth between pages.  A navigation aid on the side showing the user where they are and how they got there can help them navigate.

Search

The search bar in the top right has been enhanced to store the users 5 previous search terms and provide them in a quick select drop-down menu.  This allows users who visit the site to be able to easily search for the same terms they have used before.

Additionally, an Asyncronys search was created on the React Components page, which is a search of the Event content type, where each key-stroke in the search field triggers a search and populates the area below it.

 

Nothing in the above examples has required custom module development, only custom themeing and a few contributed modules.