Tuesday, 24 November 2015

Personalize Content With Adobe AEM

Personalized content is a growing trend, and lately we've put a lot of effort in leveraging CQ5's built-in tools, as well as developing custom components that can consume rich marketing data from third parties. These components—out-of-the box or custom—are a real complement to an enterprise CMS when they are well used and well integrated. In addition, they can be especially useful to content authors and marketers when used to visualize and simulate different segmented experiences.
Let's say I have an online outdoor clothing store built on CQ5 and I want highlight the sunglasses section of my catalog. I have great sunglasses but I suspect this product section is too deep in the navigation, so visitors almost never find it. My plan is to create a personalized content that links to the sunglasses section on my homepage that will display if the visitor comes to the site via a specific search for sunglasses in a search engine.  
Are you still there? Great! Let's keep going. I will assume you are familiar with most of the Adobe CQ5 concepts and if not, feel free to click on the links mentioned in the "resources" at the end of this post: 
Step 1: Add the "keyword" property to the client context
Client Context is great and you will hear it a lot about it during this journey. It is basically a set of different data collections from different sources that will be used to test segments and personalize content. I now edit the default client context of my website, adding a "Generic Store Properties" component from the sidekick. I then edit it and select the "Surferinfo" store and then add the "keywords" property item. At this point, it looks like this:

I can now validate and close the page. The referral keyword property is now available for me so I can test personalizing content in CQ5. 
Step 2: Build a segmentation rule
Now I'm going to build a segmentation rule that will test if the keywords matches a value. I create a segment page in /etc/segmentation/geometrixx-outdoors/ and open it. I start with an empty rule in the segment editor, then drag and drop the out-of-the-box "Referral Keywords" component from the sidekick to type "sunglasses" in the input field.
It should now look like this:

Notice the grey box on the left and the text below saying "Data loaded in the Client Context do not resolve the current segment." Well now, if you open the client context from the sidekick, you are able to play with the keyword value and see if it matches your segmentation rule. The box will turn bright green if I type in "sunglasses" in the client context property like this:

Step 3: Getting it all together
In this final step, I'll explain how to create personalized experience and interact with it as an author or marketer.
On the homepage of the website, I will now:
  • create an out-of-the-box "teaser" component ("Segmentation" component group) and link it to an existing campaign
  • create an experience element inside what is now called, "sunglasses referrer campaign" in the Campaign manager
  • assign the sunglasses segment previously built (remember Step 2?) to this experience in the page properties
  • tailor the experience directly in the CMS, for instance, adding a pretty image that links to the sunglasses section
Now, when this is all saved and hooked up together, you can actually render the homepage as any regular visitor. But, now, you also can open the client context from the sidekick and change the keyword value as the property is available here (remember? step 1?). If you play with it and enter "sunglasses", you are simulating a visitor coming from a search engine and having that word as part of the searched keywords and...

Magic! the personalized experience fades in:

And CQ even explains the decision logic:

Stay tuned for more detail, and in the meantime, check out the documentation via the links listed at the end. 
If you want to know the concepts:


  1. Here is the Link:- https://helpx.adobe.com/experience-manager/using/integrate-digital-marketing-solutions.html

  2. This comment has been removed by the author.

  3. I have implemented the same in AEM 6.0 and its working fine in Author mode. Is there anything extra needed to get this work in Publish mode ? The same is not working in publish mode.