Online marketing performance improvements
As part of our continuous effort to improving Kentico performance, we have focused on several Online marketing modules in Kentico 8.1. In this article I’ll walk you through the most noticeable improvements and changes.
Should you read this article? Definitely.
In this article you will find:
Contact groups (dynamic segments of Contacts)
We have lowered the performance footprint of Contact groups. This means, that when you turn on Contact tracking within Online marketing and set up dynamic Contact groups on your site, it now processes requests faster, meaning your website responds faster.
We have greatly reduced how long it takes to create a new Contact group. When you create a new dynamic Contact group, all historical Activities of all Contacts in the database are evaluated. This first-time evaluation is now much faster.
Please note: Actual Contact group rebuild time depends on various criteria such as: how complex is dynamic condition in a Contact group, how many Contacts and Activities are in your system, what server configuration is used, etc.
We have simplified the process of scheduling the recalculation of Contacts’ historical Activities within a Contact group. Now you can just check the relevant box to indicate whether a Contact group should evaluate historical Activities or not. If checked, the Contact group is evaluated once a day, a frequency sufficient for 99% of use cases, but can be changed to be more/less frequent to suit your scenario. This UI simplification leads to better performance as no excessive recalculation is scheduled on the web server.
Remember that all traffic on your website is immediately reflected in the Contact group – recalculation is required only:
- when you first create a Contact group (or Score or Persona)
- when you regularly import Contacts from a CRM
- when you have a dynamic condition in the Contact group that is based on a time or date, such as “Contact’s age is between X and Y” or “Contact has performed this activity in last X days”.
Scoring and Personas
Similar to improving Contact groups we have reduced performance overhead of using Scoring and Personas. Technically speaking, performance overhead on requests on a live site has now been minimized when Scoring is turned on, making your website faster. Also new Scoring rules are ready much sooner.
Please note: Actual Score or Persona rebuild time depends on various criteria such as: what rules are used, how many Contacts and Activities are on a web site, what server configuration is used, etc.
Minor improvements throughout Kentico
Performance improvements have also been applied to the core of Kentico, so all modules within the system now benefit. As this is a very technical topic, will be explained in detail in another blog post.
Logging of Activities with 10s delay
Since Kentico 6.0 there have been two ways to track Contacts on a Kentico website:
- With a 1-minute delay after their arrival on the live site – The default option.
- Immediately upon their arrival on the live site. Logging Activities immediately was specifically designed for Kentico showcase purposes. This option was enabled by web.config key:<add key="CMSLogActivityImmediatelyToDB" value="true">
In Kentico 8.1, Activities are processed within 10s (which can be further shortened to 1s) instead of 1 minute. As this shorter delay is suitable for demoing Kentico, the option to log Activities immediately is no longer required. We have removed this option.
Preliminary research among Kentico EMS customers shows that this change shouldn’t impact any existing projects. If you have concerns about your project, or you would like more information about this change, please send me an email: vita.janecek@kentico.com.
Logging Activities into memory / fast Online marketing on Microsoft Azure
Now all unprocessed Activities are stored in the memory of the web server instead of the file system. This means that Kentico Online marketing in Kentico 8.1 will be significantly faster on systems with virtual file storage, like Microsoft Azure which uses blob to store data.
Online marketing macros used in Contact groups, Scoring, and Personas are now significantly faster
The secret behind some of our performance improvements lies in online marketing macro rules. They are translated into a database query that is much faster than their original online marketing macro rules. So if you would like to leverage performance optimizations introduced in Kentico 8.1, you should only use online marketing macro rules in Contact groups, Scoring and Personas that are built by the Rule designer. Online marketing macro conditions built by the macro Code designer are not optimized. If you lack macro rules in the Rule designer, your developer can create them very easily.
Contact groups don’t include merged Contacts
This change should be rather invisible, but I wanted to make sure that you can evaluate all of the major changes. In Kentico 8.1, Contact groups no longer contain merged Contacts. These were invisible in the UI, but through the API one could iterate across all Contacts within a Contact group, even those merged. We’ve decided to remove this option as it speeds up recalculation of Contact groups. You can still access merged Contacts via their parent Contacts in the Contact group.
Summary
As you can see, there are a lot of changes in Kentico 8.1 in terms of Online marketing performance. We’ve carefully carried out each one to ensure no negative impact on your projects. Would you like to get more technical insights into these optimizations? Please let us know in comments below this article and we will introduce it in a technical blog post! Do you have any suggestions for additional performance improvements within the Kentico Online marketing solution? Please contact me directly: vita.janecek@kentico.com, or share your thoughts in comments.
Also, if you have any concerns regarding changes within Kentico 8.1, such as the removal of immediate activity logging, please send me an email and I’ll help you resolve it.
And as always: I would like to point you to our ideas.kentico.com website where you can submit all your ideas for improvements to Kentico and vote for other great suggestions.
TL;DR
- Contact groups with dynamic conditions, Scoring, Personas, Contact tracking with Activities, and Online marketing on Azure are faster.
- Use macro Rule builder for online marketing macro conditions in these modules to keep them running fast
- Immediate logging of Activities has been removed, now it logs within 10s after a website activity
- Kentico rocks