I find that nearly all my customers want some level of personalization and targeting in their portals and web sites.  It seems the world today is filled with so much information one of our biggest problems is information overload.  The audiences feature in SharePoint was created specifically to allow information to be targeted to only those it is relevant to.  The biggest problem I seem to face when trying to use the audiences feature in SharePoint is where do I get the data from?  A lot of times customers want data that doesn't exist in their Active Directory, PeopleSoft, or other systems.  Sometimes this information is there but isn't reliable or isn't updated frequently.  To combat this problem I created a SharePoint solution that I call the Personalization Framework.  What this framework provides is an easy way to allow users to update their SharePoint 2007 profile at the site collection level.  It also provides a mechanism to allow the site collection owner to force users to enter information into their profiles.  Here is a quick breakdown of how this feature works.

 

Create the properties you want to profile by in the Shared Services admin, choice type works the best

Install the solution package

Activate the Site Collection Feature

Upon activation a list is created called "Personalization Properties" that has two fields, "Title" and "ForceEntry"

For each profile property that you want to use targeting for add an item to this list.  The name must match the Name of the property in the Shared Service Profile Properties.  If you want the user to be forced to enter this information check the "ForceEntry" box

If this property is of the type choice groups will be created automatically in the site collection for targeting purposes

If you want to make use of the force entry property you must add the "PropertyChecker" control to your masterpage with the following line at the top of the page

<%@ Register TagPrefix="PPF" TagName="PropertyChecker" src="http://blogs.msdn.com/_controltemplates/PersonalizationFramework/PropertyChecker.ascx" mce_src="http://blogs.msdn.com/_controltemplates/PersonalizationFramework/PropertyChecker.ascx" %>

And then include the control at the top of the masterpage

<PPF:PropertyChecker runat="server"/>
 

After that you should be all set to have users start entering information into their SharePoint 2007 profile without having to go to their My Site Profile. If you want to use this information to target content simply use the built in audience targeting feature and target content at one of the groups that got created when you chose a property to monitor.

 

Download the code and solution package here 

 

Here is a sample screen shot of the edit properties page that the user would see.  Force Entry properties get red asterisk to indicate they are required.

 

PersonalizationSettings

 

Here is a sample screen shot of what the admin would see when editing the properties list.

PersonalizationProperties