emGee Software Solutions Custom Database Applications

Share this

Drupal CMS

A Content Personalization Primer

Lullabot - Wed, 07/25/2018 - 09:37

If you build or manage public-facing websites, you've almost certainly heard the excited buzz around personalization technology. Content marketers, enthusiastic CEOs, and product vendors all seem to agree that customizing articles, product pitches, and support materials to each visitor's interests — and delivering them at just the right time — is the new key to success.

Content personalization for the web isn't new, and the latest wave of excitement isn't all hype; unfortunately, the reality on the ground rarely lives up to the promise of a well-produced sales demo. Building a realistic personalization strategy for your website, publishing platform, or digital project requires chewing on several foundational questions long before any high-end products or algorithms enter the picture.

The good news is that those core issues are more straightforward than you might think. In working with large and small clients on content tailoring and personalization projects, we've found that focusing on four key issues can make a huge difference.

1. Signals: Information You Have Right Now

A lot of conversations about personalization focus on interesting and novel things that we can discover about a website visitor: where they're currently located, whether they're a frequent visitor or a first-timer, whether they're on a mobile device, and so on. Before you can reliably personalize content for a given user, you must be able to identify them using the signals you have at your disposal. For example, building a custom version of your website that's displayed if someone is inside your brick-and-mortar store sounds great, but it's useless if you can't reliably determine whether they're inside your store or just in the same neighborhood.


The simplest and most common kinds of signals are contextual information about a user's current interaction with your content. Their current web browser, the topic of the article they're reading, whether they're using a mobile device, their time zone, the current date, and so on are easy to determine in any publishing system worth its salt. These small bits of information are rarely enough to drive complex content targeting, but they can still be used effectively. Bestbuy.com, for example, uses visitor location data to enhance their navigation menu with information about their closest store, even if you've never visited before.


Moving beyond transient contextual cues requires knowing (and remembering) who the current visitor is. Tracking identity doesn't necessarily mean storing personal information about them: it can be as simple as storing a cookie on their browser to keep track of their last visit. At the other end of the spectrum, sites that want to encourage long-term return visits, or require payment information for products or services, usually allow users to create an account with a profile. That account becomes their identity, and tracking (or simply asking for) their preferences is a rich source of personalization signals. Employee intranets or campus networks that use single-sign on services for authentication have already solved the underlying "identity" problem — and usually have a large pool of user information accessible to personalization tools via APIs.


Once you can identify a user reliably, tracking their actions over multiple visits can help build a more accurate picture of what they're looking for. Common scenarios include tracking what topics they read about most, which products they tend to purchase (or browse and reject), whether they prefer to visit in the morning or late at night, and so on. As with most of the building blocks of personalization, it's important to remember that this data is a limited view of what's happening: it tracks what they do, not necessarily what they want or need. Content Strategist, Karen McGrane sometimes tells the story of a bank whose analytics suggested that no one used their the site's "Find an ATM" tool. Further investigation revealed that the feature was broken; users had learned to ignore it, even though they wanted the information.

Consumer Databases

Some information is impossible to determine from easily available signals — which leads us to the sketchy side of the personalization tracks. Your current visitor's salary, their political views, whether they're trying to have a child, and whether they're looking for a new job are all (thankfully) tough to figure out from simple signals. Third-party marketing agencies and advertising networks, though, are often willing to sell access to their databases of consumer information. By using tools like browser fingerprinting, these services can locate your visitors in their databases, allowing your users to be targeted for extremely tailored messages.

The downside, of course, is that it's easy to slide into practices that unsettle your audience rather than engaging them. Increasingly, privacy-conscious users resent the "unearned intimacy" of personalization that's obviously based on information they didn't choose to give you. Europe's GPDR, a comprehensive set of personal data-protection regulations in effect since May 2018, can also make these aggressive targeting strategies legally dangerous. When in doubt, stick to data you can gather yourself and consult your lawyer. Maybe an ethicist, too.

2. Segments: Conclusions You Draw Based on Your Information

Individually, few of the individual signals we've talked about so far are useful enough to build a personalization strategy around. Collectively, though, all of them can be overwhelming: building targeted content for every combination of them would require millions of variations for each piece of content. Segmenting is the process of identifying particular audiences for your tailored content, and determining which signals you'll use to identify them.

It's easy to assume the segments you divide your audience into will correspond to user personas or demographic groups, but different approaches are often more useful for content personalization. Knowing that someone is a frequent flyer in their early 30s, for example, might be less useful for crafting targeted messages than knowing that they're currently traveling.

On several recent projects, we've seen success in tailoring custom content for scenarios and tasks rather than audience demographics or broad user personas. Looking at users through lenses like "Friend of a customer," "browsing for ideas" or "comparison-shopper" may require a different set of signals, but the usefulness of the resulting segments can be much higher.

Radical Truth

It's hard to overstate the importance of honesty at this point: specifically, honesty with yourself about the real-world reliability of your signal data and the validity of the assumptions you're drawing from it. Taking a visitor's location into account when they search for a restaurant is great, but it only works if they explicitly allow your site to access their location. Refusing to deal with spotty signal data gracefully often results in badly personalized content that's even less helpful than the "generic" alternative. Similarly, treating visitors as "travelers" if they use a mobile web browser is a bad assumption drawn from good data, and the results can be just as counterproductive.

3. Reactions: Actions You Take Based on Your Conclusions

In isolation, this aspect of the personalization puzzle seems like a no-brainer. Everyone has ideas about what they'd love to change on their site to make it appeal to specific audiences better, or make it perform more effectively in certain stress cases. It's exciting stuff — and often overwhelming. Without ruthless prioritization and carefully phased roll-outs, it's easy to triple or quadruple the amount of content that an already-overworked editorial team must produce. If your existing content and marketing assets aren't built from consistent and well-structured content, time-consuming "content retrofits" are often necessary as well.


The ever-popular coupon code is a staple of e-Commerce sites, but offering your audience incentives based on signal and segmenting data can cover a much broader range of tactics. Giving product discounts based on time from last purchase and giving frequent visitors early access to new content can help increase long-term business, for example. Creating core content for a broad audience, then inserting special deals and tailored calls to action, can also be easier than building custom content for each scenario.


Very little of the content on your site is meant to be a user's final destination. Whether you're steering them towards the purchase of a subscription service, trying to keep them reading and scrolling through an ad-supported site, or presenting a mall's worth of products on a shopping site, lists of "additional content" are a ubiquitous part of the web. Often, these lists are generated dynamically by a CMS or web publishing tool — and taking user behavior and signals into account can dramatically increase their effectiveness.

The larger the pool of content and the more metadata that's used to categorize it, the better these automated recommendation systems perform. Amazon uses detailed analytics data to measure which products customers tend to purchase after viewing a category — and offers visitors quick links to those popular buys. Netflix hired taxonomists to tag their shows and movies based on director, genre, and even more obscure criteria. The intersections of those tags are the basis of their successful micro-genres, like "Suspenseful vacation movies" or "First films by award-winning directors."


One of the biggest dangers of personalization is making bad assumptions about what a user wants, and making it more difficult in the name of "tailoring" their experience. One way to sidestep the problem is offering every visitor the same information but prioritizing and emphasizing different products, messages, and services. When you're confident in the value of your target audience segments, but you're uncertain about the quality of the signal data you're using to match them with a visitor, this approach can reduce some of the risks.

Dynamic Assembly

Hand-building custom content for each personalization scenario is rarely practical. Even with aggressively prioritized audience segments, it's easy to discover that key pages might require dozens or even hundreds of variations. Breaking up your content into smaller components and assembling it on the fly won't reduce the final number of permutations you're publishing, but it does make it possible to assemble them out of smaller, reusable components like calls to action, product data, and targeted recommendations. One of our earliest (and most ambitious) personalization projects used this approach to generate web-based company handbooks customized for hundreds of thousands of individual employees. It assembled insurance information, travel reimbursement instructions, localized text, and more based on each employee's Intranet profile, effectively building them a personalized HR portal.

That level of componentized content, however, often comes with its own challenges. Few CMS's out-of-the-box editorial tools are well-suited to managing and assembling tiny snippets rather than long articles and posts. Also, dynamic content assembly demands a carefully designed and enforced style guide to ensure that all the pieces match up once they're put together.

4. Metrics: Things You Measure to Judge the Reactions' Effectiveness

The final piece of the puzzle is something that's easy to do, but hard to do well: measuring the effectiveness of your personalization strategy in the real world. Many tools — from a free Google Analytics account to Adobe Sharepoint — are happy to show you graphs and charts, and careful planning can connect your signals and segments to those tools, as well. Machine learning algorithms are increasingly given control of A/B testing the effectiveness of different personalization reactions, and deciding which ones should be used for which segments in the future. What they can't tell you (yet) is whether what you're measuring matters.

It's useful to remember Goodhart's Law, coined by a British economist designing tools to weigh the nation's economic health. "When a measure becomes a target, it ceases to be a good measure." Increased sales, reduced support call volume, happier customers, and more qualified leads for your sales team may be hard to measure on the Google Analytics dashboard, but finding ways to measure data that's closer to those measures of value than the traditional "bounce rate" and "time on page" numbers will get you much closer. Even more importantly, don't be afraid to change what you're measuring if it becomes clear that "success" by the analytics numbers isn't helping the bottom line.

Putting It All Together

There's quite a bit to chew on there, and we've only scratched the surface. To reiterate, every successful personalization project needs a clear picture of the signals you'll use to identify your audience, the segments you'll group them into for special treatment, the specific approaches you'll use to tailor the content, and the metrics you'll use to judge its effectiveness. Regardless of which tool you buy, license, or build from scratch, keeping those four pillars in mind will help you navigate the sales pitches and plan for an effective implementation.

Categories: Drupal CMS

How to Customizing Webform Preview option drupal 7.5

Drupal News - Tue, 07/24/2018 - 02:20

I'm a bit new to Drupal. I've been doing some contract work in Drupal for a client, but generally work in Rails/Ember.

I need to update the preview page for the webform in this Drupal 7 site and they want it to not only show the answers selected but all the options/answers in a question. I've dug through the webform settings and have been digging through the code, but haven't really found yet how to change this, if it's possible.


Alok Mishra Sr Drupal Developer

Drupal version: Drupal 7.x
Categories: Drupal CMS

Behind the Screens: Behind the Screens with Nicolas Grekas

Lullabot - Mon, 07/23/2018 - 00:00

Drupal relies on Symfony, and Symfony relies on Nicolas Grekas. Nicolas takes us behind the scenes of the project, tells us how Drupal and Symfony work together, and explains why he loves DrupalCon.

Categories: Drupal CMS

Private Messages for Drupal 8

Drupal News - Fri, 05/04/2018 - 22:21

After a year of testing and bug fixes, Private Message 8.x-1.0 has been released. 

Its a full-fledged AJAX based private messaging system, built with Drupal APIs and fully customizable. 

Version 8.x-2.x is in development and will have Node.js integration, integration with the Message Stack module, browser notifications, Facebook-style any-page chats, and Views and Rules integration. 

Drupal version: Drupal 8.x
Categories: Drupal CMS

SiteGround Hosting missing Drush

Drupal News - Fri, 04/06/2018 - 08:14

Just a note to other Drupalers.  I have been looking for a new Drupal-centric host and have heard good things about SiteGround.  They advertise support for Drush, which would make critical core updates, like the one we had last week, much quicker and easier.

HOWEVER, please note that their latest version of Drush is 8.0 dev., which is horribly out of date and WILL NOT WORK with Drupal 8.4 and above.

I made this unfortunate discovery after setting up a new account there.  The staff could not give me an estimate of when they planned to update Drush, so I promptly cancelled.

Just wanted to pass this information on to anyone else considering a host that supports Drush.

PS: Can anyone here recommend a good Drupal-Centric host that supports Drush?  Thanks.

Categories: Drupal CMS

New module Search Index Options significantly reduces the dataset table size

Drupal News - Sat, 03/24/2018 - 15:51

Hello everyone!

I am not sure if this forum is the right place to make  an announcement about new module, but let me try, since I am already typing here ;)

There are number of modules which try to output search results restricting per content types, but they all deal with already generated search index, which sometimes can grow really large. 

Please find a light utility module Search Index Options that takes over the core search module's work at very early stage to index only those content types which is specifically chosen by Drupal site admin. 

Everybody might want to have Search Index module enabled regardless if they restrict or not any content from indexing, because unlike the core search module it also provides the detailed and useful search index statistics per content type as shown on the second screenshot on https://www.drupal.org/project/search_index.

Thanks for your attention!

Drupal version: Drupal 7.x
Categories: Drupal CMS

Predictions for 2018

Drupal News - Sun, 02/11/2018 - 08:35

We have had a tradition since 2005. Every new year we have a posting on the predictions for the year ahead for our beloved open source CMS and community. Sometimes this posting went up in december, sometimes in January. But never in February.

Time to start a new tradition, predict the year ahead from February on :-)

Leave a comment if you do think that blogging will get hip again, RSS will gain new ground. What will the roll of the Drupal Association be in the new year? Where will the next DrupalCon be? Will the community grow and in what direction? API first, customer first, mobile first?

Polish your crystal ball and tell us what the future of Drupal wil be.

If you need some inspiration, take a look at 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015.2016 and 2017.

And yes, this posting was once month late. Apologies. Feel free to predict when the new prediction posting will go up on d.o :-)

Categories: Drupal CMS

Wysiwyg is coming to the forums

Drupal News - Thu, 10/19/2017 - 08:42

Hi folks,
We are going to be implementing the CK Editor wysiwyg for the forums here in the near future. This forum post is just to let folks know this is happening ahead of time. If you would like to see an example of the wysiwyg is action you can head over to https://www.drupal.org/node/2804241/discuss

Once implemented, if you run into issues you can request support here: https://www.drupal.org/node/2741227


Categories: Drupal CMS

drupalwebs.com for sale

Drupal News - Tue, 10/03/2017 - 07:17

I bought the domain drupalwebs.com a while back and never used it.
Any reasonable offers considered.

Categories: Drupal CMS

Registration for DrupalCon Vienna is open

Drupal News - Mon, 06/05/2017 - 12:19

We're shouting it from the rooftops today. DrupalCon Vienna registration is now open. Early bird pricing is happening now until 4 August, but for the next two weeks only you can also get a conference t-shirt if you register and are a Drupal Association Individual Member. You can also receive a t-shirt if you sign up to be a sprint mentor, or you volunteer on-site at DrupalCon for a minimum of 4 hours.

See more on the blog and register early!

Categories: Drupal CMS

Nikki Stevens: Winner of the 2017 Aaron Winborn Award

Drupal News - Tue, 05/09/2017 - 13:09

The Aaron Winborn Award was created in 2015 after the loss of one of one of the Drupal community’s most prominent members, Aaron Winborn, to Amyotrophic Lateral Sclerosis (also referred to as Lou Gehrig's Disease in the US and Motor Neuron Disease in the UK). Aaron’s commitment to the Drupal project and community made him the epitome of our unofficial motto: "Come for the code, stay for the community". The Community Working Group with the support of the Drupal Association came together to honor Aaron's memory by establishing the Aaron Winborn Award, which annually recognizes an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community.

Nominations were opened in January, giving community members the opportunity to nominate people they believe deserve the award, which were then voted on by the members of the Community Working Group and previous winners of the award.

We are pleased to announce that the 2017 recipient of the Aaron Winborn Award is Nikki Stevens.

Nikki is a Drupal Architect and Tech Lead at Kanopi Studios, a PhD student, and a long-time member of the Drupal community who has worked tirelessly to raise awareness of diversity issues in our community and advocating for creating a more welcoming and inclusive culture everywhere that Drupal exists, whether that’s online, at events, or in our workplaces.

She is also the founder of Drupal Diversity and Inclusion, an independent collective of volunteers who advocate for greater diversity in the community and more inclusive events, help create safe spaces, and build the capacity of allies.

In less than a year, DD&I has already had a positive impact on our community, providing a venue for important and sometimes difficult conversations that we need to have as a community and bringing issues to the forefront that have long been ignored. Their advocacy has also been instrumental in creating a more open, diverse, and representative speaker line-up here at DrupalCon Baltimore.

Nikki's leadership in particular has been instrumental in inspiring others to help tell their stories and bringing people together to make our community a place where more people can feel welcome. We have a long way left to go, but the work that Nikki and others are doing now is building the foundation for a better, more sustainable project and community both now and in the future.

We hope you will join us in congratulating Nikki as this year's recipient of the Aaron Winborn Award!

Categories: Drupal CMS

Welcoming Rachel Lawson and Jordana Fung to the Drupal Community Working Group

Drupal News - Tue, 05/09/2017 - 07:06

The Drupal Community Working Group is pleased to announce the additions of Rachel Lawson and Jordana Fung. We began discussing the possibility of increasing the size and diversity of our group last year, and we are happy to take this important step. As both the community and the CWG evolve, we felt it was important to expand our numbers in order to better handle our current workload and to potentially provide more proactive contributions to the community, possibly including better support for local events, mentorship programs, and leadership training; all things designed to promote and support community health.

Rachel discovered Drupal and decided to go freelance as a site-builder, after years teaching IT to schoolchildren and providing support to UK defence and pharmaceutical companies. Her early experiences contributing at Frontend United and subsequently mentoring others at European DrupalCons developed her understanding that mentoring new contributors and working within community is a huge learning and growth opportunity in itself. So, it is no surprise Rachel is keen to assist the CWG with conflict resolution and possible future mentoring/leadership initiatives.

Jordana is a freelance, full-stack Drupal developer from Suriname, a culturally diverse country where the main language is Dutch. She has been increasing her participation in the Drupal community over the past few years by attending various local, regional, and international Drupal events as well as participating in community code sprints. She loves to spend her time learning new things, meeting new people and sharing knowledge and ideas. During our initial conversations with her, Jordana expressed an interest in helping with both conflict resolution as well as more proactive CWG projects.

The process to increase our membership was not taken lightly. As we are currently a small group with only 4 members who almost always come to a consensus, we are well aware that expanding our numbers will come with its challenges. We feel it is important that we find people who bring new experiences and skills to our group, as well as have excellent written and verbal communication skills - and lots of patience. We are fortunate that we have been able to find two people that we believe match all of our criteria. Once we, as a group, spoke with each Jordana and Rachel, we quickly voted unanimously to invite them to join the CWG. Dries Buytaert had no objections.

Rachel and Jordana will be joining us for the first time during our next meeting on May 9. Over the course of the next few months, we'll be training them on our current processes as well as working with them to figure out how they can best contribute to the CWG in our continued effort to help maintain a friendly and welcoming community for the Drupal project.

Categories: Drupal CMS

State of Drupal Poll

Drupal News - Tue, 04/18/2017 - 21:44

There's a lot of FUD (fear, uncertainty and doubt) in the community these days. Let's try to quantify how people are feeling. Take the State of Drupal poll. Results will be tabulated and published during Drupalcon Baltimore. http://theaccidentalcoder.com/state-of-drupal-poll

Drupal version: Drupal 8.x
Categories: Drupal CMS

New Drupal 8 Private Message module

Drupal News - Mon, 04/10/2017 - 05:33

I've just released a new private message module for Drupal 8. The module is currently in beta version, and needs some work for a full release. If anyone is interested in assisting in the remaining features for a full release, more information is available on the module page. https://www.drupal.org/project/private_message

This module will be a full-feature, fully-extensible, fully customizable private messaging system. The core is there, it just needs some additional work to get it ready for a full release.

Drupal version: Drupal 8.x
Categories: Drupal CMS

Successfully ended long abusive relationship today ...

Drupal News - Mon, 03/13/2017 - 03:02

... by moving my main website from Hostmonster across to SiteGround.

I feel liberated.

Drupal version: Drupal 7.x
Categories: Drupal CMS

Url to Video Filter module

Drupal News - Fri, 02/10/2017 - 07:47

I've just released the Url to Video Filter module.

This module creates an input filter that can be used in a text format, that will automatically parse YouTube and/or Vimeo URLs into embedded videos. This means that any field that uses text formats can have URLs directly pasted into the body, and the URL will be replaced with the relevant video.

Drupal version: Drupal 8.x
Categories: Drupal CMS

Predictions for 2017

Drupal News - Sun, 01/15/2017 - 11:18

Like last year around this date, it is the time of year where we predict what the future wil bring for Drupal. Will decoupled Drupal get a head start? Wil chatbots be written in Drupal, will our tool fuel the Internet of Things, will the Whitehouse still run Drupal and will there be an IPO of a Drupal company?

Time to put your predictions, deep thoughts and even deeper thoughts online, and post them as a comment here. And in case you lack inspiration, see the previous predictions for 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 and 2016.

Categories: Drupal CMS

New module: Mcdoolz Social

Drupal News - Fri, 01/13/2017 - 11:58

Hey folk; I released a sandbox project I call _social a few weeks ago and I'd like to take it to full project status but I felt I should let people try it out first.


It is a social network links module for making linking to social networking pages super easy and client sustainable.

It's not that social network pages change frequently, but it beats having to go through the typical rigmarole to set up a set of links that you can easily add to or take away from. Instead of setting up a block with HTML, or a menu system with code hacks to allow HTML icons, install this module and if you need more than one (header AND footer) you can use block clone. I'll have to adjust the code to afford that possibility.

These links are stored in a system variable, and are the easiest method of providing a block with font awesome links (font awesome is not included and there's no libraries check for the library).

I'm always open to criticism and welcome any input from the community regarding my work. Please feel free to use the issue queue.

Thanks for taking a look :)

Drupal version: Drupal 7.x
Categories: Drupal CMS