Transcript

nonlinear digital

nonlinear digitalnonlinear digital

nonlinear enterprise

nonlinear enterprisenonlinear enterprise

nonlinear enterprise

nonlinear

nonlinear nonlinearnonlinear

nonlinear digital

sitecore: the nonlinear way

November 2014

Copyright © 2014 non-linear creations inc.All rights reserved

nonlinear creationsToronto | New York | São Paulo | Ottawa | Calgary | Florianópoliswww.nonlinearcreations.com

table of contents

i | introduction

1 | chapter 1: marketing

3 | Driving return on investment (ROI) from your Sitecore deployment

7 | Three warning signs to be aware of during a Sitecore implementation

9 | Accessing Sitecore analytics with Microsoft BI tools

13 | Eliminating cart abandonment with Big Data and Sitecore DMS

16 | Using public data to enhance DMS personalization in Sitecore

18 | The Sitecore DMS rules engine: Three cool ways to use it

22 | Sitecore DMS and Google Analytics: Three very good reasons to integrate

24 | Sitecore DMS reporting options: Finding the right approach

27 | Sitecore personalization: Use Google Analytics to measure results

32 | Statistical relevance of A/B tests in the Sitecore DMS

35 | Four steps to extract engagement value from Google Analytics

41 | When A/B tests lie: The imperative of persona analysis

44 | Getting to know your visitors: A/B testing and persona analysis

49 | How to recover from search traffic decline after launch — part 1

54 | How to recover from search traffic decline after launch - part 2

58 | Sitecore 8: The leap to a strategic marketing platform

63 | chapter 2: technology

65 | An introduction to Sitecore for developers

71 | Our 12 laws of Sitecore development

75 | Sitecore operations: Four must-have resources

77 | Six tips for scaling Sitecore infrastructure

80 | A new way of thinking: Continuous deployment for Sitecore

84 | Why Application Lifecycle Management matters for Sitecore

87 | Seven tips for automated testing in Sitecore with Selenium

90 | Five observations: Sitecore vs. SharePoint

93 | Related item publishing in Sitecore 7.2

96 | The three things to know about a Sitecore Commerce Server integration

99 | 27 Tips for Configuring Sitecore

102 | Two common Sitecore page editor challenges

104 | Personalization and your Sitecore intranet

106 | Sitecore, Coveo and your Intranet

108 | Nine steps to a successful Sitecore website launch

112 | Three considerations when building multilingual sites with Sitecore

116 | Sitecore 7.5 has been released- should you upgrade?

120 | Scaling Sitecore 7.5: xDB on-premises or in the cloud?

124 | A Sitecore 8 sneak peak

128 | Sitecore 8: A look at database changes

130 | Sitecore 8: Introducing the Federated Experience Manager (FXM)

135 | authors

143 | about nonlinear digital

introduction

Why did we write this book?The answer is simple: too often we see the greatness of Sitecore technology undermined by misguided implementations and inexperience. Our goal with this book is to impart some of the knowledge we’ve gleaned since beginning our Sitecore journey back in 1995. The nonlinear digital team has run more than a 100 Sitecore projects since then and with those years come lessons learned. We want to share those lessons and help shorten the learning curve for others looking to get the most out of the customer experience platform.

The nonlinear team includes 5 Sitecore MVPs — more than any other Sitecore partner — and holds all 6 of Sitecore’s coveted specialization designations. In other words, we’re a company who knows their Sitecore. Wondering what drives Sitecore’s suc-cess? This is a good place to start.

How it worksThis book is meant to be a living document. It’s a selection of entries from our ongoing

online publication series, nonlinear thinking. It’s printed digitally and updated with

new content on a regular basis. The easiest way to stay up to date is to follow us at

one or more of the following:

@nonlinear_tweet

+nonlinearcreationswww.linkedin.com/company/non-linear-creations-nlc

ii | www.nonlinearcreations.com

We’ve divided the book into two sections: marketing and technology• Articles in the marketing section address issues ranging from the statistical

validity of Sitecore A/B tests to recovering organic search traffic after a botched relaunch.

• Technology articles provide specific advice, often in detailed how-tos based on our real world experience, for Sitecore developers

Let us know what you thinkWe hope this book is a helpful resource for all things Sitecore. If there is something

you think we’ve missed, let us know. If you’d like to know more about either non-

linear digital or Sitecore best practices, don’t hesitate to drop us a line. We can be

reached at:

[email protected]

DM to: @nonlinear_tweet

+ 1 866 915 2997

chapter 1: marketing

Driving return on investment (ROI) from your Sitecore deployment | 3

One of most difficult parts of selling your decision makers on a website renewal project is proving a return on their investment. Here are five keys to ROI for a Sitecore deployment:

The biggest challenge for today’s digital marketer is the ability to demonstrate how their digital tools can provide real value to a company, beyond eye catching graphics, follower counts and impressions per click. Turning those buzzwords into measurable benefits that drive business strategy decisions is key; your website’s con-tent management system is no exception. Proving to the C-Suite that an investment into a product like Sitecore has the ability to transform your web presence and spur a marked increase in sales and conversion rates is a constant battle. Here are five points to get you started:

1. Realizing the core benefits of the content management system

There are several quantifiable financial gains that can be achieved through the imple-

mentation of a content management system (CMS). These aren’t necessarily unique

to Sitecore alone, but are still important factors in calculating returns and in estab-

lishing a business case for the investment. A few examples:

Molly Anglin Vice President, nonlinear digital

Driving return on investment (ROI) from your Sitecore deployment

4 | www.nonlinearcreations.com

• Labour savings when introducing new features and functionality within a mod-ern CMS can obviously be significant when compared to the same features implemented by hand or within an aging web content management (WCM) platform.

• Productivity gains are also achieved through the use of an improved WCM user interface. With a simpler interface, non-technical users may gain the free-dom to complete tasks that were once the domain of a development team. As a result, the time to launch new content and the frequency with which new con-tent can be published can be much faster.

• The enforcement of best practices, like well-formed HTML and a structure that lends itself to SEO best practices can ensure better visibility and traffic — even if the contributing content author doesn’t innately understand the recipe for a well-ranked piece of content.

Forester Consulting, in conjunction with Sitecore, published a useful guide to calculating the total economic impact of implementing the product in which several of these concepts are explored. Through a series of interviews with real cus-tomers, they extracted anecdotal insights into what they found to provide the great-est value post-launch. The report also illustrates a detailed model for calculating ROI of the CMS investment.

2. Keeping design and build costs in-checkLooking at the cost side of the ROI equation, we see a lot of benefit in not start-ing projects from scratch, especially if you’ve never done a Sitecore deployment before. nonlinear is now offering our own pattern library, the nonlinear Sitecore Accelerator. Since establishing our Sitecore partnership in 2006 we’ve invested in building, refining and testing this set of tools intended to maximize efficiency. With every build, the Accelerator saves literally weeks of design, development and testing time by incorporating extensions to the Sitecore API, utilities to other common APIs such as Google Maps, preconfigured performance settings and a slew of useful com-ponents and templates. If you’re managing an in-house team gearing up to make your first Sitecore build, this will likely put your project much farther ahead and save you from potential configuration/development missteps.

Driving return on investment (ROI) from your Sitecore deployment | 5

3. Embarking on a vertical adoption strategy

Seth Gottleib recently published his thoughts on CMS adoption, focusing on the idea that while widespread adoption is often held up as a measure of success in software development projects, decentralized publishing by large groups of auth-ors doesn’t necessarily equate to a “good” website. Instead of the methodology he refers to as “horizontal adoption,” he points out that “vertical adoption” — essen-tially, the increased capacity by a smaller web team to understand and make use of the higher-level marketing functions available in today’s more advanced content experience management platforms — is key to driving value from the investment. If all you’re doing is tweaking and publishing content, Sitecore is likely not the prod-uct for you.

However, if you do intend to make use of the whole Sitecore solution—the con-tent management system and digital marketing system combined — some extremely powerful, measurable financial gains can be achieved. Tracking and acting upon engagement metrics, centralizing cross-channel performance data within the prod-uct, and using this information to optimize your site(s) really works, as explored in Sitecore’s whitepaper, Marketing Gold: Connecting Integrated Multichannel Marketing with Business Growth.

6 | www.nonlinearcreations.com

4. Fostering a culture of measurementMany of the web teams I’ve met over the years have great intentions. They inher-ently understand the areas where the returns I’ve mentioned above are possible. Where they fall down is in cementing executive-level understanding and support. Oftentimes, the once beautiful website with the high-end CMS languishes unused post-launch for several years until there’s no choice but another rip-and-replace. A considered approach to change management, with a C-Suite level executive spon-sor at the helm, is necessary in fostering this understanding and the backing to real-ize vertical adoption within the web team and encouraging an ongoing cycle of improvements. This isn’t an overnight change. To move towards a more analytic-ally-astute company, I particularly like Stephane Hamel’s Web Analytics Maturity Model — a measured approach to leaning to crawl, walk, then run.

5. Embracing a continuous improvement cycle

Limiting the estimation of ROI to the gains you get as a result of a big bang re-plat-forming effort, without considering the possible gains as a result of ongoing improvements, may be leaving out a BIG part of the equation. With the team trained to make use of higher level marketing functions and a metrics-friendly corporate culture in place, you are now poised to get down to the real tuning effort.

These five considerations are a good start to begin creating a strong case for invest-ment in a CMS solution like Sitecore. Once your organization has decided on a deployment, the next step is finding the right partner. When you come to that step, reach out to our nonlinear digital team and we’ll get you started.

Three warning signs to be aware of during a Sitecore implementation | 7

The last thing you want once you have committed to a Sitecore implementation is to start noticing issues midway through. Be sure to watch for these three warning signs.

Finding just the right balance between an agile-inspired project that involves constant, deliberate reincarnation and a miscommunicated one that suffers from a lack of vision is a more difficult task than you might think. Undertaking a large Sitecore project is both a lengthy and costly endeavor that no one on the team wants to be the one responsible for slowing down.

Having been a part of hundreds of Sitecore implementations, enhancements and, yes, rescue missions (likely as a result of one, if not all of these three consider ations) we’ve got an insider track on which components of your project to keep a close eye on.

1. Your business stakeholders/content authors aren’t trained

Making informed decisions during a project requires some knowledge of the prod-uct. You don’t need to be an expert, but it’s unfair to ask business stake holders to make choices when they have not been trained or had the chance to get their hands on the product. To increase the likelihood of success, consider including early train-ing, demonstrations and hands-on time with either the product or early prototypes.

Three warning signs to be aware of during a Sitecore implementation

Glen McInnis VP, delivery

8 | www.nonlinearcreations.com

2. Your non functional requirements are too vague

While statements like “ease of use,” “fast page load” and “beautiful design” are commonly expressed as must haves for a CMS solution, it is critical that these ele-ments are qualified into actionable tasks for the development team from the get go. Without narrowing in on the specifics for these non functional requirements, you will run into the trap of not knowing what they are looking for or when you’re done.

3. Your content strategy is taking a backseat to “whiz bang”

Ultimately it’s content that will deliver value to your customers and visitors. Project teams that get locked into long conversations about pixel alignment and other small functional details run the risk of losing sight of the end user. If there is some concern that the functionality or design is “not quite right,” don’t get caught in the spiral of guessing how users will react. If you consider the experience to be pretty good, launch it; test it, and then decide if you need to do something to improve it. If you’re not comfortable with the release, you can always organize a facilitated usability test. These approaches will give you real feedback and will be cheaper than having a CMS developer re-code the same functionality time and again.

Accessing Sitecore analytics with Microsoft BI tools | 9

The ability to drill down into the data collected from your Sitecore implementation is crucial in understanding your customers and making the most of your website. We teach you to do it using a familiar Microsoft product, Excel.

The challenge with most data analytics packages is how to best expose the wealth of information to the marketers and owners of a site. While pre-built reports can pro-vide an overview of user behaviour, any true insight will require a certain amount of drilling down into the data. This chapter will give you the ability to capture Sitecore DMS analytics using familiar Microsoft BI tools.

IntroductionWe are going to start with the most familiar Microsoft BI tool — Excel. By enabling

the Power Pivot add-on for Excel, our boring spreadsheet becomes a powerful data

analysis tool.

Importing dataThe first step is to connect Power Pivot to your analytics database. For the sake of simplicity at this stage, you will want to import all tables. The result in Power Pivot will be a tab for each table in the database. In the following screen capture you can see

Glen McInnis VP Technology, Sitecore MVP

Accessing Sitecore analytics with Microsoft BI tools

10 | www.nonlinearcreations.com

the import of the pages table.

Grouping by periods of timeOf note in this screen capture is the DateTime column. The pages table (and many others in the analytics database) contain date and time information that goes right down to the second — 5/29/2013 8:08:46. While that level of detail might be helpful, in most cases we will need to summarize information for weeks, months, quarters, and years as opposed to by the second.

Let’s assume we want to report on a month-by-month basis. To do this we can introduce a calculated column Month based on the formula =MONTH([DateTime]). This will add a column to the table that has the corresponding number of the month (January = 1, December = 12). A nice feature of the calculated column is that once introduced, the data from the database can be refreshed and the column will persist.

Accessing Sitecore analytics with Microsoft BI tools | 11

To make the final experience even easier we can also introduce a lookup table called TimePeriods.

By creating a relationship between TimePeriod.MonthNumber and Pages.Month we can add another calculated column to Visits that present the friendly name of the month. This is done using the RELATED formula like so =RELATED(TimePeriods[MonthShortName]). This same pattern can be continued to tag rows with Full Month Names, Quarters or other time periods.

Graphing visitsNow that we have nice clean data, a Pivot Chart with Slicer for Item Language and Country allows a user to look at visits over a set of months and segment by country of the user and the language of content accessed.

12 | www.nonlinearcreations.com

This is a simple example of how Excel and Power Pivot can be used to report on data in DMS. While powerful, the first setup of the tool does require understanding of data models and BI concepts. Once created the reports can offer a very granular level of analytics that may act as a stop-gap for your site feedback needs.

Eliminating cart abandonment with Big Data and Sitecore DMS | 13

Cart abandonment is one of the worst possible outcomes for online retailers. Finding the right methodology for getting consumers back on to their site to complete the conversion is always top of mind.

The most popular Big Data case studies: HP using it to identify high value employ-ees at risk of quitting or Chase identifying customers about to jump ship for another bank, evoke justifiable excitement from companies in every industry.

The catch is that most organizations lack the skilled people needed to tap into this potential. The job title of data scientist is the most recent moniker applied to these seemingly mythical creatures, but don’t despair. Instead of spending your days on a quest for a fairy tale character, build on the team you have and start small.

Making Big Data work for youLet’s start by breaking down the skills of the data scientist: part software engineer, data analyst, statistician, business analyst, marketer and corporate strategist; that’s a lot to pack into one employee. If you are working with Sitecore’s Digital Marketing System, you’re in luck! Your team will already have many of the tools they need to personalize and test your web, mobile and email channels. If you add in the data from your customer relationship manager (CRM) and whatever finance application you use, you can get a fairly well-rounded view of your customers.

Glen McInnis VP Technology, Sitecore MVP

Eliminating cart abandonment with Big Data and Sitecore DMS

14 | www.nonlinearcreations.com

Fixing the abandoned shopping cart issueImagine this: you are looking to reduce the rate of abandonment for a conver-sion flow like a shopping cart. Ideally, addressed the issue of increasing conversion, and have already A/B tested the experience, exhausting all major opportunities for improvement. It’s your hope that if you can further segment the audience, you’ll be able to glean more precise insights from the data.

This kind of analysis requires combining the data from three sources: the DMS, a CRM database and your finance tool (while this may sound complicated, don’t worry—we aren’t going to recommend you to go buy Hadoop!). The good news is that the tech-nical members of your team probably already have access to the great ETL and OLAP tools in the SQL Server or Oracle database platforms that are running your Sitecore solution. Once you have that data, the analysis of it can be accomplished using trad-itional BI tools or in many cases, Excel with Power Pivot.

Back to our example: once your data and business analysts start to segment the cart abandonment, it is discovered that one sub-group of users is largely responsible. This abandonment happens once the shipping address is entered and the total cost of the order is displayed. We know that these users fit the DMS persona of “Casual Shopper,” place an average of two orders per year, have an average order size of $100 and almost never return a purchase.

When this information is presented to the business analyst, marketer or corporate strategist they make the reasonable assumption that the presentation of the final price drove the user away. Perhaps it was too expensive, or maybe they wanted to do a comparison elsewhere. Whether that assertion is true or not, is not as relevant as having a hypothesis that you can use to construct a targeted A/B test for these users like presenting shipping discounts, displaying the total price earlier, etc. If your team has the statistical knowledge, it may be possible to apply more complex algorithms to locate an actual correlation in the data, but this can be something you build up to.

Eliminating cart abandonment with Big Data and Sitecore DMS | 15

It’s easier than you thinkAll this to say, a small team of professionals can offer the same benefit as the myth-

ical data scientist; you just need to set aside the time for these people to create that

common ground and to put in place some basic tool skills:• Software developers will need working knowledge of the ETL, OLAP technolo-

gies embedded in SQL Server or Oracle• Data and business analyst will need working knowledge of BI tools like those

found in Microsoft Excel or a suitable third-party tool;• A base level understanding of statistics across the board can be helpful,

but not necessary (you will notice we did not actually talk about statistical anal-ysis in this example)

With the right technology and employees in place, any sized business can start making Big Data work them.

16 | www.nonlinearcreations.com

Glen McInnis VP Technology, Sitecore MVP

Using public data to enhance DMS personalization in Sitecore

With all of the focus on collecting data from websites and other online sources, it is easy to forget about the data is that publicly available. If used strategically, it can be a wealth of information that increases the power of your Sitecore DMS.

The ability to target specific audiences with customized engagement plans is

one of the best features of the Sitecore DMS. While we have examined many

ways that digital marketers can gather actionable data from their own website using

the DMS, there is a rich source of relevant data that, when coupled with the DMS, can

help in taking your campaign from a semi-pro attempt to full-fledged personaliza-

tion: public data. Let’s start by taking a look at what data is available:• Demographics: Most government organizations release detailed information

on household income, employment, average age, family size, languages spo-ken, etc. This data is usually available down to the city or city-ward level in North America and most of Europe.

• Events: Large concerts or conferences, statutory holidays, back to school and other such events can be used to adjust pricing and timing in campaigns. There is no one unified source, but the folks at www.eventful.com are trying.

Using public data to enhance DMS personalization in Sitecore | 17

If you combine this information with your geo-targeting, numerous possibilities open

up:• Those in the hospitality industry can use large events in a particular location to

promote hotel rooms and restaurants• Education and training organizations might rely on employment rates to deter-

mine if users should be presented with continuing education vs. retraining for a new job

• The demographic information can help identify lifestyle and life stage - Average income and age might lead to presentation of basic or premium

products - Average family size/age might lead to targeting of young professionals,

young families, seniors, etc.

Once you get this data into the system, creating a custom DMS rule will let the marketing team take advantage of the information. Using the Sitecore DMS rules engine, you can start experimenting with different variables and combinations. I have included a screencap of an example rules set editor for identifying lifestyle and life stage.

A word of warning: do not rely on live feeds of public data always being available. If you are permitted to take a local copy of the data — do it.

18 | www.nonlinearcreations.com

Amanda Shiga VP, Digital, Sitecore MVP

The Sitecore DMS rules engine: Three cool ways to use it

Finding the optimal conditions to use in your Sitecore DMS campaigns can be a challenge. We look at three of the coolest ways to use the rules engine to personalize content for your visitors.

The Sitecore rules engine is the powerhouse behind Sitecore’s personalization cap-ability. Similar to the Outlook-style rules wizard, the rules engine lets marketers build powerful clauses to influence content display based on a variety of conditions.

One of the most straightforward uses of the engine is to personalize content based on a user’s geographical location, translated from their IP address. In the example below, a promotion targeted to residents of Toronto could be shown for this condition.

The Sitecore DMS rules engine: Three cool ways to use it | 19

You can also personalize content on a variety of other useful characteristics and events, such as visitor profile, achievement of a goal, search term or a visit to a specific page.

However, did you know that there are other cool ways the rules engine can be used for personalization within Sitecore’s Page Editor? Here are three examples to get you started.

NB: The examples below all use the rules that come with Sitecore out-of-the-box.

Influencing business logic and calls to other systemsOne of the most interesting ways you can use the rules engine is to influence logic based on the wealth of visitor information you have at your fingertips.

When you have known, logged-in usersExplicit personalization, when content is personalized based on known characteristics

of users, is often implemented in code. However, tying this logic to the rules engine

instead allows content authors to adjust it without needing to rely on developers

or messing around with code. For example, using the conditions below, you could per-

sonalize content based on:• Where user profile specific field compares to value (for example, targeting

content to users with specific interests or from a specific member segment)• Where the current user is a member of the specific role (for example, target-

ing content based on a user’s security memberships)

When you are integrating with another business system or platform, such as your site’s search engineThis is a wonderful opportunity to use the rules engine without even knowing specifically who the visitor is. You can influence the underlying business logic as your anonymous visitors begin to build a behavioural profile simply by taking actions on your site.

A great example is influencing calls to a search engine (via API or webservice). Some search engines allow search or ranking profiles to be specified that rank search results differently. For example, for a visitor whose behaviour places them in the “outdoor

20 | www.nonlinearcreations.com

enthusiast” search profile for a travel website, you could boost the ranking of results with metadata related to outdoor activities.

If the Sitecore control that calls to the search engine stores the search parameters within the associated item, then we can create several Sitecore items — one for each search profile — and personalize the call to the search engine. Thus, if our anonym-ous visitor is building an outdoor enthusiast visitor profile, we can use the rules engine to swap in the corresponding Sitecore search profile item for our call to the search engine and influence the search rankings, all in real-time.

NB: This approach will also require you to do the legwork of setting up your visitor profiles and pattern cards.

As a rule of thumb, abstracting useful logic-driving variables into item fields leaves flexibility for future personalization as well. This idea can also be applied to any API call or webservice call.

Temporally-based personalizationMany of the rules in the rules engine refer to the context of the current visit. Unless you decide to load a visitor’s historical browsing activity into the current session (a small coding activity, but with some potential performance trade-offs), you won’t be able to personalize based on time passing or return visits.

Luckily, there are some out-of-the-box rules that allow you to serve content for visitors who visit often, or who have returned after a specific amount of time (or both). An example might be offering a reward coupon to a visitor on their tenth visit.

The Sitecore DMS rules engine: Three cool ways to use it | 21

Some quick background: Engagement plans are a feature of Sitecore DMS that allow you to map out a visitor’s engagement journey, over time, with your online chan-nel(s). These plans also allow you to configure automatic touchpoints with these visitors based on elapsed time or specific event triggers.

Two examples:1. Where the current visitor is in the specific state of an engagement plan.

Here, we can personalize based on a visitor’s position in an engagement plan. If you set up the transitions in your plan based on time elapsed, you can isolate whether a visitor is returning a certain amount of time after their pre-vious visit. This is especially helpful if you are personalizing content based on visitor recency.

2. Where the visit no. compares to number. Here, we can personalize based on how many times a visitor has returned to the site. This is helpful if you are per-sonalizing content based on visitor frequency.

Leveraging social network informationThis option requires the Sitecore Social Connected module and, assuming users con-

sent to the use of their information upon logging into a site with their social network

credentials, allows personalization on a vast array of known profile fields, such as:• gender• number of Twitter followers• skills listed on LinkedIn• birthday, relationship status or interests on Facebook

22 | www.nonlinearcreations.com

The integration of the Sitecore DMS and Google Analytics allows digital marketers the freedom to make data-driven optimization decisions. Our connector module will allow you to do just that.

There’s a reason we’re so excited about this. Closing the loop between two best-of-breed solutions (Sitecore for digital marketing and content management; Google Analytics for reporting and measurement) gives marketers some amazing opportun-ities. Here are three examples.

Sitecore Personas — Tracking on-site activitiesMuch has been said about the power of Sitecore’s persona functionality. However, one gap in the Sitecore reporting interface is how to segment traffic in your analytics reports using these handy groupings.

Configuring Sitecore personas as custom dimensions in Google Analytics, however, gives you the ability to do just that. Want to know if visitors who align with Persona A convert at a higher rate than those of Persona B? Curious which channels drive the highest number of your most valuable persona? This integration can get you answers.

Joe Boughner Director of Marketing

Sitecore DMS and Google Analytics: Three very good reasons to integrate

Sitecore DMS and Google Analytics: Three very good reasons to integrate | 23

Real-time personalization: Is it working?Sitecore’s DMS can do some really cool real-time personalization stuff. From basic parameters like visit source or visitor geography to more complex variables such as persona or state in an engagement plan, the ability to serve up a tailored, nuanced view of your web world to your key audiences is at your fingertips. But how well is it working?

By treating personalization rules as a dimension in Google Analytics, you can easily segment your traffic by which version of any personalized element your visitors saw. Then run your standard conversion reports or any other standard report to see the impact of your efforts.

Remarketing to your Sitecore personasInterestingly, one of the most compelling reasons to integrate Google Analytics and the Sitecore DMS has nothing to do with analytics, at least not directly. Thanks to the deep integration of Google AdWords and Google Analytics, you can use pretty much any segment in your Analytics profile as an audience group for your remarket-ing. Including your Sitecore personas, if you’ve done the Google Analytics / Sitecore integration.

Why spend hours re-configuring your Google Analytics segments to match what you’ve already created in Sitecore? Integrate the systems and get on with your remarketing.

24 | www.nonlinearcreations.com

Randy Woods President, Sitecore Digital MVP

Analytics is the name of the game when it comes to digital marketing. Using the native reporting options of the Sitecore DMS is one option, but if you are looking for a more powerful option, choose our nonlinear Google Analytics Sitecore DMS connector.

Sitecore DMS gives marketers unparallelled capacity to easily design and implement

content-centric promotions such as:• Personalization of content based on simple rules• A/B and multivariate testing of content• Persona-based personalization

Implementation is only half the challenge, however. You also need to know what works (and what doesn’t). Closing the loop — learning from success and failure and trying again — is the key to making content marketing drive business results. Sitecore provides three means for marketers to evaluate the success of the campaigns they execute using the Digital Marketing System.

Built in reports: These have improved with every version of Sitecore and will meet many of the standard reporting requirements a marketer might have. They are suitable for providing top level reports to management. A marketer is ill advised

Sitecore DMS reporting options: Finding the right approach

Sitecore DMS reporting options: Finding the right approach | 25

to use these reports, however, for trying to discern the relative effectiveness of two personalization campaigns. They are relatively simple to use but limited in their applicability.

Direct SQL queries: The built-in reports can be greatly expanded by creating custom queries into the DMS database. This provides the marketer with essentially unlimited flexibility to probe the data for answers, but it requires SQL database skills or ongoing access to someone with those skills.

The Engagement Intelligence Cube: This OLAP technology is available as an extra licence from Sitecore. It leverages traditional business intelligence tech nology to pro-vide power analysts with the ability to deeply probe the data that resides within the DMS database. Properly configured, the engagement intelligence cube is powerful, but does require sophisticated analyst capabilities.

nonlinear digital has developed a fourth option — an integration engine for Sitecore DMS and Google Analytics. This integration enriches the data Google Analytics collects with the deep knowledge that collected by the DMS. It lets marketers use the familiar Google Analytics interface to evaluate Sitecore campaign data within the context of their other marketing campaigns.

What’s the right reporting solution for you?Clearly each of these approaches has very real value for marketers. We use the deci-sion flow diagram on the next page to assist our clients in making the right choice:

26 | www.nonlinearcreations.com

Sitecore personalization: Use Google Analytics to measure results | 27

The ability to personalize content based on particular conditions or metrics is what sets the Sitecore DMS apart from its competitors. Integrating it with Google Universal Analytics makes it that much more powerful.

Sitecore DMS makes it easy to configure personalization of content based on a

myriad of different variables. As long as your site has been properly configured,

content authors can define different conditions for what content gets displayed.

Some of the more useful (in our experience) conditions against which you can

personalize are:• Automation state: in relation to where the visitor is in a given engagement

plan in Sitecore• Events: when the visitor has achieved a specific goal on the site• GeoIP: according to the geographic location of the visitor• Profiles and patterns: according to the visitor’s behaviour (content visited on

the site) and pre-defined profiles and patterns• Visits: according to pages visited, campaigns triggered, visit value points accu-

mulated, as well as number of accumulated visits• Security: defined by the security settings of the item and user access• Workflows: depending on what state of a workflow an item is in

Eduardo Moraes Solution Architect Sitecore MVP

Antoine Rulliere Project Manager

Sitecore personalization: Use Google Analytics to measure results

28 | www.nonlinearcreations.com

All of these conditions can trigger the event that will select the content to be displayed. However, it may be difficult for content owners and the marketing team to verify the real results of such personalization happening on their website. This is where Google Analytics integrated with Sitecore can change the game.

According to recent reports from BuiltWith.com, Google Analytics is used in over 43% of the top 1 million sites on the web. And now, with a more powerful API in Google Universal Analytics, it makes it even easier to get integrated with Sitecore and pro-vide meaningful reports that can help clients to make better decisions, on top of the customizations already configured with the DMS. Though there are a number of other methods for reporting in the Sitecore DMS, the powerful and familiar Google Analytics interface often comes out on top for ease of use and superior capabilities.

What is Google Universal Analytics?Google Universal Analytics is an extension to the well known Google Analytics. It

allows seasoned users to customize the data captured as well as the reports that are

generated based on that data. It relies on two key concepts:• Custom dimensions: A dimension is a characteristic of a visitor: ex. city of visitor• Custom metrics: A metric is a value tracked for a dimension: ex. number of vis-

its, frequency of CTR on a specific advertisement

City (dimension)Visits

(metric) Clicks on specific ad (metric)

London 345 12

Paris 123 6

Ottawa 110 8

Before you can truly harness the power of Google Analytics, you have to think through and map out the reports you want to generate, including the required dimensions and metrics. This is where you can start to see the value of integrating with the Sitecore DMS. Say you want to track metrics on a specific component with a corres-ponding call to action that’s being personalized by the user’s country. Your report mapping would look something like this:

Sitecore personalization: Use Google Analytics to measure results | 29

Country (dimension)

Times component A was triggered (metric)

Times the user clicked on call to action displayed in component A (metric)

China 1,234 87

United States 894 154

Brazil 712 54

India 709 76

England 345 56

Defining custom dimensions in Google Universal AnalyticsThe key is to define the most appropriate custom dimension based on your desired metrics.

To define a custom dimension, connect to your Google Analytics account and under Admin > Property > Custom Definitions select Custom Dimensions. This page now lists your existing custom dimensions, if any.

Click on the New Custom Dimension button (you are currently allowed up to 20 custom dimensions), name your custom dimension, select its scope (Hit, Session or User; scope determines which hits will be associated with your custom value), then hit Create. Once you have completed these steps, you will be presented with the code snippet you need to add to your code in order to track that new dimension.

You now need to define your custom metrics. To do so, follow all of the previous steps laid out for creating Custom Dimensions but this time, select Custom Metrics. Give it a name, select a formatting type (Integer, Currency or Time), and again Google will generate the code snippet you need to use to track the metric.

In our example above, you would need to create the Country dimension and the two required metrics. You would then inject the corresponding code snippets into your Sitecore code. The last step is to create a custom report. To achieve this, you need to click on Customization in the main navigation which should land you on the Custom

30 | www.nonlinearcreations.com

Reports page. Click the New Custom Report button, give your report a name and select the custom dimensions and metrics you just created.

This will give you the basic custom report proposed in our example. Voila! Be aware, you can’t delete metrics and dimensions you’ve created, you can only make them inactive.

Sitecore DMS + Google Universal Analytics: Putting the pieces togetherThe first step to integrate DMS with Google Universal Analytics is to understand which dimensions and metrics you want to capture. As evidenced in our example, you must first identify the moment of personalization and then determine which content is being displayed. The best way to do that in Sitecore is to work with its pipeline and overwrite its event with custom code that can add the neces-sary Universal Analytics snippet code to the page being rendered. Page views are captured using the snippet:

ga(‘send’, ‘pageview’);

For each page view we will also send the relevant dimensions and metrics related to the content we want to track.

In our case, we want to track the visitor’s country as a custom dimension. As we have up to 20 dimensions in Google Analytics, for each dimension being tracked we need to provide its index (as it is configured inside Analytics’ admin interface). Assuming that country is our first dimension and component displayed is our second dimen-sion, for a visitor from China being presented with component A, we will have:

ga(‘set’, ‘dimension1’, ‘China’);

ga(‘set’, ‘dimension2’, ‘A’);

ga(‘send’, ‘pageview’);

The values for the dimensions and also for the metrics to be associated to each dimension can be retrieved from Sitecore DMS using its API. Also, click events on the component need to be captured so you can measure how many times the compon-ents’ personalization was displayed and also clicked.

Sitecore personalization: Use Google Analytics to measure results | 31

The capabilities of both Sitecore’s personalization through the DMS and Google Universal Analytics are continually evolving and are sure to present further oppor-tunities to segment, target and track customers in the future. The ability to create a customized, measurable customer journey will allow digital marketers the freedom to market in a whole new way.

32 | www.nonlinearcreations.com

If your A/B test has failed to meet statistical relevance, you may be working on assumptions that are untrue, or somewhat misleading. Be sure to find out before you put your Sitecore DMS A/B results into action.

We have looked at a number of possible points of caution to take note of when con-ducting A/B tests, including the three mistakes to avoid and taking personas into account. But, as many marketers tend to forget, an A/B test is only as effective as its sample size and statistical relevance.

It can be tempting to run a test for a day or a week, and based on a noticeable difference in conversion, pick a winner. However, in doing this the chance that your decision will actually stand up over time is quite low. Ultimately you need to know when your test has collected enough data to be a realistic prediction of user behav-iour or, in math geek parlance, the test is significant. There are volumes of academic texts filled with guidelines for determining the appropriate sample size for statistical relevance. While we don’t need to wade into those deep waters, there are two key decisions you do need to make. The first is what confidence level you want to have in your test. Analytics guru Avinash Kaushik recommends that you shoot for a 95% con-fidence level and who are we to disagree?

The second thing to keep in mind: the smaller the change in conversion you are expecting to see, the larger the sample size you will need. This means that your first

Glen McInnis VP Technology, Sitecore MVP

Statistical relevance of A/B tests in the Sitecore DMS

Statistical relevance of A/B tests in the Sitecore DMS | 33

tests of the “obvious” improvements require a relatively small test size, while later micro-improvements will need a greater level of testing.

Statistical significance in SitecoreThe method for determining statistical significance varies depending on what software or program you are using to conduct your A/B tests, and as we are big fans of Sitecore, we will use their Digital Marketing System for our example. If you have worked with Sitecore in the past, its possible that you have encountered issues with this particular analysis, but never fear, we are here to help.

In this screenshot from the DMS all you can see are the components and the engage-ment value that have been delivered. If we know the values assigned — in this case we assume a value of 1 — then we know that Option B had 60 conversions and C had 20. If we assume that each of the three options was shown an equal number of times and the source page was delivered a total of 4,000 times we will see that con-versions are:

Seen Converted Conversion

B 2,000 60 3%

C 2,000 20 1%

34 | www.nonlinearcreations.com

Using this data we can perform a one or two tail test on the experiment to determine a few different things: if you are looking to prove that C is better than B, use a one tail. If you are simply looking to confirm that C is different than B use the two tail test.

• The pooled sample p = (20 + 60) / (2,000 + 2,000) = 2.00%• The standard error SE = 0.0044

- Your Excel formula is =SQRT(p*(1-p)*(1/n_1+1/n_2))) - The value of t works to 4.5175

The t-value in this equation signifies the probability of the sample size is significantly different enough between the two conditions to be statistical significant. The value of this particular t, 4.5175, shows the experiment to be highly significant using both one and two tail t-tests.

Statistical relevance is important, but so is contextA word of caution: while statistical significance is important, if used improperly it can give you and your stakeholders a false confidence in your results. For example, if you know there are seasonal variations in your user behaviours keep in mind that a statis-tically valid test of users in the summer months may not apply to users in the winter months; understand what sample of your population a test is reaching.

As we have shown, there are many misattribution errors that can occur when con-ducting A/B tests. If we have piqued your interest in undertaking some A/B testing of your own, but are a little stumped by all of details, get in touch and we can help you figure out what you need to know to start seeing serious A/B testing results.

Four steps to extract engagement value from Google Analytics | 35

Determining an engagement level for the visitors who come to your website is becoming increasingly important. Find one for your visitors by extracting an engagement value from your Google Analytics.

A marketer’s ability to determine the value of a visit to a website is critical to effect-ively managing online marketing and promotions, but creating a model that accur-ately assigns an engagement value to specific content or actions is damnably difficult. Top down models may or may not be accurate — either way, it’s very dif-ficult to know. The alternative — a data-driven model — requires machine learning development skills to which few marketers have access (making it an ideal addi-tion for a marketing technology like Sitecore DMS). At nonlinear, we use Google Analytics data as an alternative. It’s far from perfect, but it does provide real, data-driven insight into content value and should form the starting point for anyone contemplating the creation of an engagement plan model.

Page value as a starting pointGoogle Analytics calculates a variable it calls “page value.” Google describes page value as:

The average value for a page that a user visited before land-ing on the goal page or completing an ecommerce transaction

Randy Woods President, Sitecore Digital MVP

Four steps to extract engagement value from Google Analytics

36 | www.nonlinearcreations.com

(or both). This value is intended to give you an idea of which page in your site contributed more to your site’s revenue

Is this the same as engagement value? No, it doesn’t cross multiple sessions and so gives limited insight into content that may be an intermediary to driving con-version on later visits, but it should be considered a starting point.

Making it work — a step by step guideUsing our own nonlinear creations data, I will show you each step involved in using Google Analytics’ page value to help in the creation of an engagement model:

Step 1: Create goals in Google Analytics and assign them valueIf you have not already done so, your first step is to enable goals in Google Analytics; that’s the easy part. Now assign a value to the goal’s outcome: if your goal is not a straightforward transaction, but a newsletter registration or whitepaper download or some other “soft” goal, you will need to invent a dollar value for each. This, alas, is not data-driven, so you’ll need to estimate the relative value of each outcome. The abso-lute value does not matter for the purposes of engagement value planning.

Step 2: Export “site content” for converting visitorsYour objective in this step is to get the data you need into a spreadsheet where you

can make it work for you:• Select at least one quarter worth of data. In this example, we chose a six month

time slice.• Select “Visits with conversions” from Advanced Segments. • Navigate to Behaviour > Site Content > All Pages. Show at least 500 rows, and

then sort this data by page value.

You should get a report that looks something like this:

Four steps to extract engagement value from Google Analytics | 37

Export this data for use in Microsoft Excel.

Step 3: Massage the data in ExcelWith this step, you will drill down further into the data to create a functional data-

sheet with only the most relevant data:• The resulting spreadsheet will include some data that is not relevant to your

objectives; delete that, along with the time header information that Google Analytics inserts into the file and the data summary at the bottom of the page.

• Filter the data to exclude any page receiving fewer than 10 page views (you may choose a higher number if your site has higher traffic volumes).

• Finally, eliminate any content that is mandatory for the objective to be achieved. For example, one of the objectives for nonlinearcreations.com is to encour-age whitepaper downloads; any download automatically generates a thank you page, so these, of course, will be highly correlated with our objective. Filter the spreadsheet to eliminate these “tautological” content pages.

38 | www.nonlinearcreations.com

Step 4: Create your engagement valueThe objective of this stage is to give you a single value for key pages that you can apply using a system like Sitecore DMS. It will be based on the page value — and you could just use this figure — but we have found it easier to convert the dollars pre-sented by Google Analytics into a number based out 100.

To do this, create a formula in the column next to that labelled page value. This for-mula should divide the page value of that row by the largest page value in the col-umn and multiply it by 100.

Four steps to extract engagement value from Google Analytics | 39

This will give you a score ranging between 0 and 100 that you can use as the basis of your engagement model. You will probably find that most of the scores make intuitive sense, but be prepared for some surprises. At nonlinear, for example, we discovered that visits to the news section of our website were surprisingly strongly associated with whitepaper downloads.

LimitationsThis approach has limitations as a model for the value of specific content:• It is based on conversions that happen within a single visit. As a result, con-

tent that contributes to conversions on a subsequent visit is undervalued. This is particularly important for organizations that have a long or considered sales cycle.

• It represents a single slice of time and it needs to be updated frequently. Your site changes and the dynamics of those visiting change. The model you create today may not reflect the reality of tomorrow, and the differences can be dramatic, as evidenced here in some of the numbers from our site:

Page

Engagement value based on data

Oct 2012–March 2013

Engagement value based on data

April–Sept 2013

Executive bios 64 12

SEO and CMS 84 100

Intranet governance

83 96

CMS audit and assessment

100 5

• It’s not very subtle and creates an average score across all visit types. Visitors who originate from different sources behave very differently. Calculating engagement values using the model described here averages these dif-ferent behaviours. To avoid this, it’s possible to perform this same analysis using multiple segments — new visitors vs. repeat visitors, or paid search vs. organic search, for example. Consider the following table outlining the paid vs. organic search engagement values for pieces of content on nonlinear’s site:

40 | www.nonlinearcreations.com

Page

Engagement value— Paid search visits

Engagement value—Organic search visits

Choosing ECM technologies

100 9

Visio stencils 67 26

Front end development is crucial

8 43

Best practices for Sitecore blog post

42 89

While this limitation can create issues for some specific analyses, it is not an uncom-mon one among marketing technology projects; they often restrict the user to one engagement value per page or action.

When A/B tests lie: The imperative of persona analysis | 41

Ensuring that your A/B test is measuring what you think it’s measuring and in a way that will ultimately provide good intel on visitor motivations is crucial. Make sure you know what you’re looking for.

A successful A/B test can be both absolutely true and completely misleading. Marketers have been rapidly adopting A/B (and to a lesser extent) multivariate test-ing to both landing pages and less frequently, corporate websites, and for a very good reason — doing so provides a simple data-driven method for increasing the value of marketing dollars. And for most organizations, a simple A/B test plan will generate positive returns.

But it is critical to understand that this kind of testing is a blunt instrument that coarsely measures winners and losers. By definition, an A/B test compares how a statistically significant sample of visitors reacts to two “calls to action” or some other piece of con-tent. It measures their reaction against a single outcome. This implicitly assumes that all of the visitors in that statistically significant sample are “the same.” But we know that in almost every case, this is an over simplification.

Misleading A/B testing success: An exampleConsider an automotive manufacturer that has a website designed to generate leads.

Their current call to action boasts a respectable 8% conversion rate meaning that

Randy Woods President, Sitecore MVP

When A/B tests lie: The imperative of persona analysis

42 | www.nonlinearcreations.com

7 out of every 100 visits to the site becomes a lead. The marketing director imple-

ments an A/B testing program to try to improve this figure. They test four new vari-

ants, each of which emphasizes a specific aspect of the vehicle:• Test A highlights the safety record of the vehicle• Test B highlights the vehicle’s power and performance specifications• Test C focuses on the opulent interior and high-quality finishings• Test D speaks to best in class fuel economy

Each test is exposed to 50,000 different visitors. The end result is clear:

Test Conversion Rate Conclusion

Test A: Safety 10.1% Winner

Test B: Performance 7.2% Loser

Test C: Opulence 3.3% Loser

Test D: Fuel-efficiency 8.4% Statistical tie with control

Probing deeper — personas and A/B testingWhen building their site, the marketing director spent a lot of time crafting personas

— different “types” of visitors to the site with differing motivations, interests and

emotional attachments to the brand. They derived the following personas:• The soccer mom• The performance-oriented buyer• The economically-constrained buyer• The environmentally-engaged buyer• The luxury-buyer

Perhaps not surprisingly (as I’m creating this example and I need it to illustrate my point), these different personas responded very differently to the variants tested.

When A/B tests lie: The imperative of persona analysis | 43

Persona Sample size

Conversion rate

Test A: Safety

Test B: Performance

Test C: Opulence

Test D: Fuel-efficient

Soccer mom 2,390 15.0% 3.0% 2.0% 9.0%

Performance-oriented

1,357 5.0% 17.0% 4.0% 2.0%

Economically-constrained

850 6.0% 3.0% 0.4% 17.0%

Environmentally-engaged

113 5.0% 0.8% 0.2% 23.0%

Luxury buyer 290 8.0% 11.0%* 21.0% 2.0%

*Note: You need to be really careful with statistical validity when you start looking at sub-segments. The 11% conversion for luxury buyers viewing the “performance” test is right on the edge of statistical validity (32 of 290 visitors converted vs. 400 of 5,000 visitors for the control ~ 95% statistical certainty.)

Clearly, Test A is the best option only for the largest persona group — the soccer moms. All of the other personas would convert better if presented with one of the other offerings.

In fact, if the winner for each persona was implemented, the overall conversion rate would hit 16%. That’s double the control figure and 4.5% better than the non- persona adjusted winner. Critically, the number of leads from the highly lucrative lux-ury-buyer persona almost triples.

44 | www.nonlinearcreations.com

While A/B testing has the capability to be a silver bullet during personalization based on personas, you must remain vigilant to ensure that your tests are giving you the information you require, as opposed to the information you desire.

The previous chapter argues that it is critical to analyze A/B tests by how individual personas react to the content being tested. Determine which variation wins for each persona and then target that variant to the right visitors (here’s the short summary — an A/B test that doesn’t break down test results by the type of visitor can only pro-duce an “average” winner; examining test results for sub-segments/personas/audi-ence lets you tailor a winner for each group).

I hope the logic for this is clear: not all visitors have the same motivations and relying

on one “best” call to action for all personas won’t deliver the most optimal results,

but actually doing this is a little tricky. It raises many questions, but most urgently

these three:1. “How do I categorize my visitors into personas?”2. “How can I combine this data with A/B test information for analysis?”3. “Once I have a winner for a given persona, how do I show that winner to that

persona and only that persona?”

Randy Woods President & Co-Founder, Sitecore MVP

Getting to know your visitors: A/B testing and persona analysis

Getting to know your visitors: A/B testing and persona analysis | 45

Categorizing visitors into personasVisitors provide you with many clues about their interests and motivations which can

be identified by:• The search term they use to find the site• The terms they punch into your site’s search engine• The content they view while visiting your site

If they have been in contact with you already, you may also have explicit knowledge

about their job title or main interest. The non-technical challenge is to build rules that

will assign a visitor to a given persona based on these “clues.” For example, a site sell-

ing software might determine that they have five personas of import:• Technical buyers• Business buyers• Existing customers• Shareholders• Job seekers

Visitors who spend most of their time on the site reviewing job descriptions can probably be assigned to the “job seekers” persona, unless they then go on to spend a substantial amount of time reviewing last year’s financial statements, then you might declare them a “shareholder.” Determining these rules does depend on intuition and insight, but should also be informed by a deep probing of your web analytics system. It will, at the very least, tell you if the segment you’re contemplating exists. The tech-nical challenge is translating these rules into reality. You need some mechanism for applying these persona categorization rules and it will need to operate in real-time if you intend to use it to personalize content.

A marketing-enabled content management systemIn the last three years, web content management software vendors have shifted

their focus from publishing content to making content drive business out-

comes. There are a number of players in this space, but we have found Sitecore’s

Customer Experience Platform (CEP) to be one of the best. A marketing-enabled

CMS like Sitecore CEP allows authors to specify into which persona a visitor to the

page they have published should fall. Sitecore not only achieves the implementa-

tion of this concept, but succeeds at doing it subtly as well. Any visit to any page

can add “points” to multiple personas. So an author publishing an overview of a

46 | www.nonlinearcreations.com

software product’s features might give visitors 5 points each in the “technical buyer”

and “business buyer” personas. When publishing the technical specs page, they

might assign 10 points to “technical buyer”. The key point is that application of the

persona-categorization rules is:• Marketing driven — it’s performed by those creating and publishing content• Intuitive — no coding is required

Google Analytics: A less than satisfactory fall back positionIf you do not have access to — and are not likely to gain access to — a marketing-en-abled content management system, then you can get some insight into how per-sonas behave on your site using Google Analytics.

Create new “segments” within the Google Analytics Advanced Segments section that map to your personas. Define the segment by the content visited. The following screen-cap shows the rules we created at nonlinear to identify visitors who may have an interest in our digital services. We did the same for our potential enterprise client persona.

Getting to know your visitors: A/B testing and persona analysis | 47

While it does give you some insight, this approach has a number of drawbacks com-

pared to Sitecore or a comparable system:• You may double (or triple or quadruple) count visitors. The same visitor may be

categorized into more than persona if they meet the criteria• It can be exceedingly laborious to set up the rules within Google Analytics, par-

ticularly if your site’s information architecture does not parallel your defined personas

• An analyst must update the definitions whenever new content is added or removed from the site

• Perhaps most critically, you will not be able to use the segments you have defined to drive real-time delivery of personalized content meaning that this is an analysis only exercise

Combining persona data with A/B test results for analysisUnfortunately, this process is not as straight-forward as one might hope. Marketing-enabled CMS products like Sitecore have placed a priority on making it easy for auth-ors to implement personas and design and implement A/B tests. They have spent much less time focusing on how analysts can understand the results.

And yet this is absolutely critical — without access to the numbers there is little point in personas, A/B testing or personalizing content delivery.

nonlinear takes the position that the majority of organizations already have a web analytics system in place. In most cases, they have personnel trained on that system and it makes little sense to ask them to learn something new.

If you do elect to use the Google Analytics segmentation approach described above, you are in luck. The one significant advantage this approach provides is that analysis is easy. If you conduct A/B tests using Google Content Experiments, you can segment the results using your Advanced Segment definitions. This should be straight-forward for any intermediate Google Analytics user.

48 | www.nonlinearcreations.com

Taking action by targeting calls to action to specific personasFortunately, if you have a marketing-enabled CMS like Sitecore, this is entirely straight-forward. Once you have analyzed your A/B test results by persona and identified the relevant winners, simply use the built-in personalization capabilities to ensure the most powerful call to action for each persona is the one that gets displayed.

If you have used Google Analytics to monitor personas and conduct A/B testing, you will need to write some very clever code — and embed it throughout your site — to put the highest performing calls to action in front of each persona.

How to recover from search traffic decline after launch — part 1 | 49

Launching or relaunching a website is not a task for the faint of heart. Fears about losing search traffic are very real, as we’ve discovered during client engagement. We teach you how you can identify this problem.

Ever wonder what a marketer’s deepest darkest nightmare looks like? Let us lay it out for you: after months and months of time, effort and money, you relaunch your new website, and traffic from Google and other search engines plummets by 50%. Terrifying.

As you all know, this isn’t supposed to happen. nonlinear has redeveloped and relaunched hundreds of websites for our clients since 1995. We’ve developed a lengthy checklist designed to preserve and possibly improve visibility of the site in the major search engines, but from time to time it does happen, whether due to time-lines, budget or the inexperience of the development team.

Sometimes nightmares do come trueUnfortunately the content of this chapter is not a theoretical exercise — the approach described in this post and the next one in the series helped a nonlinear client recover from a more than 50% decline in search traffic following the launch of their new site. Note: we did not build the new site.

Randy Woods President, Sitecore MVP

How to recover from search traffic decline after launch — part 1

50 | www.nonlinearcreations.com

Identifying the problemYour site can recover, but it requires rigorous analysis of data to determine the cause of the drop off in organic search traffic and patience while changes you make are indexed and influence search rankings.

Step 1: Export data from Google Webmaster Tools immediately Google’s Webmaster tools only provides insight into the last 90 days, therefore you need to export and store this data immediately. It will provide valuable baseline infor-mation that will help you determine what has gone wrong. Do this NOW.

Step 2: Check for the obviousIs there any chance that you modifed robots.txt during your relaunch? Or made cross-site changes to your meta descriptions? To answer these questions, use Google Webmaster Tools by navigating to Crawl > Blocked URLs and then confirm that any URLs that are blocked are the ones that you want blocked

#list specific folders robots are not allowed to

index #

Disallow:/Careers-to-be-deleted/

Disallow:/docs/

How to recover from search traffic decline after launch — part 1 | 51

Spot check pages on the site for no-index tags. This is as simple as right clicking > view page source and then using “find” to search for the term index. If you find a problem, I would suspect that somehow a global search and replace or other broad, automated task changed tags across the site unintentionally.

Step 3: Identify which landing pages have suffered mostUsually when a site is relaunched, at least some content from the old site is replicated on the new site in some version of the same form. You need to determine if the search traffic decline occurred across the site or is concentrated on specific content. To do this, create an inventory that matches old pages with their new page counterparts. Use Google Analytics to determine search volumes for these pages both pre and post launch. Calculate the percentage decline for each page and look for patterns.

Step 4: Perform before and after segmentation of search trafficYou may also need to understand if search traffic declined for all of your audiences or only specific ones. Search engines like Google present different search results depending on the location and language of the searcher. It is quite possible — indeed it was the case in the recent nonlinear engagement cited above — that the decline in search traffic is concentrated in one geography or language group.

Step 5: Obsess about Webmaster Tools dataThe data provided by Webmaster Tools should let you quickly identify the underlying cause of the decline in your traffic. Start by looking at the following:

1. Is Google indexing the site? - Look to Google Index > Index Status to determine how many pages Google

has indexed - Check Crawl > Crawl Stats to identify the number of pages indexed daily - Look to Crawl > Sitemaps to understand the percentage of your pages that

the crawl is reaching.

2. Identify the crawl errors If any of these reports suggests that your content is not being seen by Google then dig into Crawl > Crawl Errors. Note in particular if you have persistent server errors or a large number of “not found” errors.

52 | www.nonlinearcreations.com

3. Do you have HTML issues? Look to Search Appearance > HTML Improvements to learn if your new site is using title tags and meta descriptions properly. Are you missing title tags? Do you have duplicate title tags? Are you missing meta descriptions?

4. Are you showing up in the Search results and no one cares? It’s possible that your site is appearing in search results, but the description provided by Google is not sufficiently compelling for prospective visitors to click through. Go to Search Traffic > Search Queries and export the data into a spreadsheet. Next, filter the data to identify high volume traffic with low click through rates (start by filtering on “above average” impressions and “below average” CTRs).

How to recover from search traffic decline after launch — part 1 | 53

Step 6: Capture your analysisCompleting this table will make your life easier:

Is robots.txt blocking any URL?

Did you find “no index” meta tags?

Is the decline in search traffic concentrated on a small number of pages?

Did search traffic decline primarily from one geography or one linguistic group?

Is Google not indexing your site?

Is Google reporting persistent server errors?

Which HTML errors does Webmaster tools report?

What percentage of pages with above aver-age impressions have below average click through rates?

54 | www.nonlinearcreations.com

We have helped you identify the roots of your search traffic decline, and now we’re back to give you some hints on tips on how to fix your website and get it back up into the search ranking it deserves.

You’ve identified that your website relaunch caused a dramatic decrease in traffic, now it’s time to fix it. Let’s go through some scenarios:

Problem 1: Robots.txt is blocking URLsThe answer here is straight forward and fast — modify Robots.txt so that you allow indexing of all content. If you are not sure how to do this, delete robots.txt entirely.

Problem 2: Your site is littered with “no index” meta tags• Is robots.txt blocking any URLs?• Did you find “no index” meta tags? • Is the decline in search traffic concentrated on a small number of pages? • Did search traffic decline primarily from one geography or one linguistic

group? • Is Google not indexing your site? • Is Google reporting persistent server errors? • Which HTML errors does Webmaster tools report? • What percentage of pages with above average impressions have below average

click through rates?

Randy Woods President, Sitecore MVP

How to recover from search traffic decline after launch - part 2

How to recover from search traffic decline after launch - part 2 | 55

Server issues, sitemap problems and 404 errorsThese issues should be readily addressable, although server errors may require significant investment to resolve.

Problem 3: The decline in search traffic is concentrated in one country or linguistic groupThis is usually an issue faced by multilingual sites. Google is sometimes unable to effectively parse your site and deliver content in the language that searchers expect. This can be addressed by creating sitemaps (using sitemaps.org schema) that defines which content will be served to the search engines dependent on your site’s linguis-tic groups. While Google supports the rel-alternate-hreflan attribute, which can be added to the HTML on each page of the site, you’ll make your life easier and more by incorporating it into the sitemaps. Google provides a detailed discussion of this approach.

Problem 4: Google is encountering server errorsThe answer here is simple — fix the server errors — but execution can be difficult. One tip is to look closely for patterns in the errors being reported. We’ve found in several cases that the “errors” being encountered are actually URL parameters being accidentally appended to URLs. These are usually transparent to visitors, but the Google indexer sees them as errors.

Problem 5: 404 errors galoreIf you see more than a few 404 errors being reported, then it is most likely that you did not think through or execute a redirect strategy. To save the “link juice” associated with links that used to point to pages on your site, you need to redirect these using a 301 server redirect. Specific implementation details will vary with your server type, but we suggest one of two approaches (or possibly a combination of both):

If most pages on the old site have been replicated essentially intact on the new site,

then:1. Identify the top 500 to 1,000 404 errors reported by Google Webmaster Tools2. Manually map these to the new pages and implement on your server3. Create a catch all “fall back” rule for all other 404 errors pointing visitors to your

home page

If the site architecture has changed substantially so that no one-to-one mapping of

404 errors is possible, then:4. Bucket the 404 errors being reported by Google webmaster tools into themes

that do exist on the new site5. Create regex rules for creating 301 redirects that point all similarly themed 404

errors into a group that points to a new, comparable page

Page and structure fixesThese will take some time to address and require ongoing effort. Effects of making these changes are unlikely to be immediate — so patience is required.

Problem 6: Google Webmaster Tools reports title tag errorsTitle tags are generally considered the most important search ranking factor within the immediate control of the author. Duplicate, short, long or missing titles can kill your search traffic — particularly if your old site had unique, descriptive title tags.

If you have a small number of pages (say less than 500), then take the time to manu-ally craft title tags.

If you have thousands or tens of thousands of pages, look into automating title tag generation. You might, for example, inject product names into the title tag, or repli-cate the page’s visible title (the title that is visible to visitors). In this case, you may still want to hand craft title tags for the 500 or so pages that garnered the most search traffic on the old version of the site.

Problem 7: Many of your pages have high search impressions but very low click through ratesThis issue can eat at your heart — you have pages that are ranking well, but those searchers just won’t click on them. To change this you need to give them a reason to click, and this means crafting thoughtful meta descriptions. In most cases, search engines lift the “meta description” you include in your HTML as the body of the description returned in the search results:

How to recover from search traffic decline after launch - part 2 | 57

Doing this will take time and unfortunately, there are no short cuts. Look at the spreadsheet you made at the end of the previous chapter; pick the top 10 terms with the largest number of search impressions and low click through rates. Using incognito mode on your browser, enter the first term and click until you see your site listed, then identify the page listed. Go and write a brilliant meta description for that page and upload the page to your site. Then go to the second term, and repeat, and repeat, and well you get the idea.

Problem 8: Most of the decline in search traffic is explained by decreases in traffic to a small group of pagesIt’s likely that your review of title tags or meta descriptions will explain this concen-trated decrease in search traffic. But if it does not — and if these pages are not par-ticularly subject to 404 errors — then we would encourage you to investigate how the internal linking structure on your site has changed. Did these pages benefit from large numbers of links from within your old site? And if so, has that changed?

Of course, there is one other possibility: have you reduced the amount or quality of content on these pages? If you answer yes to that question, the decline in traffic may be understandable, and perhaps well deserved. You can avoid this fate by creating great content that helps potential visitors both find and appreciate the knowledge you have to offer, all while simultaneously raising your search rankings.

58 | www.nonlinearcreations.com

This year’s Sitecore Symposium in Las Vegas featured a number of exciting announcements, chief among which was the introduction to Sitecore’s latest release. We take a look at Sitecore 8 and what we are looking forward to checking out.

Sitecore rolled back the covers to reveal Sitecore 8 at the recent Sitecore Symposium in Las Vegas. It clearly marks Sitecore’s attempt to leap from a tactical solution to an online publisher and finally to a strategic solution to marketing needs in a connected world.

Those two words – connected and strategic – appear to be core to the philosophy of the latest release. Sitecore is no longer solely interested in helping you run your website; they want to power all of the ways in which marketers influence the cus-tomer experience, and this requires connecting online and offline data sources in highly scalable ways, and then grouping that together with analytics to make sense of the data.

Sitecore 8 makes progress on each of these fronts.

Sitecore 8: The leap to a strategic marketing platform

Randy Woods President, Sitecore MVP

Sitecore 8: The leap to a strategic marketing platform | 59

Connecting data sourcesThe experience profile, introduced in Sitecore 7.5, becomes fundamental to operating your website in Sitecore 8. It’s a single source of information about any given visitor and can be extended to include information about their activities on your website, on social networks, on third-party websites and through interactions captured in your CRM system.

Sitecore 8 fully leverages the ability to selectively store client experience data in the cloud, which offers the promise of enormous scalability and a path forward for avoid-ing the infrastructure problems with which big data is fraught.

Finally- usable analyticsSitecore users have applauded the ease with which the system allows marketing tac-tics like personalization and A/B testing to be deployed, but criticized the reporting capabilities of the platform. It’s obvious that Sitecore listened to their customers and as such the analytics in Sitecore 8 mark a significant step forward. Highlights of the new release include:

• Well thought through reporting on A/B and multivariate tests that allow report-ing against specific outcomes or against the overall “value” of a site visit as mea-sured by engagement value.

• Core reports that replicate much of what you can find within Google Analytics, but extend this to allow for the inclusion of custom variables – either extracted from the Sitecore experience database or appended from other systems. Importantly, it also allows you to understand how different types of visitors (per-sonas or audiences) interact with your site.

• Visual path analysis allow marketers to gain an understanding of how visi-tors navigate their site and which navigation paths drive profitability; it can be extended to include multichannel data.

Taking actionSitecore has offered marketers some level of ability to personalize content since the days of the online marketing suite (circa 2009). The Digital Marketing System (DMS) of recent years resolved the scalability issues of the OMS and simplified the ability of marketers to undertake A/B testing, personalization and other digital marketing tactics. Sitecore 8 represents a culmination of what Sitecore has learned from these

60 | www.nonlinearcreations.com

earlier releases:

Test everything, everywhere: As I suggested in a previous chapter, this philoso-phy faces some real world barriers, but it’s clear that Sitecore 8 has been carefully designed to allow even infrequent content authors to easily test and understand the impact of the content they create; interfaces designed specifically for optimization experts provide power user tools.

Extending the reach of personalization: Sitecore introduced the Federated Experience Manager, a solution that extends the reach of Sitecore to systems not managed by the platform. It holds the promise of capturing data about a visitor from their behavior on sites not managed by Sitecore and delivering personalized experi-ences to the visitors on these sites.

The gleaming promise of machine learning: Michael Seifert pointed to future direc-tions during his keynote when he quickly illustrated in-lab integrations of the Sitecore DMS with Microsoft Azure Machine Learning. This offers something approaching the holy grail – automated segmentation of visitors based on cross-channel behavior and an automated presentation of the most promising marketing tactic. It’s an idea that has been around since at least 2000 – the key question is whether Sitecore can make the vision a reality.

Sitecore 8 is due to be released “in time for the holidays,” but we’re predicting avail-ability in mid-Q1 of 2015. It offers marketers a whole new range of capabilities, but the learning curve will be steep, both with the new product and with the concepts in general. We look forward to helping our clients quickly drive business results from the new capabilities and are actively seeking clients to participate in our own beta program.

chapter 2: technology

An introduction to Sitecore for developers | 65

Examining Sitecore from the developers perspective by laying out each of the most common elements and explaining how they work together to create the pages that are created.

In this article we’ll talk about the main development concepts of Sitecore, describing how data is organized and how each page is presented

Data structuresIn Sitecore, data is hierarchically organized in a tree. This type of organization, shown below, is similar to how files appear in an operating system.

Item• Each node in a Sitecore tree is called an Item, similar to an object in Object-

Oriented Programming. Items are organized in a big unified tree of content which represents Sitecore’s database

Rodrigo Peplau Sitecore Developer

An introduction to Sitecore for developers

66 | www.nonlinearcreations.com

• With the exception of the “Sitecore” item, at the top of the content tree, all other items have a Parent node

• Every item may have one or more Children• Some items in the content tree represent site pages which can be accessed by

visitors, others are not directly accessed and have their data used for other pur-poses (for instance, to fill the options in a dropdown)

TemplateIn an analogy with Object Oriented Programming, a template would be similar to a class. Every Sitecore item has a template counterpart.

Like everything else in Sitecore, Templates also have their own content tree:

In the image above we have a “Richtext Page” template, created to represent a simple page with a title and a block of text.

FieldClasses have attributes while templates have fields. Just as attributes can be of differ-ent types (e.g., string, integer, datetime), in Sitecore fields can also have specific types.

In the image below we have the definition of the “Richtext Page” template, with its two fields:

An introduction to Sitecore for developers | 67

Sitecore automatically provides an interface for content editing based on the types of fields present. For example, when editing a “Richtext Page” item, this is the inter-face we’ll see:

Sitecore vs object oriented programmingA short comparison of entities in Sitecore and in object oriented programming:

Object oriented programming Sitecore

Object Item

Class Template

Attribute Field

LanguageSitecore natively supports multiple languages. Each item on the content tree may have versions in different languages, with English as the main language, but new lan-guages can be easily added and become available for immediate editing.

68 | www.nonlinearcreations.com

DatabaseEvery Sitecore installation has at least three databases that are stored separately and have a predefined basic structure and individual content trees. The three main data-bases are:

1. Core — Contains the data needed for running Sitecore and the .NET member-ship provider tables

2. Master — Database used for content authoring, that contains all versions of all items

3. Web — Used for the public website and is accessible to visitors. Contains only the last version of each published item. It is a subset of the “master” database, optimized for faster performance and smaller size. Whenever content is pub-lished, the latest version is copied from “master” to “web”

Sitecore APIThe following class diagram illustrates the entities relationships within Sitecore from the point of view of items. These classes can be easily turned into code.

An introduction to Sitecore for developers | 69

Usage examples (C#)

var contextItem = Sitecore.Context.Item; // Gets

the Item for our current page

var name = contextItem.Name; // Name of the Item

var itemLanguage = contextItem.Language; //

Language of the Item

var title = contextItem.Fields[“Title”].value; //

Value from field “Title”

PresentationProgrammers have full control over the presentation layer in Sitecore. Below we describe the concepts related to the presentation layer.

DeviceDevices are a way for Sitecore to categorize requests and allow for content to be rendered in different ways across different media, including web, print material and mobile phones.

LayoutLayouts define the general structure of how a page is presented. If you were to com-pare this idea to .NET concepts, a layout would be the equivalent of a master page. It is possible to define static portions, dynamic blocks modified in the code behind, as well as placeholders which will be filled with content at a later time. Every layout in Sitecore points to an .aspx file where all the usual programming is done using .NET.

SublayoutSublayouts define the appearance of parts of a page and are used along with a lay-out. Each sublayout will be rendered within its placeholders to present the final layout of a page. Comparing this to .NET concepts yet again, a sublayout is similar to a user control and points to a .ascx file.

70 | www.nonlinearcreations.com

RenderingRenderings are sublayouts programmed in XSLT instead of .NET. They don’t need to be compiled, but because they are interpreted, they are slower and can raise a lot the total rendering time of a page.

PlaceholderPlaceholders are ASP.NET controls which, when used in layouts and sublayouts, allow content blocks to be added in predefined positions.

ExampleThe image below shows how layouts, sublayouts and placeholders are used to ren-der a page.

Our 12 laws of Sitecore development | 71

Each developer has their own preferences for achieving the best results during Sitecore development. The developers here at nonlinear consider these twelve some of the most important.

Whether you are a Sitecore pro or just getting your feet wet with the customer engagement platform, there are a few tried and true rules to getting the most out of the product. Technology is only as effective as the people that implement it, so mak-ing sure you’re at the top of your Sitecore development game will be beneficial for your entire organization.

1. Use Page Editor friendly controlsContent author experience is something we talk about often here at nonlinear. Ensuring that your content authors have the capabilities to create and modify con-tent in real time using “what you see is what you get” or WYSIWYG editing is crucial. By incorporating these controls into your development, your content authors will avoid having to delve into the Sitecore content tree to find the matching fields.

Saulo Venancio Sitecore Developer

Dwayne Gockel Solution Architect

Our 12 laws of Sitecore development

72 | www.nonlinearcreations.com

2. Don’t bind a repeater unless the situation calls for one

The <asp:Repeater> control allows a list of items to be bound to it and causes the specified HTML (and possible code) to be executed for each item. In a basic repeater pattern, there is often a header and footer section that contains HTML that does not repeat. Binding an empty list to a repeater will cause any header and footer HTML that is in the repeater to show up even though no items are repeated. This may be what a user wants, but often that is not the case and by not binding a repeater, you’ll be ensuring that none of the HTML in the repeater will show up on a page.

3. Ensure proper null checks before accessing an object

To do this, the first thing you should check, with any variable or method, is to deter-mine if the resulting object is null. As a rule, if an object is not initialized, it will be set to the “null” value. Many methods will also return a “null” value if certain conditions are not met. Trying to use an object which has been set null generally results in a run time exception that will cause your website to crash (sometimes gracefully, some-times not), so ensuring that you are aware of the characteristics of your variables is paramount to good development.

4. Be cautious about HTML generated in backend code

Generally, .ascx files contain HTML which dictates the physical layout of the page, while the .ascx.cs files contain code that populates the layout. Though the general rule is to make sure not to include any HTML in the backend code, there are situations where this method can solve certain issues. The biggest thing with this law is to be aware of what’s being used where to ensure that you have an understanding where the results are coming from, either HTML or backend code.

5. Don’t code after return statementThough this one definitely depends on both the situation and your own preference (some people prefer conditions do that have a single, standalone return statement at the end of the method) not coding after the return statement is common. If you are trying to simplify multiple bracketing, this is a good option.

Our 12 laws of Sitecore development | 73

6. Before deploying, check commands to ensure a successful Page Editor user experience:

• Add a component to a page without a data source• Add a component to a page and point to an existing data source item• Add a component to a page and create a new datasource item for it to use• Remove the component from the page• Remove/add child items from the component if it is a container component

7. Ensure that all Sitecore fields that require a datasource are properly set

If you have any fields that point to a list of items in Sitecore (or part of the Sitecore content tree) for which you require population from a datasource, ensure that you have correctly configured the datasource to allow a content item to have “valid” val-ues to choose from when accessing that information.

8. Use the Sitecore debugger to find performance issues

Though its use may depend on the type of contract you have with a client, if budget and time allow, testing out a variety of scenarios, both positive and negative, will help in delivering a thoroughly tested, and ultimately superior, end product.

9. Choose icons that correspond to your content types

This one goes back to creating a positive user experience for the content author. By choosing unique and logical icons or icon groups for related items (news, news folder, news listing etc.) you will give them a visual indicator for what type of page or component they are looking for. Sitecore has a number if built in icons. To select one for a page, simple double click on its associated icon in the content editor.

74 | www.nonlinearcreations.com

10. Use default standard values (most of the time)

Using standard values to populate certain fields can be a way to make life easier for your content authors, but make sure to thoroughly consider the choice before decid-ing that’s the way to go. Sometimes there will be cases where the process requires a content author to select a value with a possible required validation rule. In those cases, if instead a standard value has been chosen, the content authors will be less likely to reexamine and fill in the value correctly, since it will already appear to be full (with the standard value which may not be what they wanted in the first place).

11. Provide field-level help for your content authors

For each field of a template in Sitecore, a line of text can be added to give a content author more information about what the field should contain and how it should be used. While this can be a pain for developers to fill in and become redundant once a content author is experienced in content creation, it’s still a good practice to help new content authors, or for fields where the content or use of the field is not intuitive.

12. Include real-world content into testing to make sure everything is working as it should

Depending on budget and the type of contract, including some real-world content

into your testing should be standard across all projects. Having an ample amount

among your pages will help in analyzing the performance of the site, while also test-

ing pagination and ensuring that specific features like sorting function correctly.

Other suggested site content includes: image sizing and language variants to ensure

that the layout of the pages remain viable.

Sitecore operations: Four must-have resources | 75

If you are considering a Sitecore implementation or have recently launched an instance of Sitecore, you’ll want to be sure to address each of these four key Sitecore operations resources.

During the planning stages of Sitecore implementations, we are often asked about which IT resources are most crucial for the continued success of the deployment. As you can imagine, each project requires a customized answer, depending on the spe-cifics, but there are a few that carry through with the majority of our implementations.

1. Managing servers/infrastructureThe effort here should be minimal, as this is largely routine tasks for patches, backup verification and the sort that can be mostly automated. If you decide to have your Sitecore partner provide managed hosting, this work could be offloaded to them. This work will require about one day per month for verification once the process is established. If you do decide to keep the servers and infrastructure management in house, you’ll typically assign the responsibility to the IT department.

2. Sitecore application monitoringThe ongoing monitoring of the Sitecore application itself requires roughly one day per month to review logs, cache settings and fine tune the operational settings. This

Glen McInnis VP Technology, Sitecore MVP

Sitecore operations: Four must-have resources

76 | www.nonlinearcreations.com

work could be offloaded to a partner under a maintenance agreement. There is no hard and fast rule on where this person would report if part of the client team, but we see a slight bias towards this person residing inside the IT organization.

3. Managing complex content layouts/simple front-end (HTML/CSS) development

The promise of a content management system is a set of robust templates that can accommodate any future need. The reality is that there will be special circumstances (campaigns, landing pages, etc.) that require a bit more knowledge of HTML/CSS and possibly JavaScript. The power user with this skill is often found in the Marketing team and can take on this work as part of their normal duties. They also tend to be the lead users from which others ask for assistance. The level of effort for this skill is hard to predict and is entirely dependent on the frequency with which new tem-plates may be required. If an existing member of the Marketing team does not fit this description, we would suggest one day per week as an average level of need.

4. Ongoing improvements (new templates, workflows, etc.)

The development of new features requires UX/design, Sitecore/.NET development and HTML/CSS/JavaScript skills. Based on the size of the web properties and what will be a phased launch, most of nonlinear’s clients have three to four people avail-able part time to take on this work. Their actual allocation would equate to 1 to 1.5 full time equivalents or FTEs. Once all phases of the re-build and migration are com-plete this should drop to 0.75–1 FTEs.

Six tips for scaling Sitecore infrastructure | 77

Ensuring a sufficient amount of power behind your Sitecore implementation requires consideration into your infrastructure set up. Without the right structure in place, you risk launching a site that cannot stand up to the required activity.

Sitecore can scale both vertically and horizontally. In this chapter we examine the ways in which you can scale your Sitecore solution using both approaches and present a few tips to control your total cost of ownership.

Vertical scalingThis is usually the easiest method of scaling Sitecore, but at some point you will reach a physical limitation of your hardware or limits in your virtualization technology. That said in an N + 1 solution you will want N to be the smallest number possible to mini-mize complexity and infrastructure footprint.

Add memory to content deliveryContent delivery servers can use memory to great benefit. Use the cache.aspx page in /sitecore/admin to assess the level of HTML cache being used on your site. If your site is routinely using 60%+ of the cache, increase the cache size. On 64-bit systems with enough memory you can effectively remove the limit.

Glen McInnis VP Technology, Sitecore MVP

Six tips for scaling Sitecore infrastructure

78 | www.nonlinearcreations.com

If your solution is doing heavy processing, CPU increases may be warranted, but a 4-8 core CPU is usually enough. 8GB of RAM or more would be a good starting point.

Add compute power to content authoringContent authoring servers can take advantage of caching to some extent, but it does not have the same impact on scale and performance as the HTML cache in con-tent delivery. Most of the workload in the authoring server comes from CPU heavier actions like publication, dynamic page assembly, reporting and the sort.

Don’t forget the database clusterMany times I’ve seen complaints about Sitecore performance when in reality it’s the database cluster that is overloaded. If you suspect the database is the issue you can do a quick check with the database test script.

Horizontal ScalingOnce the individual nodes have been maximized we start to add nodes. There are several options that can be explored.

Add content delivery nodes behind a load balancerSitecore easily supports multiple content delivery servers. Install your solution, make sure scalability settings are enabled and with the help of a load balancer you now have two servers handling the load of the published website. You might also want to explore the Sitecore Azure module for this purpose.

Add content authoring nodes behind a load balancerJust like content delivery, authoring servers can also be setup to work in a load bal-ancer pool. For sites with heavy and large publication needs, one of the nodes can be designated as a dedicated publishing instance.

Purpose built database clustersvThe four standard Sitecore databases (web, master, core, analytics) all have very dif-ferent I/O patterns and it can be difficult for a DBA to find a balance in those needs. The analytics database is the most frequent database to reside on a dedicated clus-ter. Organizations that collect large data sets may also have separate clusters for col-lection and reporting.

Six tips for scaling Sitecore infrastructure | 79

Reference DeploymentSince a picture is worth a thousand words, here is a diagram depicting one of the most common patterns for moderate volume sites. Two content delivery servers, a single content authoring server backed by a SQL cluster.

80 | www.nonlinearcreations.com

Jason St-Cyr Solution Architect, Sitecore MVP

A new way of thinking: Continuous deployment for Sitecore

The idea of continuous deployment of your Sitecore website may seem daunting, but we’re here to tell you that not only can you do it, it will improve your deployment and streamline your processes.

My favourite topic these days is trying to get folks to move over to a continuous deployment model where each code check-in goes straight to production. Mike Brittain, from Etsy, got me hooked back when I attended the 2013 ALM Summit and he did his presentation on “The Dirty Details” of continuous deployment.

Essentially, he broke my brain by explaining that they didn’t have a test environment.

WHAAAAT?Yes. They deploy straight to production, multiple times per day and many multiples of times. The risk-aversion side of my brain was freaking out. How can you do this? What about the bugs?

Guess what? If you can fix a bug in 15 minutes and have it back in production 15 minutes after that, it doesn’t really matter. You’ve got 30 minutes between the time somebody notices an issue to when it’s resolved. Imagine your current process to get a fix to production, does it even come close?

A new way of thinking: Continuous deployment for Sitecore | 81

There’s no way that would work for meLet me be frank: you’re probably wrong. Unless you are running a website where somebody will have serious financial, legal, or health consequences from a bug, you are not running critical software. The site may be critical to your business, but your uptime requirements are probably in the realm of allowing an hour or so of downtime each month, therefore you can likely afford a bug here and there.

What you probably can’t afford is to spend a large portion of your marketing or IT budget and not get anything for it.

Continuous deployment solves that problem by putting what you are paying for dir-ectly into your revenue stream. Realistically, you will probably still hide a lot of it until the work is finished, or a package of features are available together, but at that point the power is in your hands to make it available to your users.

If it’s not tested, it’s not doneI agree, completely. In fact, I usually enforce that a review of any user story work be a part of the definition of done. Automated testing is your friend here, and you can invest in it on an ongoing basis to build up the amount of checks you do before code lands on the production server. Unit testing will build your base, then build on that with automated UI flows, integration tests, and regression tests. By the time all these tests run, there’s very little that hasn’t been checked.

82 | www.nonlinearcreations.com

To be safe, you can hide stuff in production so that only testers can see it until you are sure.

How will I know if something is wrong?This is where things start getting difficult. With this model, it’s inevitable that some-thing will slip through, and because it is in production you’ll need to resolve immedi-ately; monitoring becomes incredibly important. We need to be able to have monitors telling us if layouts are broken, if Sitecore is throwing unexpected errors, if indexes are not rebuilding, or if the job queue is getting backed up.

There may also be transactional portions of the site that we need to monitor to ensure that traffic and activity has not drastically dropped off due to some unknown issue in the business logic.

Planning for these monitors is really important, and needs to be done before getting rid of all our staging environments.

What about database changes?Yup, you’re right. This one sucks. At this point, we have no more testing environ-ments, and the developers are changing templates, adding fields, adding new sublay-outs, and all kinds of things to the database. We can use tools to directly deploy these changes to production, but how will this affect the production content of the site?

There is no easy solution here. For each case, there is a different approach. I’ve recently blogged about how you can handle templates and sublayouts for continu-ous deployment, but even there you have no fool-proof solution. At some point, we have to accept that something might just break.

And then we’ll fix it.

This sounds riskyHow many times has a deployment gone incorrectly? How many times have you found out somebody “missed” something pushing from one environment to another one? Mistakes happen. However, when those mistakes happen you are usually push-ing 3-6 months of work at once, and losing the benefit of all of it when you have to roll back or fix it on the fly.

A new way of thinking: Continuous deployment for Sitecore | 83

If you are deploying one single change directly to production, you are getting feed-back faster from all of your testers, including your users. If it all goes well, you are also gaining the benefits of the change immediately. If we start building our software more incrementally, and doing it faster and better, doesn’t everybody benefit?

Also, don’t underestimate the power of removing the test environment from the equation to suddenly make developers check their code a little bit more before checking it in :)

84 | www.nonlinearcreations.com

We look at how you can start small by incorporating Application Lifecycle Management into your Sitecore implementations.

Application Lifecycle Management (ALM) is a streamlined review of processes and tools resulting in a continuous cycle of idea generation, product building, meas-urement and data collection and adjustment based on findings, ultimately resulting in improved resources and an iterative project. Sounds like the kind of concept we should all be trying to implement, wouldn’t you say?

We get it. Even though folks have been talking about the importance of ALM to organizations for years, the majority aren’t planning for it, nor do they have a vision of how to get their team to where they need to be. Proper ALM strategy and imple-mentation isn’t something that happens overnight; it success depends on employees across the board: portfolio and program management, architects, designers, testers, developers, and of course, operations staff. In a large organization, putting together a solid plan for ALM within the enterprise can be quite daunting.

All that to say that, while full implementation will be a challenge, small changes are a great way to get started. Your Sitecore implementation gives you an excellent oppor-tunity to start introducing processes that you may not have already in place.

Next comes the inevitable question: What about the bottom line?

Jason St-Cyr Solution Architect, Sitecore MVP

Why Application Lifecycle Management matters for Sitecore

Why Application Lifecycle Management matters for Sitecore | 85

Benefits of ALM • We’re happy to tell you that, generally speaking, the benefits of ALM outweigh

the cost• Increased ROI by delivering more often enabling you to start getting business

value from your investment faster• Better traceability by using tooling to tie together all stages of the application

lifecycle• More efficient delivery by planning for smaller batches and involving more

members of the team• Improved quality through automated testing and regression, and tester involve-

ment earlier in the process• Increased flexibility through task automation and early failure.• Enhanced collaboration by bringing teams together throughout the lifecycle

Applying ALM to SitecoreFor Sitecore implementations specifically, this means you are likely targeting the fol-lowing improvements in your process:

Requirements tracking: Ensuring requirements for your build are available to the team is crucial to making sure your implementation is done efficiently.

Task planning: Team members should be able to tie the tasks they need to accom-plish with the requirements that have been defined, as well as track and report on progress for the implementation. Don’t forget the dashboard for management!

Source control strategy: We beg of you, please put your code in source control. “It works on my machine” does not make for a successful and repeatable implementation.

Automated builds: If you have multiple team members working on the implemen-tation, you should be considering continuous builds and continuous integration to verify checkins made by the team. Or you could just hope it all compiles together… (we don’t recommend this approach!)

86 | www.nonlinearcreations.com

Automated deployments: You will try to deploy your solution manually for a while, but when you want to be delivering often, it becomes very annoying to be constantly creating builds and packages and installing them by hand. Look at tools like TeamCity or TFS to get your build processes flowing, and then tie into release management tools like OctoDeploy or InRelease to push it out. If you can leverage tools like Team Development for Sitecore (TDS) you can push your content as well!

Seven tips for automated testing in Sitecore with Selenium | 87

Quality assurance testing is an important part of any technology implementation. Good testing will ensure that your live product will work exactly as you’ve envisioned it.

Wondering about the best way to test your Sitecore instance? Looking for something that goes above and beyond automated unit testing? We recommend the inclusion of browser automation tools like Microsoft Coded UI or Selenium WebDriver into your testing regimen to ensure that you are fully testing the complexities of your Sitecore solution.

While unit tests certainly have their place, the benefit of employing a browser driver is in its ability to mimic the behaviour of a real life user. In our experience, we’ve found Selenium WebDriver to be one of the best tools for creating and implementing these types of tests.

No matter which approach you follow, any test should follow the three R’s:

Repeatable, Reliable and Resilient

Mauro Madeira Quality Assurance Analyst

Seven tips for automated testing in Sitecore with Selenium

88 | www.nonlinearcreations.com

Why should you being using Selenium?• It’s independent of the developing tool brand and version. Therefore, test code

written for Visual Studio 2010 will work in Visual Studio 2012 (Microsoft Coded UI is not).

• The API can be called and scripts written in many different languages, retaining the way the elements in an HTML page act, and are found and verified.

Developing Selenium scripts1. Since code changes also lead to refactoring tests, try to create sample data that

can be used for regression. One of our approaches in testing Sitecore develop-ment is to create pages with a few related components that can be easily tested, so that when a page with more components is created, we’ll know that the inde-pendent parts are still working and which patterns we should use.

2. Try to group together common steps in your method that can be easily used and reused. For example, logging into Sitecore and selecting Content Editor can be included in all tests involving login and use of content editor. Since creat-ing and tests will be done below /sitecore/Content, the particular test script can start from that folder.

Seven tips for automated testing in Sitecore with Selenium | 89

3. When writing tests that involve Sitecore authoring, you’ll want to rely on the most generic way to find an element in Content Editor and Page Editor modes. Try to avoid dynamically generated ids that can change from content item to content item (many elements in Sitecore embed the GUID in the markup).

4. Avoid using linked text and content dependent values in your test pages. In this case, developers should always include ids that will later be attached to the end of the those dynamically generated by .NET/Sitecore. In this case, XPath is the solution.

5. Trying to understand why a test failed can be time consuming. Writing a method that includes the element being searched and logging the method used to find it can be very helpful when debugging the test.

6. It’s great to get in the habit of taking a screenshot, even when a test is success-ful. Keeping a folder for every test case with screenshots and a log file can help you quickly spot where a test may have failed.

7. Many times being thorough can be impossible or not cost effective. One approach to combat that problem is to write a basic test and take a screenshot at the end of each basic interaction in a page. This way, the visual inspection can confirm what has been tested and expand the verification process.

90 | www.nonlinearcreations.com

Whether you are looking for a front facing website or an internal intranet, deciding on a technology platform will require many considerations. We look at two of the most popular: SharePoint and Sitecore.

Often, our clients will ask us about the possibility of using Sitecore for an intranet or SharePoint for a public-facing website. While the idea of using one technology solu-tion to solve both problems sounds promising, there are many things you should consider before limiting yourself. We have put together five observations based on our experience and what we see as the common needs and business goals of our cli-ents, otherwise known as: Sitecore vs SharePoint

1. Collaboration on Microsoft documents is always better managed with Microsoft solutions

Despite this fact, Sitecore will also give you the potential to work with Microsoft tools like Word and Excel, just not as seamlessly as it would in SharePoint. Microsoft has put a lot of effort into making sure that its Office suite is well-tied to SharePoint work-flows and editing features. For purely informational intranets that don’t really require collaboration on MS Office documents, Sitecore would be a lighter solution that would perform better in content maintenance and content delivery. While SharePoint

Eduardo Moraes Solution Architect, Sitecore MVP

Five observations: Sitecore vs. SharePoint

Five observations: Sitecore vs. SharePoint | 91

is mainly focused on documents, Sitecore takes, as Darren Guarnaccia CEM expert at Sitecore puts it, “a more web content centric approach.”

2. Information architecture is key to successful adoption

The way Sitecore organizes its content tree in a hierarchical sitemap-like fashion pro-vides content authors with a better visual and improved navigability and “find-abil-ity.” SharePoint deployment can easily become a mess in terms of lost and outdated content due to its tendency to grow in multiple directions. Information architecture specialists will have an easier time architecting content organization and growth for Sitecore than for a SharePoint solution. Though technically both solutions will work, Sitecore’s design and functionality will improve the ability to determine whether a project has derailed due to its focus on IA, content strategy and governance.

3. Sometimes content needs to be surfaced and shared

The content created for an intranet is different than content created for the web. Generally speaking, the information shared among employees is intended for inter-nal use and is not made publicly available. However, there are cases where common pieces of content are for both internal and external audiences. Surfacing content from the intranet to the company’s Internet website is possible with both solutions, and it’s also possible when both solutions are used together (SharePoint being used for the intranet and Sitecore for the Internet). Sitecore comes with a SharePoint Integration Framework that facilitates surfacing and sharing content from a SharePoint based intranet to Sitecore sites. But, of course, having the same tool on both ends will make content sharing easier and more manageable.

4. When all you have is a hammer, you may think that everything is a nailJust because you have one or another product’s license already in place in your company doesn’t mean that you should try use it to address all of your needs. You should consider all your requirements and the key differences between the two prod-ucts prior to making a decision on which one to use. Start by asking yourself and your team questions like: Is our intranet intended mainly for communications or

92 | www.nonlinearcreations.com

for collaboration? Is there a need for content being shared between intranet and Internet? What kind of governance model will be necessary? What kind of skills will be necessary to maintain the intranet?

5. What’s in the box?Both solutions are sold with packaged templates ready for use on intranets. As soon as SharePoint is installed, it lets users start creating pages and content using out-of-the-box configurations and templates. Both Sitecore and SharePoint will need active branding, giving users the opportunity to create a unique presence. Out of the box functionality for both solutions can get you started, but inevitably you will need to go beyond the preformatted templates. That’s where you’ll need a good team of spe-cialists involved to help you extend the product to fit your needs, whether that means applying your branding, or creating new templates, or putting together the necessary code-behind for integration points.

Related item publishing in Sitecore 7.2 | 93

Ensuring related content is published in a bundle is now made easier with the latest release of Sitecore 7.2

The release of Sitecore 7.2 has us pretty excited. One of the things that most stands out most is the enhancements for related item publishing, as our team has been coming up with workarounds for similar issues in many of our past projects.

What are you talking about, Jason?I’m glad you asked! With site publishing, the issue of related items doesn’t usually come up. Whether it’s incremental, smart, or a full republish, things that are changing (usually) get pushed.

Note: There are some fixes in 7.2 that address certain scenarios for incremental pub-lishing, so you may want to take a look at the fixes shipped with this build and see if it addresses any issues you may be having with incremental publishing.

The scenario we usually run into, however, is targeted publishing of specific items. This can either be triggered by the user in the authoring environment or via publish actions in a workflow approval process. In previous versions of Sitecore, there was some basic related publishing happening in the PublishItem pipeline that would pull in clones and file drop media. We’d have to build in new events to find components that authors had added to the page being published, as well as referenced media items, and pub-lish all of those related items and their parents along with the selected item.

Jason St-Cyr Solution Architect, Sitecore MVP

Related item publishing in Sitecore 7.2

94 | www.nonlinearcreations.com

And all that is fixed now?No, it isn’t completely fixed, but there are some major improvements. The first thing that has happened is that authors now have an option on the item publishing dialog to select to publish related items, defaulted to ‘true’ so that authors have to explicitly turn it off.

This checkbox triggers the new getItemReferences pipeline that has been added to the publishing flow. By default, this new pipeline publishes “clones, aliases, related media items, and items that the current item refers to in the link database.”

The second big piece is that the PublishAction that we often use in the workflows has some additional parameters, including whether to trigger related publishing. By default, if not specified, related publishing will not occur, so I would suggest adding that ‘related=1’ onto your publish action in 7.2 so you can start reaping the bene-fits of the new pipeline. You can find the other new parameters in the release notes.

Note: The Sample Workflow shipped with 7.2 still only uses the deep=1 parameter, so if you use the sample workflow with Sitecore, make sure you are updating the par-ameters on the auto publish action as well.

My specific test was to add some subfolders in the media library, and then upload an image. Next I referenced that image in a rich text field on a new page and pushed it through the default sample workflow. The page was published, but the image was not because its parent folders were not published, and I had not included related=1 in the PublishAction.

Then I repeated the test using the publish item wizard, but this time selected “Publish Related Items.” The image and its parent folders were published immediately!

Related item publishing in Sitecore 7.2 | 95

What if the item links don’t reference all the items that I want to bundle in the publish?Now that the references code is in its own pipeline, you can add your own classes directly into the publishing pipeline to run any logic you want to return lists of items that you also want pulled forward into the publish. I cannot overemphasize how awe-some it is to drive the logic at the publishing pipeline this easily and not be hooked into events.

96 | www.nonlinearcreations.com

With the announcement of their acquisition of Commerce Server, Sitecore has bounded into the world of a full blown customer experience management platform.

As one of the largest Sitecore partners in North America, we were pretty excited to wake up to the news that Sitecore has acquired Commerce Server, solidifying their reputation as the leader in customer experience management. nonlinear has gleaned first hand experience in integrating the two solutions, completing one of the first Sitecore Commerce Server integrations back in 2011.

The client had 500 unique sites requiring Sitecore customization and ecommerce capability through Commerce Server.

Glen McInnis VP Technology, Sitecore MVP

The three things to know about a Sitecore Commerce Server integration

The three things to know about a Sitecore Commerce Server integration | 97

Breaking it downConsidering the extensive number and varying levels of expertise of content auth-ors, we developed a two tiered personalization approach: one that allowed for daily maintenance of the sites and another for the more robust administrative tasks like adding additional items to their particular site’s catalog. The barometer for a success-ful end-user experience required the implementation of a shopping cart interface with shipping, payment, order system, member profile and catalog management.

Though it is still early days for Commerce Server’s integration into the Sitecore plat-form, we have put together a list of three things we learned while working on our implementation that can help in ensuring your own successful adoption of the two platforms:

1. Understand the desired functionality before development

Sitecore supports multiple sites, while Commerce Server supports multiple catalogs. In order to simplify the management of commerce content for content authors, we developed an integration framework that allows Sitecore sublayouts to bind to a par-ticular catalog.

98 | www.nonlinearcreations.com

2. Consider the language capabilities of both platforms

Sitecore and Commerce Server can treat multilingual capabilities in a different way. Multilingual property definitions in Commerce Server have a similar effect as Sitecore languages have on items, but you will need to ensure your approach to multilingual in both systems align.

3. Determine the home of the product catalog before getting started

Sitecore is great at storing web content, where as Commerce Server’s strength is core catalogue content. Deciding which system will hold the product content is key. It is almost always a mixed situation where core product information and pricing resides in Commerce Server and Sitecore retains the web specific content. You also need to consider how content ownership will impact the Sitecore DMS.

We look forward to the future of Commerce Server under the Sitecore umbrella, and if our successful implementation is any indication, Sitecore users are in for a treat.

27 Tips for Configuring Sitecore | 99

Have you decided on the Sitecore content manage-ment system to deploy your company website? Great choice! As a .NET architecture, there are a few things your developers should keep in mind when it comes to performance, scalability and security.

Sitecore’s robust .NET based architecture is a huge advantage to teams deploying the product. The speed of development and the configurability of the platform allows for amazing results in a very short time. Conversely, the ever expanding scope of the platform has led to a plethora of settings and configurations that may need adjust-ment for production environments to ensure scalability, security and performance.

Drawn from nonlinear’s project experience and a host of Sitecore documentation we have assembled this list to help guide you in those steps.

Getting Started — Sitecore and IISIf you use the executable to install Sitecore, many of these settings are adjusted

automatically however that can change from release to release and on some occa-

sions; specific policies on the server may prevent the installer from modifying the

configuration.

Glen McInnis VP Technology, Sitecore MVP

27 Tips for Configuring Sitecore

100 | www.nonlinearcreations.com

1. Set permissions on /website and /data2. Ensure the data and indexes folders are outside of the web root and update the

web.config to point to the data folder3. In IIS ensure that Maximum Worker Processes for the Application Pool is set to

1 (under advanced settings)4. In IIS ensure that Load User Profile settings of the Application Pool is set to

“true” (under advanced settings)5. In IIS ensure anonymous access is denied for:

/App_Config /sitecore/admin /sitecore/debug /sitecore/webservice

6. In IIS Enable HTTP keep alive7. In IIS enable static content compression8. In IIS on the CMS server, enable dynamic content compression9. In IIS disable execute permissions on the upload folder10. In IIS enable content expiration using HTTP response headers, especially for the

/sitecore folder (optional)

Sitecore configuration changes11. Ensure the /data and /indexes folders are outside of the web root and update

the dataFolder setting to point to the data folder.12. Include the path to static media files (header images, css files, JavaScript files)

in the IgnoreURLPrefixes settings to prevent Sitecore from intercepting the requests.

13. Disable unused search indexes by setting Indexing.UpdateInterval to 00:00:00.14. Update the standard cache sizes for prefetch, data, item and item as recom-

mended (see the scaling guide), and then test for further adjustments.15. Ensure presentation components that are candidates for caching are set to

cacheable.16. For 64-bit systems with the available memory, disable cache size limits using

Caching.DisableCacheSizeLimits.17. Disable performance counters using Counters.Enabled as they add overhead.18. Disable WebDav by removing the references in:

<log4net/> <system.webServer /> <httpHAndlers>.

19. Disable memory monitor by removing the hook from <hooks />.

27 Tips for Configuring Sitecore | 101

20. Restrict access to .XML, .XSLT and .MRT files using the <system.webServer><handlers> section.

21. Disable the upload watcher by removing it from the <system.webServer><modules> — Sitecore.Resources.Media.UploadWatcher.

22. Optionally disable client RSS feeds by removing the Sitecore.Shell.Feeds.FeedRequestHandler.

23. Remove unneeded headers from the responses. For example X-Aspnet-Version, X-Powered-By, X-AspNetMVC-Version.

Sitecore databases24. Some simple adjustments to the configuration of SQL Server can greatly improve

the performance of the database environment. Keep in mind that some of these settings may impact the backup approach you employ for MS SQL.

25. Set the compatibility level to SQL Server 2008 (100) to take advantage of the lat-est optimizations.

26. Ensure the auto close property is set to false. This ensures that a page will only make one connection.

27. Ensure the auto shrink property is set to false to avoid costly dynamic resizing.28. Ensure the recovery model is set to simple to avoid the high overhead of trans-

action logs.

102 | www.nonlinearcreations.com

Sitecore’s Page Editor is a useful way to improve the content authoring experience, but has its limitations. We address two of those limitations and provide solutions to overcome them.

The key to an effective Sitecore website is the ability to update and edit in real-time and a concentrated effort to make it an accessible, shared project between the Marketing and IT departments. We are big fans of using Sitecore because it covers off both of those requirements, while offering impressive visuals and unique person-alization capabilities with the DMS.

The ease of being a content author in SitecoreEditing content in Sitecore is made easy using the Page Editor mode and its inline edi-ting capabilities. A content author simply needs to navigate the site, find the content to be updated and input the changes directly in the page. While Sitecore has made great inroads to ensuring this process is as simple and intuitive as possible, there are

still challenges that simple planning and a little extra code can address.

Grant Bartlett Solution Architect

Two common Sitecore page editor challenges

Two common Sitecore page editor challenges | 103

There are two common challenges with editing content from Page Editor mode:

1. Content authors may find themselves in a situation where they wish to edit a par-ticular piece of content that is in a field that doesn’t exist on the page in the Page Editor mode. They may come across a field that contains content they want to update, but are unable to access the field due to it not being exposed on the page.

2. The incorporation of dynamic elements are a great way to add visual interest to your site, but can lead to some problems for your content authors. For exam-ple, an element like a slider, which automatically transitions and hides all but the current slide, are problematic to update in Page Editor mode because of these features.

Bringing a developer into the mixAddressing the first issue is quite straightforward and is supported by Sitecore’s native functionality. Sitecore allows developers to add custom buttons to the Page Editor interface to support fields that aren’t exposed by the presentation. These custom buttons are stored in the core database at: /sitecore/content/Applications/WebEdit/Custom Experience Buttons. From here, there are a couple of different types of but-tons. In our case, creation of a new button based on the field editor button template gives us the ability to expose fields that are not otherwise available. Once a button has been created, it can be added to the sublayout (and subsequently your page) via the Page Editor buttons field on the sublayout.

Alleviating the dynamic element issue is a little more complicated and involves using

a two-step process that requires code/CSS updates:1. The first thing to consider is the automatic transition of slides; it will need to be

disabled in Page Editor mode. In the code, a simple check of Sitecore.Context.PageMode.IsPageEditor will help you identify which mode you are in, and from there it’s just a matter of writing the code to disable the transition.

2. The second problem occurs after your slider transition has been disabled. How can the content author edit the second, third, fourth, etc. slide if they are not displayed on the page? Again you will need to enlist your developers to solve this issue using code and CSS: when in Page Editor mode, stack the slides verti-cally so each one is visible and available to be edited.

While Sitecore continues to improve the content author experience, in house develop-ers will have a role to play in creating a seamless experience for the active mainten-ance of a company website.

104 | www.nonlinearcreations.com

In our experience, we have found that Sitecore has impressive capabilities as an intranet platform. We look at two ways that you can start using explicit personalization on your Sitecore intranet:

One the biggest challenges when designing and developing a company intranet is striking a balance between the inclusion of corporate driven materials and allowing employees the freedom to setup personalized views. You want important corporate news and information to be available and visible to all employees, while also creating the most efficient way to track task completion. We’ve identified that Sitecore, a plat-form generally used for front facing websites, has impressive capabilities on which to build intranets that strike the balance between corporate needs and employee personalization.

Personal pageThe Sitecore web part framework provides a solid foundation on which to build a per-sonalized page for employees. By publishing a catalog of web parts with corporate content, application feeds and more generic RSS feed readers, users can construct their own view of the content they need, while giving corporate communications the ability to take over an area of the page when necessary.

Glen McInnis VP Technology, Sitecore MVP

Personalization and your Sitecore intranet

Personalization and your Sitecore intranet | 105

One of the best things about using the Sitecore web part framework for an intranet is that the definition for each web part gets created in the system as an item. This allows you to define which web parts should be available to certain groups and gives you the ability to restrict those who aren’t intended to have access. This functionality can be especially helpful when the widgets are connected to a secure line of business applications like a finance system.

Active Directory profileWhen Sitecore is connected to Active Directory (AD), the profile in AD can be used

to drive personalization. Commonly found information in Active Directory would

include:• Location: If you know an employee’s physical location or building, targeting

facilities updates like fire alarm notices and other geographic content becomes possible

• Org Chart: An employee’s manager or home team is often in Active Directory; this allows executives in charge of that division to target messages to their staff.

• Security Groups: This information varies from organization to organization, but we have seen some common uses: - Project Teams: project based organizations will often create an AD role to

which all project members belong to, allowing for the targeting of mate-rial to that group.

- Role: The role of function someone plays in an organization is also often implied by their AD membership. The most recent example of using this role to enforce personalization I’ve seen is one where all project managers in the company had membership in an AD group, which allowed the PMO to share best practices across divisions.

The major challenge with an Active Directory driven personalization is the quality of the data. Many organizations struggle with keeping this information up to date. If you are able to find an efficient way to overcome the data challenge, you will be well on your way to incorporating explicit personalization into your Sitecore intranet.

106 | www.nonlinearcreations.com

Despite its traditional role as a front facing website platform, Sitecore has shown itself to be worthy in the intranet sphere as well. As with any intranet, search is key. We look at how Coveo’s search product can power your Sitecore intranet.

We’ve talked a lot about what should and shouldn’t be done to inspire employees to embrace your company intranet, and as we all know, user adoption is crucial. Ensuring that your organization has a living, breathing intranet is a tough job for even the most dedicated of web steering committees. The bottom line when it comes to intranets is that for it to beneficial to your employees, it must make them more efficient.

One of the biggest culprits in dissuading intranet use? Irrelevant content. Your employees are not going to go out of their way to find things, so if you are hosting intranet content that is not relevant, compelling or necessary, get rid of it. Having a well developed content strategy will keep your intranet moving in the right direction, but equally important is ensuring that your employees are able to find what they’re looking for.

Allow them to access the content they needYour employees are coming to your intranet to find something. Unfortunately, in most cases they spend more time looking than finding. Searching for a cost effective

Allison Simpkins President, nonlinear digital

Sitecore, Coveo and your Intranet

Sitecore, Coveo and your Intranet | 107

way of increasing productivity and encouraging happier employees? Time to look at optimizing your search. If your employees are starved of the critical information they need to work better and smarter, your company will suffer.

Enter Coveo for intranetsCoveo Enterprise Search (CES) combined with the Coveo G2B for Intranets connects people to information from every nook, cranny and corner of your corporate know-ledge base—no matter what form or format the information is in. Video rich intranet? It’s got you covered. Lots of audio files? Covered there too!

Most organizations have millions, perhaps billions of documents and structured data stored in file systems, email servers, intranets, enterprise applications, databases and web sites. The magic of Coveo is that employees can access all of this across all plat-forms within a split-second.

Provide smart content recommendations and relevancySite search has always been a rapidly evolving technology, and more so now in today’s climate of the ever expanding Big Data and demands from site visitors to have per-sonalized online experiences; we have found that Coveo can help address this need.

To truly engage each visitor, you need to present them with content from all sources and ensure the content is relevant. Coveo blends content located inside Sitecore with sources outside such as customer communities, blogs, extranets, portals, CRM’s and more, the possibilities are endless. This ensures that more relevant information and products are surfaced to the visitor faster, resulting in higher conversion rates, improved self-service, and greater visitor satisfaction.

Employees are able to work more efficiently by allowing them to access critical com-pany information more easily and quicker than ever before through a simple search user interface.

The enterprise world is changing. As we continue to demand better consumer experi-ences on websites, so too must we demand the same of company intranets.

108 | www.nonlinearcreations.com

Are you preparing to launch a Sitecore website? Make sure you’ve checked and rechecked our nine item checklist to ensure its smooth sailing.

Anybody who has ever done a production launch of an application knows three

things:1. There are a lot of variables at play2. Inevitably the law of averages catches up to you3. Something pretty much always goes wrong.

Whether you are launching something internally or externally, these three things will apply; a Sitecore launch is no exception. If you are about to start your cutover plan-ning, here are nine things to keep in mind for your run up to launch day and your post-launch plan:

1. New “must-haves”During cutover testing, new end-users or business groups may be brought in to review the site prior to launch. These individuals may not have had input into the project until now and may have business needs that have not been met. Suddenly, new “must-have” features or bugs are identified on launch day. Don’t worry, you’re reading this before launch day! (Right?) Sound familiar? If so, you have two options: either bring these folks into the project earlier or set their expectations for a “quick turnaround” post go-live to address their concerns.

Jason St-Cyr Solution Architect, Sitecore MVP

Nine steps to a successful Sitecore website launch

Nine steps to a successful Sitecore website launch | 109

2. Task estimates are wrongTask estimates are just that, estimates. The preliminary projections for cutover tasks are usually incorrect, and as a result, dependent tasks can begin to slide through-out the day. This can become compounded, especially if multiple teams are trying to co-ordinate. When reserving your resources for launch day, ensure some flex time for the end of the day so that these resources are still available to continue launch activ-ities beyond the estimated time frame.

3. Domain name transitioning issuesThis is easier to fix when launching an intranet, as standard worldwide DNS-propagation time won’t apply. It’s possible that there may be issues ensuring that users are being sent to the new site as opposed to the old domain, and also issues with sites that are supposed to be linked to the production environment. These issues can both be mitigated by resolving the DNS in advance to a load-balancer inside the network that can be pointed at the old site, and then swapped over to the new site. This allows for advance propagation of the change in DNS/IP mappings without serv-ing up the new site until launch day.

4. Content issuesOnce the full version of the website has been launched, there are usually multiple users who begin reviewing the site and its contents. Typos, grammar errors, layout problems, synchronization with publishing issues, etc. are often discovered as visitors explore the end-user site for the first time. While this can be avoided by establishing a proper Sitecore governance structure, it’s possible that prior to cutover, many users will be focused on content migration and viewing content in the authoring environment and less concerned with the end-user. This is to be expected but thanks to Sitecore’s easy CMS interface the changes can be made directly in production and published without needing to do another deployment. A note of caution: make sure you have a tracking system to track all the issues that are identified during this process!

5. Go/no-go time frame needs to be flexible

Project teams will usually have the initial go/no-go meeting and look at remaining issues to determine if the team should be given more time to resolve them followed

110 | www.nonlinearcreations.com

by another go/no-go meeting to reassess. These meetings often reveal obstacles to a successful launch that might include incorrect estimates, newly discovered bugs or other barrier issues. Be prepared to change the time of the go/no-go decision to reflect the extra effort that will be required to address the new issues.

6. Sitecore performancePerformance testing should cover finding most of these issues but when the actual load of users begin using certain features new issues may be identified. Your team needs to be ready to disable these features for further investigation or real-time capability to address the performance issues. Integration points are the most com-mon cause of this, so make sure these are included in your performance tests prior to launch.

7. Browser compatibilityWhile QA has been doing browser verification, it is inevitable that slight differences in end-user browser/OS/hardware may find previously unknown compatibility prob-lems. If your organization is launching an intranet, you may have control over the hardware and software installed on company-issued workstations, however users with various mobile devices or working from home may encounter unforeseen prob-lems. When launching to the Internet, make sure the focus on browser testing is based on your historical analytics data to know where to focus your testing/develop-ment efforts, smaller groups can then be scheduled in based on business priority and desired markets.

8. Handling influx of supportDue to the new user experience, and possible remaining issues in the system, there are usually a lot of questions that will come in via email, phone, forums, or your Twitter account. Resources need to be prepped for this increased load and there will be many prioritization decisions that need to be made to ensure tickets are han-dled efficiently. During the first few days only critical issues should be addressed and everything else should be prioritized into the backlog.

Nine steps to a successful Sitecore website launch | 111

9. Schedule for post-launch deploymentsAfter the initial cutover, there needs to be an agreed upon deployment plan for push-ing out priority fixes for issues found during cutover or on the first few business days after cutover. Expect that the first day will likely be handling the influx of questions and prioritizing the issues, so starting on the second day you will likely need a sched-uled deployment of priority fixes. If you follow these steps, you’re sure to feel a whole lot better on launch day.

112 | www.nonlinearcreations.com

Eduardo Moraes Solution Architect, Sitecore MVP

If your organization requires a CMS with the capability of creating multilingual sites, Sitecore is for you. Remember to keep these three considerations in mind when building your new sites.

nonlinear has developed extensive experience in building sites prepared to work with

multilingual content. Based on this experience, we have learned that there are sev-

eral things that projects employing the Sitecore CMS need to take into consideration

to ensure proper implementation that allows for the reuse of content templates and

replicated branding for localized content. These include, but are not limited to:• design of the content tree• shared (or not) information architecture• how to deal with fallback content when translation is not available• use of dictionaries for common labels and other dynamic or static elements of

pages• how to proceed with workflows for content that needs to be necessarily trans-

lated to multiple sites in different languages• how the media library should be organized to ensure reuse of media assets

where applicable.

Three considerations when building multilingual sites with Sitecore

Three considerations when building multilingual sites with Sitecore | 113

Language variantsThe first thing to do is to ensure you have the language variants configured in your system. By default, English will be there. Next, you need to add the other languages your website will need. In the screenshot below we have the Portuguese Brazil settings being added to our site.

Content tree designThe way you architect your content tree in Sitecore should be determined by a series of inputs and variables. It starts with the information architecture for your new web-site, which is created to ensure a proper navigation for both site visitors on the pub-lished site and content authors working on Sitecore’s desktop interface. Let’s take the example below using an excerpt of an information architecture (IA) diagram prepared for one of our clients:

114 | www.nonlinearcreations.com

In Sitecore it would be configured as follows:

The approach taken above seems an obvious one when we think of it only from the IA diagram’s perspective. However, what if you want URLs to be localized to different languages? You will need to consider having the display names of these items also defined in Sitecore on the language version of each item you want a translated URL.

Same content tree with display names in Portuguese:

Three considerations when building multilingual sites with Sitecore | 115

Also, to avoid blank spaces showing up in your navigation menu on your site, you want to make sure that the presentation logic will not display items that don’t exist (don’t have a comparable different language version) in a given language variant. Let’s say for example that the item \Empresa\Missao e Valores\Observancia (equiva-lent to \Company\Mission and Values\Compliance) doesn’t yet have a Portuguese version. It could have a field called “Include in Navigation” checked to false. The pres-entation logic for the menu would verify the content of this field and display or not display the item on the website’s menu.

If your navigation is too different in a given language variant then you may con-sider creating a separate node in the content tree for the localized items instead of using the out-of-the-box language variants feature; the same goes for media items. Files that are common to both sites should be shared, while localized files should be placed in a separate folder created specifically to hold media items for that language.

WorkflowsThe use of workflows can help to ensure that content is translated to a given lan-guage after it is created in its primary version.

Let’s say that items are first created in English and after that they need to be trans-lated to another language before being published. A workflow could be configured as follows and applied to the appropriate content templates:

.

116 | www.nonlinearcreations.com

With the release of Sitecore 7.5 and 8 on the not so distant horizon, Sitecore owners have a decision to make on how best to plan their upgrade road map. We look at what questions need to be answered before making those decisions.

Sitecore has released the latest version of the Customer Experience Platform, version 7.5, amidst all the recent fanfare surrounding Sitecore 8. The release marks the next stepping stone for users and comes with a series of upgrading questions. We’ll take a look at what you need know before making the decision to upgrade to 7.5, but first, here is a quick refresher on the most significant enhancements for each recent release:

• Version 6.5 and 6.6 — Major upgrades to Page Editor and DMS functionality• Version 7.0 and 7.2 — Massive content scalability with the addition of buckets,

developer goodies and publication efficiency improvements• Version 7.5 (just released) — Massive analytics and customer experience scal-

ability with the new analytics collection database (xDB) moving from SQL Server to MongoDB

Sitecore 7.5 has been released- should you upgrade?

Amanda Shiga VP, Digital, Sitecore MVP

Sitecore 7.5 has been released- should you upgrade? | 117

• Version 8 (expected 2015 Q1) — Next-generation DMS with all-new analyt-ics, reporting, testing and “one view of the customer” full experience manage-ment. This version clearly marks Sitecore’s huge leap from a tactical solution to an online publisher and finally to a strategic solution to marketing needs in a connected world.

Sitecore 7.5 – What do I need to know?The biggest feature of version 7.5 is that it introduces the Experience Database and Profile, which is an important puzzle piece that will support and set the stage for the vision of Sitecore 8.

Along with the new release comes a new list of terms to understand:

• The Experience Database (xDB) is the new massively scalable version of Sitecore’s analytics database that collects all customer interactions to present a unified view of an individual customer. This database is built on MongoDB instead of SQL Server and is available as an on-premise or cloud-based solution.

• The Experience Profile (xFile) gives marketers complete visibility into every customer interaction and can pull in interactions from all channels and all points of interaction. This unified information gives marketers the power to create a deep understanding of what visitors want and how to react to opportunities in real-time.

Once upgraded to Sitecore 7.5, you don’t need to start using the Experience Database immediately, but it is advantageous to begin to understand both its infrastructure implications and marketing potential as Sitecore 8 approaches.

Preparing for the Experience DatabaseThe new xDB uses MongoDB for collection and SQL Server for reporting. Your most important decision will hinge on whether you want to host MongoDB within your on-premise infrastructure or take advantage of Sitecore’s xDB cloud offering. Due to the sheer volume of data the Experience Database collects, many organizations wel-come the opportunity for cloud storage; however, some organizations may have poli-cies that require on-premise deployments.

Either way, the introduction of MongoDB is a significant infrastructure consideration and the proper preparation should be done well in advance of planned usage.

118 | www.nonlinearcreations.com

For more information, you can refer to our more detailed chapter on using xDB on-premises vs. in the cloud, as well as Sitecore’s documentation on xDB architec-ture, xDB configuration and xDB cloud deployment.

Migrating your current DMS analytics databaseIf you are already using the current DMS analytics database to collect and report on visitor behavior, you may want to consider preserving the data you’ve collected thus far for historical insight. If so, Sitecore does provide a Sitecore Analytics Conversion Tool to migrate your analytics data into the new xDB and you’ll want to consider this as part of the upgrade effort.

Upgrade now, or wait for Sitecore 8? If you’re currently on version 6.x – 7.2, we strongly recommend upgrading now.

Why?

Gain immediate momentumIf you’re eager to start leveraging the marketing power of Sitecore 8 and the Experience Profile, upgrading to Sitecore 7.5 now will allow your team to start get-ting familiar with the new platform. You can invest now in infrastructure readiness, solution readiness and team/training readiness to pave a smooth road towards fully leveraging Sitecore 8 and a better sense of your digital roadmap.

It’s important to note that Sitecore 8 does represent a significant leap to an incred-ibly powerful strategic marketing platform. It is best not to underestimate the runway you’ll want to prepare your team and your organization to fully leverage its features.

Don’t fall too far behind on the upgrade pathPostponing upgrades means more costs later when you have to perform a significant upgrade between major releases and especially when your solution is optimized to an older version. Keeping as current as possible means you’ll both be saving on over-all upgrade costs and also ensuring your team has a chance to leverage the latest features as soon as possible.

Sitecore 7.5 has been released- should you upgrade? | 119

Take advantage of 7.x goodiesIf you’re currently on version 6.5 or lower, you’re missing out on a few great modules and add-ons that are compatible with newer versions. Even if you’re not quite ready to use the Experience Profile, with version 7 a whole new world opens up. Here are a few examples:

• Federated Experience Manager — allows tracking of visitor interactions exter-nal to Sitecore

• Sitecore Commerce — a comprehensive and fully integrated set of commerce capabilities

• Experience Explorer — enables simulation of visits to a DMS enabled website with different visitor personas (presets) and preset modes

• Sitecore Item Buckets — a new content structure offering massive content scalability

The counter argumentAs always, there are certain cases where it may make more sense to postpone your upgrade. It may make sense to consider waiting if:

• You are already on version 7.1 or 7.2 and do not have the capacity to immedi-ately leverage the Experience Profile or to train your team more than once on new DMS functionality

• Your budget is extremely limited and you can only fit in one upgrade deploy-ment with regression testing and quality assurance (that said, laying the ground-work with a 7.5 upgrade should minimize the upgrade efforts to 8)

• You are risk-averse and prefer to upgrade to a major release when it has been battle-tested in the market for a decent amount of time

With Sitecore’s rapid release cycle, we’re always supporting our clients in assessing the right time and right approach to upgrading. Whatever your upgrade roadmap, we’re happy to help.

120 | www.nonlinearcreations.com

Sitecore 7.5’s xDB provides a scalable and robust architecture to collect behavior data from your customers and drive decision making for your online presence.

With the introduction of Sitecore 7.5, there is now the option to place this compon-ent of the Sitecore solution in a Sitecore managed cloud service (backed by Microsoft Azure). While many organizations will choose to host the entire Sitecore solution in their own data center, there can be great benefits to hybrid and cloud approaches.

The xDB cloud service is just one of many emerging cloud services that make hybrid deployments of Sitecore easy and attractive. In this chapter I discuss not only con-siderations for xDB in the cloud, but the broader considerations of the traditional Sitecore CMS components as well.

The xDB service provided by Sitecore is an end-point in the Azure cloud that your Sitecore installation uses to collect (MongoDB), aggregate and report on visitor behavior. Behind the scenes, Sitecore provides high availability, elastic scaling and disaster recovery- an attractive package to say the least. With that background in mind, let’s break it down into a few key points of consideration:

Scaling Sitecore 7.5: xDB on-premises or in the cloud?

Glen McInnis VP Technology, Sitecore MVP

Scaling Sitecore 7.5: xDB on-premises or in the cloud? | 121

ScalingAs stated previously, Sitecore’s xDB service provides for scaling – nothing for you to worry about there. Traditional Sitecore components (content delivery, content management) can scale both horizontally and vertically. Most major public and pri-vate cloud providers come with the ability to add processing and memory resour-ces to existing infrastructure and provision new virtual machines on demand. This can allow for cost effective operation in low seasons and an easy means to scale up in peak seasons. When evaluating providers you should clarify if adding resources to a virtual machine takes it offline, and if so what the turn-around time is to com-plete the operation. Auto-scaling based on set conditions is very useful for hands-off management.

Given that the cloud xDB service is in the Azure cloud, this would make for a com-pelling argument to consider placing traditional Sitecore components – particularly content delivery – in the Azure cloud.

SecurityHosting your website within your own data center opens the center and the network - to some extent - to attacks. I have worked with a number of high profile customers that chose to host elsewhere to reduce the overall public footprint of their data cen-ters. If your site is highly visible and a regular target for attack/protest this can be a major benefit for your security team. This would again be an argument to place con-tent delivery in the cloud as well.

Geography and disaster recoveryGetting your choice of data center location can provide better performance for global brands by getting closer to end customers. Widely dispersed data centers also pro-vide greater assurance that regional disasters do not impact all environments.

Connection to on-premiseInvariably, a cloud solution will require a secure connection to on premise applica-tions. Understanding how this is accomplished (often VPN) and how bandwidth and performance of that link is managed is another critical component. In Azure, the new Express Route feature is very attractive for high performance linkages to on premise applications.

122 | www.nonlinearcreations.com

If choosing to leverage Sitecore xDB service, it would be wise to test the connection reliability between your on-premise components and the xDB service.

PrivacyEach jurisdiction has differing laws on privacy and the government’s right to access data stored/transiting country. Choosing a cloud provider with data centers in specific jurisdictions gives you some flexibility in navigating these complicated waters. Given that xDB houses all of your customer data, it should be clear what implications it has for your business to host that data in the Azure cloud.

Development environmentsDuring large scale development projects, using on-demand lightly reserved can be a fast and effective way to scale up development, QA and CI servers. When work-ing with a worldwide team 24x7 the self-service tools of the cloud providers ensures developers are not waiting for assistance from the help desk to provision virtual machines and the sort.

There is no “right” answer when it comes to choosing the cloud over on premise. Regardless of which approach you choose, give yourself the time to test the pro-posed deployment architecture and understand the maintenance requirements.

As a final thought, xDB is not the only cloud service for Sitecore. When considering xDB’s residency keep in mind the following other services:

MaxMind GeoIPMaxMind provides a web service that Sitecore can use for GeoIP lookups. MaxMind manages the central database of IP’s ensuring the most up to date information. MaxMind can be purchased from the MaxMind website.

ECM Mail TransportA managed mail transport service is also available to manage blacklist, queues and all of the other details of mailing lists. The mail transport service is also available from the Sitecore App Center.

Azure PaaSAs you are no doubt aware Sitecore has a pre-build deployment method for the Azure PaaS. The Azure PaaS model offers a lower level of complexity and cost over

Scaling Sitecore 7.5: xDB on-premises or in the cloud? | 123

traditional VM’s. The gory details are on SDN.

Regardless of your final choices, there is a lot of flexibility inherent in Sitecore. For many of the reasons noted previously you may elect to host certain components like Content Management on premise and Content Delivery and xDB in the cloud.

124 | www.nonlinearcreations.com

Since the wrap up of Symposium last month, the Sitecore community has been buzzing to get their hands on the newly announced Sitecore 8. In the first of a series, we look at the changes made to the platform’s UI.

Please note: This chapter is based on the Sitecore 8 Technical Preview provided to our 6 nonlinear Sitecore MVPs. Once it lands in the hands of users, some details may have been changed. For all the latest Sitecore news, please consult SDN, or get in touch with our nonlinear digital team.

Now that we’ve gotten the housekeeping out of the way, let’s take a look at the incredible visual transformation that Sitecore has gone through. You may remember that Sitecore once looked a little something like this:

A Sitecore 8 sneak peak

Glen McInnis VP Technology, Sitecore MVP

A Sitecore 8 sneak peak | 125

Well prepare yourself because Sitecore 8 is most certainly new and improved:

126 | www.nonlinearcreations.com

The default page upon logging in is now the Launch Pad, which gives you easy access to all of the applications and interfaces of Sitecore, some of which you’ll noticed have been renamed:

Sitecore 8 has reimagined a few modules, with new names and new icons including:

• Email Experience Manager = Sitecore 6/7 Email Campaign Manager (ECM)• Experience Editor = Sitecore 6/7 Page Editor

Federated Experience Manager, Experience Analytics and Path Analyzer are all new additions, but we’ll save those for another, more in-depth look at Sitecore’s newest offerings.

A Sitecore 8 sneak peak | 127

Wondering about the desktop? That’s seen a revamp as well:

And one of the features I’m most excited about: at any time, you can jump back to the launch pad using the omnipresent button in the toolbar (a real benefit to those of us who are jumping back a forth a lot):

Sitecore has done a really nice job with this updated UI, which has also been made more compatible for mobile devices. While not fully responsive, many screens do resize/scale in a more mobile friendly version than past Sitecore editions. I also found the UI to be more responsive than past Sitecore versions.

128 | www.nonlinearcreations.com

Sitecore 8 brings with it a number of new features, but for the most part, databases have been kept fairly similar. Upgrading from 7.5, as opposed to starting net new will require answering two key questions:

If you’ve worked with Sitecore 7.5 the changes to databases are minimal, but for those that will be upgrading from a pre-7.5 release Sitecore 8 has introduced some changes to the database structure of the product. The common databases -Master/Web/Core/Analytics- are all still there, but Sitecore has added more to the mix: ses-sions and Mongo collection databases, which were introduced in 7.5.

What was previously referred to as the Analytics SQL database has now been labelled Reporting. Conversely, the new Analytics database now references a MongoDB for collection. It is not shown in this config file, but there is also the option to connect another SQL database as a state server (there is an option to use Mongo as well).

Sitecore 8: A look at database changes

Glen McInnis VP Technology, Sitecore MVP

Sitecore 8: A look at database changes | 129

If you’re doing a fresh 7.5 or 8 installation the planning should be straight forward. Upgrading from a pre-7.5 release may require some additional hardware or adjust-ments to support your high availability, disaster recovery and performance object-ives, but overall you’ll need figure out the answer to two key questions:

1. Do you move from a cookie session to a database based session store?2. Do you put the Mongo collection db in the cloud? (Sitecore sells this as a service

and you may recall that we wrote a blog post on the subject not too long ago exploring the options of scaling on premises or in the cloud)

130 | www.nonlinearcreations.com

One of the most exciting things to come out of the Sitecore 8 announcement was the introduction of the Federated Experience Manager, or in new Sitecore naming practices, the FXM.

In the final chapter of our introduction to Sitecore 8 series, we present the feature that had marketers and developers alike salivating: the Federated Experience Manager or FXM. This new addition introduces the Sitecore DMS and its personalization capabil-ities to a whole new market by allowing users of Sitecore to take advantage of the Sitecore Experience Platform on non-Sitecore powered websites.

By registering an external site in the FXM, you’ll be given a JavaScript beacon to place on your non-Sitecore site which injects all the functionality you need to track and personalize that site.

Without further ado, we’re going to how you how simple it is to enable the Federated Experience Manager on your non-Sitecore website in 3 easy steps:

Sitecore 8: Introducing the Federated Experience Manager (FXM)

Glen McInnis VP Technology, Sitecore MVP

Sitecore 8: Introducing the Federated Experience Manager (FXM) | 131

1. Register for the site

2. Save and Publish the setup

Copy the JavaSCript beacon into every page on the site to track:

<script src=”//sitecore8/bundle/beacon”></script>

132 | www.nonlinearcreations.com

3. Open the page(s) in Experience Editor

You’re now ready to start personalizing your website to increase conversions and turn casual visitors into loyal customers. The FXM not only enables the use of the DMS’ personalization capabilities, but also its analytics, allowing your team to start making data driven decisions.

authors

authors | 137

Molly AnglinA data driven strategist and information architect, Molly has been part of the nonlinear team since 2001. In her role as Vice President of nonlinear digital, Molly is involved in projects at various stages, from planning to development and post launch optimization, many

of which are based on the Sitecore platform.

Grant BartlettSince joining nonlinear in 2009, Grant has become one of the most senior developers on the nonlinear Sitecore team. In his role as Team Lead in our Ottawa office, he is one of our resident experts in optimizing Sitecore for the content author experience. His thought leadership combines technical skill and user friendly formatting to provide guided instruction on customizing Sitecore.

Joe BoughnerAs the Director of Marketing for nonlinear, Joe has been involved with Sitecore, both as a corporate partnership representative and as a content author for our own website. These experiences give him a unique position among our Sitecore experts. Joe joined the team in 2010 and has contributed greatly to the thought leader at nonlinear.

authors

138 | www.nonlinearcreations.com

Dwayne GockelDwayne is a Solution Architect who joined the nonlinear Ottawa team in 2011. His experience in Sitecore has involved both front and back end development. Dwayne’s focus is transforming existing websites into new, responsive, user driven and easy to maintain sites through modern design and development practices.

Mauro MadeiraMauro acts as a Quality Assurance Analyst out of our Ottawa office, and has done so since he joined the team in 2011. A dedicated prob-lem solver, Mauro’s work focuses on improving the automated test-ing process post site launch for optimal performance. His innovative automated testing techniques are crucial to Sitecore projects at

nonlinear.

Glen McInnisGlen has been a vice president at nonlinear since 2006. He has both strategic and tactical experience with leading CMS vendors including Sitecore, Microsoft SharePoint, Adobe CQ5, Ektron and OpenText/RedDot and has been named a Sitecore MVP every year since 2009. Glen has overseen teams responsible for more than 120 content management deployments and complements this real-world experi-ence with substantive formal education.

Eduardo MoraesEduardo joined the nonlinear team in 2007. Relying on his Sitecore expertise, both architectural and technical, he has been a part of countless deployments over the years. Eduardo’s work has contrib-uted to a variety of solutions including content migrations, multi-lan-guage sites, intranet, extranets and front facing websites.

Rodrigo PeplauRodrigo is a developer working out of our Florianopolis office in Brazil. Since joining nonlinear in 2010, he has been a part of count-less Sitecore implementations. While development is his primary focus, Rodrigo has begun to branch out into other elements of the Sitecore platform including the Digital Marketing System and Web

Forms for Marketers.

authors | 139

Antoine RulliereAntoine has been a key part of the nonlinear delivery team since 2009, bringing strong project management skills to countless Sitecore pro-jects. His role involves applying nonlinear’s Agile inspired develop-ment framework to manage projects across all disciplines including design, strategy, development and testing. His work has contributed to a number of successfully launched projects and happy clients.

Amanda ShigaAmanda is nonlinear digital’s Vice President and Sitecore MVP who has been part of the nonlinear team since 2006. She brings more than 13 years’ experience in designing and building effective content management and web-based solutions within a variety of industries. Amanda leads the nonlinear digital team in delivering digital mar-keting solutions and contributes significantly to business develop-ment and thought leadership.

Allison Simpkins Allison acts as the President of nonlinear digital out of our Toronto office. She helps clients understand not just how to create mean-ingful experiences for customers and visitors online but also how to glean insights from analytics to drive truly engaging multi-chan-nel marketing campaigns. With more than 14 years at nonlinear, Allison has been involved with countless Sitecore projects, primarily in account and project management roles.

Jason St-CyrJason is a Sitecore MVP who has been working out of our Ottawa office since 2011. In his role as a Solution Architect, he’s tasked with planning, developing and implementing Sitecore solutions. His cur-rent focus lies in Application Lifecycle Management (ALM), working to optimizing a team’s ability to transition from idea to delivery and beyond to the end of life of the service.

140 | www.nonlinearcreations.com

Saulo VenancioSaulo works out of our Florianopolis office in Brazil as a nonlinear digital consultant. His experience spans across a number of technol-ogy platforms including Sitecore and Adobe Experience Manager. Saulo’s key Sitecore focus lies in content author component and

template development, as well as system administration tasks.

Randy WoodsAs nonlinear creations’ co-founder and President, Randy has been helping clients achieve their online goals since 1995. He has two decades of leadership experience in the development of online mar-keting strategies and implementation plans, applying a combination of business acumen, technical knowledge and marketing insight to the challenges faced by his clients. His extensive experience using the Sitecore platform for digital marketing has earned him the title of the Digital Sitecore MVP.

about nonlinear digital

Contact Us [email protected]

twitter @nonlinear_tweet

nonlinear creations

+nonlinearcreations

www.nonlinearcreations.com

987A Wellington St.

Suite 201

Ottawa, ON

K1Y 2Y1

+1 613 241 2067

Toronto | NYC | São Paulo | Ottawa | Calgary | Florianópolis

www.nonlinearcreations.com

nonlinear digital

nonlinear digitalnonlinear digital

nonlinear enterprise

nonlinear enterprisenonlinear enterprise

nonlinear enterprise

nonlinear

nonlinear nonlinearnonlinear

nonlinear digital