Tuesday, September 23, 2008

Good Practices: Working with Web agencies - Take control!

In the previous post, I explain how important it is to make sure that content produced from your content management system (CMS) is tagged and measured. While it is a must, it is not enough. In most cases your online “ecosystem” is not limited to the main websites that are produced from your CMS.

Me, my main site & my flashy microsites
The sexy macho Coca Cola Zero Game by North KingdomIt is a common practices to run online campaigns (banners, emails, SEA, social media initiatives) and to develop flashy interactive microsites to support specific marketing campaigns or product launch (like the Coca Cola Zero – The diet Coke for men :-)). These are most of the time developed and managed by design or advertising agencies. As these elements are parts of your online ecosystem and are linked to your main site(s), you need to have them measured correctly in order to answer important question to assess your campaign performances: What are the traffic shares from the different channels? What channel brings most engaging visitors? What channel is the most profitable? What is the share of users that started playing the game? And who completed it? How many did register? How many send it to friends? And more.
A simple illustration of a web ecosystem
Sounds obvious? Well believe it or not but not so long ago, it was quite common to see that microsites were launched without any basic tagging and that you were lucky if you got figures from some server log file analysis. Campaign success mainly consisted in having lot of clicks and low cost per click. What visitors did or what happened on the microsites was secondary. Then came free Google Analytics for everyone and an increasing demand of measurements from marketers. In the past months, I have seen that many agencies have started to include GA tags by default in their productions. But let’s be honest, this is often limited to the basic stuff. And in many cases, people still measure success of a campaign on the number of visitors they got (well at least they replace clicks by visitors so there is progress). “The higher, the better!”. No need to say to we all know that success is not about quantity but quality.

Have control on your Web agencies
Control what your agencies really doWhatever web agency you are working with, small or big, they should care about measuring the business performances of their work. You are paying them to achieve specific business goals that are in most case not limited to win a design prize or get the higher visitor score. And if they measure, they should do it your own way.

There are for me several reasons why you should control campaign measurements and have it done with your rules & tools:
  • Consistency: So most of your ecosystem elements are measured on the same platform. By using similar rules & same tools, you can compare the different elements of your ecosystem.
  • Getting the full picture: Traffic data from microsites, campaigns or other online initiatives can be aggregated with your main site data providing you a more complete view of your global online activity, how each part contributes to each other and more…
  • Have control: I do not want to offend web agencies but I think that they can not be judge and party at the same time. You should be able to control or challenge results from agencies. It is amazing how they have such tendency to be always “good” & “successful”. For this reason you need to control the data & measurements.

Education, standardization & processes
Easy to say but what does it take to achieve this? You will need to:
  • Educate / evangilize your agencies. Like I said there are still too many agencies that do only limited measurements and analysis – who only look at the surface. Some may be reluctant in the beginning as they will feel like you want to control them (yes that is one of the goals but they will have to get used to it). Depending on their Web Analytics level, you will have to spend time to educate them so tagging, measurements, analysis become a standard process and practices when working with you.
  • Define standardized guidelines for tagging & measurements. You want them to measure their work your own way then you first need to define what is “your own” way. You will have to provide them with standardized guidelines that will includes technical documentation on how to tag content (HTML, Flash, Web 2.0…) or how to build trackable campaign URL's so their web developers will not have to guess what to do and will do it correctly. The other part will be the functional rules: what variables to use, how to assign values, when to use them… These rules will have to be simple and generic so they can be applied in most cases while still delivering a lot of information. 
  • Implement processes & communications. To make it work smoothly, you will need to establish some processes and communications between agencies, your analyst team and you (and maybe your IT as well). It doesn’t have to be complex but it is really necessary. Start with briefing meeting to understand the context, explain the steps, provide documentation, define points of contact for support (technical, functional), plan validation steps…
Conclusion & summary
It can take time to put in place but it really worth it. Do not be impressed by the size or reputation of your agency. Whether they are “big” ones or small ones, they should follow your way. You may even know more about Web Analytics than they do. To make it easier, again start with very simple rules and once everyone got it, enrich them gradually (Kaizen! Kaizen! :-)). And learn from your errors (there is no shame to do errors – only those who do nothing ever do errors). Guidelines will also evolves and make sure to constantly revise them.  when doing this, listen to your agencies as they can also come with ideas or suggestion. By doing so, they will feel involved and this will create a collaborative spirit.

Of course, if you are lucky to work with agencies that really master Web analytics and if they offer you additional measurements / sources of insights, take it. Still, whenever possible your agencies should always include use your own analytics framework (rules & tools) as much as possible. You own and define the analytics framework. 

So these are my advices. What are yours? Maybe some of you will not agree and I would be curious to have your opinions - especially from web agencies. Feel free to comment.

Related resources:
Here are some practical examples of microsites done by different European agencies.

iQ TV France

Toyota Team 2008 from P-Mod (Germany)
Toyota Team 2008

Friday, September 5, 2008

Good Practices: Integrating Content tagging in Content Management Systems

When Web Analytics Meets Content Management

After my first post on the Kaizen principle, I would like to move on with a more “practical” post. It is the first one of a coming series of posts on “good” practices” (I think it would be pretentious to call these “best” practices as these are mainly based on my personal experience). I will open with a technical-oriented post on content tagging and how you can make your life easier when using a content management system.

You probably know the “famous” Web Analytics cycle (or one of its variations) as depicted in the below diagram. Web Analytics is a continuous improvement cycle of 4 main phases: measurements, reporting, analysis and optimization. Anyone will understand that the first phase is crucial. To take the right decision, you need to get your data right. It is the foundation of any good Web Analytics.

The Web Analytics cycle of continuous improvement

Nowadays, most companies that operate large or multiple websites use content management systems (CMS). This is especially true when you work with several languages or in an international context. I will not go into the details of the main features of CMS’s but in short these facilitate content creation & management by business users, brand image consistency, content replication and localisation (i.e. translation). In short, these are powerful tools for managing websites.

There are several challenges when working in complex web environment when it comes to tagging. These includes among others:

  • Completeness & accuracy: you must ensure that all the content produced is tagged (no “hole”) and in a correct way. Otherwise your data may be incomplete and your analysis will be biased.

  • Consistency: having standardized rules for tagging is important in order to ensure that your content and sites are measured the same way so you can compare “apples” to “apples”.

  • Transparency: the tagging process must be transparent for content managers who are “business” people i.e. non technical. Their involvement must be limited as much as possible to reduce errors (missing tags, wrong values…)

So why not leveraging your CMS capabilities to seamlessly integrate your Web Analytics tags and deliver high quality tagging?

Automatic & dynamic include of page script
Get your script included in your HTMLFirst thing you need is to make sure that your tag script i.e. the little piece of Javascript code that collects & sends the data, is automatically inserted in any page that is published from your CMS. Script include is a basic feature of any CMS that anyone probably knows – so rather obvious thing to do. But you can do more in this area than just copy / paste your script in an “include” file:

  • Make the include dynamic: Some parts of the script are specific to each site you are managing. It can be the domain name, the Website ID (e.g. WebTrends DCS ID or Google Analytics account number), the data collector server hostname (if you host your own solution or use aliases)… You should add these elements in the Website properties / metadata in your CMS so the script is set dynamically based on these settings. These are configured by the technical team when a new site or publication is created in the CMS. It will make maintenance easier as you will need just one version of the script for all sites. When you do an update, you have only one file to update on root level. No more copy/paste errors such as one site using the same script of another one or sites that do not have their script updated (“ooops we forgot that one”).

  • Add the script on page rendering not on publishing: the tag is usually place in the part of the HTML code. It is often added in the page when it is published from the CMS. Instead you should isolate the script so it is added in the page when the page is “rendered” (i.e. requested). This may require tweaking all your templates but the added-value worth it. Here again, script maintenance and update will be facilitated. When you will update the script, one file will need to be republished instead of every single page of your websites. Trust me, this is quite frustrating to have to republish hundreds of pages just because you change a website ID or domain name. This type of task is time & resource consuming: it has to be scheduled, pages will fail, you will need to test the entire site…Well, you don’t want to do that. Note that while impact on performances should be insignificant, it should be measured and tested first.
At this stage, you should have you Web Analytics script added in each page produced by your CMS. What about your custom variables, parameters or META tags?

Generating custom tags: keep it simple!
'Simplicity is the ultimate sophistication' - Leonardo Da VinciIn most CMS, when you create a page, you have the content elements (text, links, images…) and also metadata such as product name, template name, template variant and any other custom properties linked to your content.

Now you should try to automate the meta tag / variable definition process as much as possible. Remember, you want to limit CMS user interactions in the tagging process. However you have to do this carefully and in a clever way.

Automate simple & generic rules
You will have to get your hands dirty and do some analysis (or better, have someone doing it for you). Try to identify mapping rules between CMS content / metadata and your WA variables / meta tags.

For example, one variable can be the template name that is used to create the page (product info page, specifications page, gallery page, help page…). If template names are technical ID’s then use a mapping file to translate these into something meaningful in your reports. Content group values can be linked to meta properties defined at directory level (if all pages of a logical group are located under same directory). Product name / category can be linked to the corresponding metadata field if defined in a specific metadata field. Etc. Well, you get the idea….

Start first with the simplest and most generic rules. Also be careful with automation, put some controls to prevent the insertion of invalid characters or value that may generate execution errors or incomplete parameter strings (like the ampersand “&”).

Make sure that you can get a unique & meaningful titles passed to the corresponding WA parameter. Or if difficult, try to have at least that each combination of a set of parameters is unique (e.g. title & content group).

Simplified user input
Large websites are often complex and it will not be possible to automate everything. For some parts, you will have to rely on user input. For example, it can be the scenario name (if page is part of a workflow), a campaign ID, a flag indicating the page is a conversion point… If you do so, here are some tips:

  • Easy access to tagging settings: Don’t hide the tag setting fields in areas where Content Managers do not go when creating content. Add the tag setting fields next to other fields / metadata they have to fill so they do not forget to set these.
  • Use non-technical language: Keep in mind that content managers are non-techie users, they are business users. So do NOT use fields with labels such as “WT.cg_n”, “utm_campaign”, “Scenario name” but “Content category”, “Campaign Name / ID”, “Workflow name” (or something they can understand).
  • Provide pre-defined lists of values: Use dropdown lists of values, checkboxes or radio buttons but avoid free text fields at all costs. Free text fields are wide open doors for errors. For example, you will get spelling errors or different spellings for the same values. Believe me, once the mess is there, it is hard to clean (and it will keep coming back).
  • Document procedure & train content managers: Make sure that content manager training cover the tag setting phase and that fields and procedures are well documented (keep it clear & simple). Do not forget to mention points of contact for any support or question.
  • Use inheritance mechanism: The use of inheritance mechanisms can help you to limit manual setting at page-level. For example, if the all pages related to a product are under same directory, put the definition of the product on directory level and implement an inheritance mechanism. Upon publishing the system will check if a value is defined at page level, if not it will look at folder level. If no value found then either it stops (so no product parameter is added i.e. a non product page) or it can go up recursively (up to you to see if it can apply to your context). The advantage is that instead of setting this parameter for each page, you do it once at directory level (or any other central place).

The general idea is that you should limit manual input and make it as simple as possible (while keeping control on the output).

Other tips
To end this post, here are some additional tips:

  • Keep doors open for special cases: All rules have exceptions. 100% automation is not possible so you will need to foresee mechanisms or ways to allow special cases. Try to automate 80% of the cases (most common ones) and implement “advanced” functionalities (such as override mechanisms) for the other 20% (or leave this special ones to your technical team)
  • Tagging on / off switch: It should be possible to de-activate the tagging (i.e. removing the script from the page) either at page level or global level (all site). Why the hell would you do that? It can be for testing purpose when you don’t want tracking code to interfere in new development testing. Or imagine that for some reasons, the tracking code put down or slow dramatically down your site (it can happen). By just checking a checkbox and republishing one setting file, you can be back online while the issue get fixed. It is better to loose data than customers.

Of course you can do many other things with your CMS like adding tracking code on special items (e.g. to track downloads, offsite links) or tracking navigation usage but it would be too long to detail all possibilities in just one post.

What about testing?
You will need to test your tagging integration. Manual testing on each template during development is ok but it is not manageable when deployed to the complete site. Testing just one or two pages of each template is not enough. You need to make sure everything went well and that all your pages are correctly tagged. There are several solutions: the expensive ones like developing your own tool or using services like Maxamine (now owned by Accenture) and a very good free one (the poor guy’s solution): WASP (Web Analytics Solutions Profiler) from Stephane Hamel. It is quite powerful and very flexible. Try it out before considering any expensive solution. Read Stephane’s post for more details on WASP and tagging quality testing.

Final word
All in all a good tagging integration in your CMS can be very powerful. It will make IT life easier whenever it comes to maintenance (like script upgrade) and it can deliver high quality data (completeness, accuracy, less errors…). You will be able to focus your efforts on valuable tasks (KPI’s definition, analysis, optimization…) and not on trying desperately to get your data right.

Here again I advise you to use a Kaizen approach: start with the basic & easy part and implement simpler rules first. When you get it right, move on to the next level as you acquire experience.

So these are some of my “good” practices regarding tagging & CMS integration. Your turn now. What do you think of all these? What are your “good” (or best) practices? Please share your ideas, critics or any feedback.

Related reading & resources:

Thanks to Chris Grant for letting me borrow her article illustration (opening illustration)

Feedback Form