<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Rudi Shumpert : Code By Numbers &#187; Web Analytics</title> <atom:link href="http://www.rudishumpert.com/category/web-analytics/feed/" rel="self" type="application/rss+xml" /><link>http://www.rudishumpert.com</link> <description>Adventures in web development and analytics</description> <lastBuildDate>Wed, 08 Sep 2010 00:13:53 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>The best laid plans of mice and men</title><link>http://www.rudishumpert.com/2010/09/07/the-best-laid-plans/</link> <comments>http://www.rudishumpert.com/2010/09/07/the-best-laid-plans/#comments</comments> <pubDate>Wed, 08 Sep 2010 00:13:53 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Fritos]]></category> <category><![CDATA[Practical Analytics]]></category> <category><![CDATA[Uncategorized]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[Analysis Exchange]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=631</guid> <description><![CDATA[Over the past few months there have been several great articles about the amazing projects, mentors, and students over at the Analysis Exchange.   This post is not going to be like those.   Yes, the project was for a great cause, The Peoples Charter, and the mentor Ridder Manzanet, is fantastic. The student however....... [...]]]></description> <content:encoded><![CDATA[<p>Over the past few months there have been several great articles about the amazing <a
href="http://www.digitaria.com/blogs/my-experience-analysis-exchange" target="_blank">projects</a>, <a
href="http://blog.webanalyticsdemystified.com/weblog/2010/07/guest-post-jason-thompson-analysis-exchange-mentor.html" target="_blank">mentors</a>, and <a
href="http://www.emerkirrane.com/2010/07/08/the-analysis-exchange-making-angels-smile/" target="_blank">students</a> over at the <a
href="http://www.webanalyticsdemystified.com/ae/index.asp" target="_blank">Analysis Exchange</a>.   This post is not going to be like those.   Yes, the project was for a great cause, <a
href="http://thepeoplescharter.org/" target="_blank">The Peoples Charter</a>, and the mentor <a
href="http://www.webanalyticsdemystified.com/ae/members/profile.asp?m={9C486C62-4C27-4C6C-AC9D-9838957F97F1}" target="_blank">Ridder Manzanet</a>, is fantastic. The student however....... me ...... did not do the project, or the Analysis Exchange justice.   In short, I failed.</p><p>There are many excuses I could list, or hide in the shadows and hope that no one else would find out about this, but I won't.  I knew when I took on this project that I did not have the time right then to work on the project and I should have not signed up for the project, but I did.  Thankfully, Ridder, was totally committed to the project stepped in and did all of the work for the client.   I sent my apologizes on to the client, my mentor, and even to Eric Peterson.  All of which were extremely professional and really speak to the quality of the work and people contributing to the Exchange.  It is because of this quality that I wanted to write this post.  I truly do feel bad for the position that I put both my mentor and the Analysis Exchange in,  but the more I thought about it the more I felt it really echoed what happens on many, many projects out there in the real world.</p><p>Things happen, deadlines are missed, and projects fail.  That is a fact of life, not just in the confines of the measure community but in all aspects.   I can not change the things that have happened in the past, all I can do is to accept responsibility for my inability to contribute on the project and make damn sure that does not happen again.   Fail faster is a phrase you hear frequently in the measure community, now having earned that badge :/ it is time to try again.  And try again I will.  But this time I will be better prepared.  I will take more time to evaluate the project before putting my name in.  I will make sure I have the time to commit to the project.  I will strive to make a positive impact on the project.</p><p>If you have already contributed to the Analysis Exchange, thank you for all that you have done.  If you have not, don't be afraid to fail.  Try it!  If it does not go well, accept it, figure out what went wrong, fix it, and try again.</p><p>-Rudi</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F09%2F07%2Fthe-best-laid-plans%2F&amp;linkname=The%20best%20laid%20plans%20of%20mice%20and%20men" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F09%2F07%2Fthe-best-laid-plans%2F&amp;linkname=The%20best%20laid%20plans%20of%20mice%20and%20men" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F09%2F07%2Fthe-best-laid-plans%2F&amp;linkname=The%20best%20laid%20plans%20of%20mice%20and%20men" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F09%2F07%2Fthe-best-laid-plans%2F&amp;linkname=The%20best%20laid%20plans%20of%20mice%20and%20men" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/09/07/the-best-laid-plans/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Share This Page &#8211; On Your Terms!</title><link>http://www.rudishumpert.com/2010/07/21/share-this-page-on-your-terms/</link> <comments>http://www.rudishumpert.com/2010/07/21/share-this-page-on-your-terms/#comments</comments> <pubDate>Wed, 21 Jul 2010 12:16:00 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Code Snipets]]></category> <category><![CDATA[ColdFusion]]></category> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Omniture]]></category> <category><![CDATA[Practical Analytics]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[Share This Page]]></category> <category><![CDATA[Social Media]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=621</guid> <description><![CDATA[Build your own "Share this page" feature! Not too long ago I added one of the "Share this page" scripts, AddToAny, to our web site.  This seemed like it was going to work fine but this approach had 3 major drawbacks. Most of these services require you to link to their JavaScript file on their [...]]]></description> <content:encoded><![CDATA[<p>Build your own "Share this page" feature!</p><p>Not too long ago I added one of the "Share this page" scripts, AddToAny, to our web site.  This seemed like it was going to work fine but this approach had 3 major drawbacks.</p><ol><li> Most of these services require you to link to their JavaScript file on their servers.  Sure this is fairly reliable but I am not a fan of this approach.</li><li>Limited tracking / analytic capabilities.</li><li>Cookies you can not control.</li></ol><p>The first two issues are not huge issues, but while we were testing the site, we noticed that the scripts were adding a few of their own cookies to our users.  I understand why this is, but I did not like it and the feature was pulled.  So I tested out another one, Share This, and it did the same thing. Not only do they add cookies to your users, but they are also tracking usage of their tool on your site.  I don't blame them for this, after all they are providing this as a free service but I still do not like it.</p><p>After looking at the scripts for a while I decided that it could not be that difficult to write my own "Share this page" feature.</p><p>My goal was to create a widget to let users share the current web page without the limitations listed above.  With just a wee bit of research I found the methods needed to be able to share a page via email, Twitter, Facebook, and LinkedIn.  And then track the usage of data in Omniture SiteCatalyst.</p><pre class="brush: plain;">
&lt;ul&gt;
  &lt;li&gt;&lt;A onClick=&quot;jsFunctionToRecordClick('Email');&quot; HREF=&quot;mailto:?subject=#variables.emailSubject#&amp;body=#variables.emailMessage#&quot;&gt;Email &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a onClick=&quot;jsFunctionToRecordClick('Twitter');&quot; href=&quot;http://twitter.com/home?status=#variables.twitterLink#&quot; target=&quot;_blank&quot;&gt;Twitter &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a onClick=&quot;jsFunctionToRecordClick('LinkedIn');&quot; href=&quot;http://www.linkedin.com/shareArticle?mini=true&amp;url=www.rudishumpert.com&amp;title=AmazingArticle&amp;summary=This is the best ever&amp;source=Rudi&quot;  target=&quot;_blank&quot;&gt;LinkedIn &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a onClick=&quot;jsFunctionToRecordClick('Facebook');&quot; href=&quot;http://www.facebook.com/share.php?src=bm&amp;u=#variables.currentPage#&amp;t=#variables.twitterLink#&amp;v=3&quot; target=&quot;_blank&quot;&gt;Facebook &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre><p>Sample links without the tracking added:</p><ul><li><a
onclick="jsFunctionToRecordClick('Email');" href="mailto:?subject=Check this out!&amp;body=Message with Link Goes Here: http://www.rudishumpert.com">Email </a></li><li><a
onclick="jsFunctionToRecordClick('Twitter');" href="http://twitter.com/home?status=Share%20This%20urlhere%20Build%20your%20own!%20measure" target="_blank">Twitter </a></li><li><a
onclick="jsFunctionToRecordClick('LinkedIn');" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=www.rudishumpert.com&amp;title=AmazingArticle&amp;summary=This is the best ever&amp;source=Rudi" target="_blank">LinkedIn </a></li><li><a
onclick="jsFunctionToRecordClick('Facebook');" href="http://www.facebook.com/share.php?src=bm&amp;u=www.rudishumpert.com&amp;t=Share This: http://wp.me/pCbAx-a1 Build your own!&amp;v=3" target="_blank">Facebook </a></li></ul><p>And then the JS Function: Note the JS function is specific to Omniture tracking but this could be leverage for any analytic solution with some minor tweaking.</p><pre class="brush: plain;">
			function jsFunctionToRecordClick(category){
				var s = s_gi(s_account);
				s.linkTrackVars=&quot;events,eVarN,propN,propN&quot;;
				s.linkTrackEvents=&quot;eventN&quot;;
				s.events=&quot;eventN&quot;;
				s.eVarN=''+category+'';
				s.propN=''+category+'';
				s.propN=''+category+' | '+s.pageName+'';
				s.tl();
				s.events=&quot;&quot;;
				s.linkTrackEvents=&quot;&quot;;
				s.linkTrackVars=&quot;&quot;;
				s.eVarN='';
				s.propN='';
				s.propN='';
			}
</pre><p>The feature is added to the page using a jQuery menu script that creates the same mouse-over drop down effect that the free scripts use, but you can use any sort of presentation approach that fits your web site's style.</p><p>And that is it.  You know have your own custom share this web page feature that your can style however you like and maintain complete control over what cookies are used on your site and what level of tracking you would like to get out of the widget.</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F21%2Fshare-this-page-on-your-terms%2F&amp;linkname=Share%20This%20Page%20%26%238211%3B%20On%20Your%20Terms%21" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F21%2Fshare-this-page-on-your-terms%2F&amp;linkname=Share%20This%20Page%20%26%238211%3B%20On%20Your%20Terms%21" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F21%2Fshare-this-page-on-your-terms%2F&amp;linkname=Share%20This%20Page%20%26%238211%3B%20On%20Your%20Terms%21" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F21%2Fshare-this-page-on-your-terms%2F&amp;linkname=Share%20This%20Page%20%26%238211%3B%20On%20Your%20Terms%21" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/07/21/share-this-page-on-your-terms/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Creating static URL&#8217;s from dynamic pages for Eloqua</title><link>http://www.rudishumpert.com/2010/07/14/creating-static-urls-for-eloqua/</link> <comments>http://www.rudishumpert.com/2010/07/14/creating-static-urls-for-eloqua/#comments</comments> <pubDate>Wed, 14 Jul 2010 17:48:09 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Code Snipets]]></category> <category><![CDATA[ColdFusion]]></category> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[Eloqua]]></category> <category><![CDATA[Marketing Automation Implementation]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=615</guid> <description><![CDATA[Sometimes the code... it mocks me. This was the case when working with the implementation scripts from Eloqua. I followed the instructions and by default about 98% of the tracking we needed was being accomplished. The issue I encountered was trying to get Eloqua to differentiate the content being served up on a dynamic page. [...]]]></description> <content:encoded><![CDATA[<p>Sometimes the code... it mocks me.  This was the case when working with the implementation scripts from Eloqua.  I followed the instructions and by default about 98% of the tracking we needed was being accomplished.  The issue I encountered was trying to get Eloqua to differentiate the content being served up on a dynamic page.</p><p>One url.  page.cfm?urlVariable=1 , page.cfm?urlVariable=2, page.cfm?urlVariable=3.  They all showed up as page.cfm in the reports.  And while Eloqua does have features that allow you to set up a query string in the admin console, you have to assign each value ahead of time and from what I have been told by folks both inside and outside of Eloqua, you are not able to use those values for certain types of behavioral tracking and filtering.</p><blockquote><p>NOTE:  I claim little knowledge of the inner workings of Eloqua and have had to take the word of the support folks and the documentation I could find.  If you know this to be different, I would love to hear from you.</p></blockquote><p>After much time spent scouring the web I found this article on an Eloqua blog.<br
/> <a
href="http://eloqua.blogspot.com/2010/05/fun-with-eloqua-and-jquery-tracking-pdf.html" target="_blank">http://eloqua.blogspot.com/2010/05/fun-with-eloqua-and-jquery-tracking-pdf.html</a></p><p>The author of this blog, used a secondary tracking script from Eloqua ( elqFCS.js) and leveraged this and jQuery to auto tag links to any pdf on the sample site.  Seeing this approach I was pretty sure I could use this method to meet my goal.</p><p>Step 1:  Add the link to the additional JS file.  It should be part of the standard implementation scripts.</p><pre class="brush: plain;">
 &lt;SCRIPT TYPE='text/javascript' SRC='/elqNow/elqFCS.js'&gt;&lt;/SCRIPT&gt;
 </pre><p>Step 2: Check for the dynamic page, and if found create a "static" url to send to Eloqua.</p><pre class="brush: plain;">
 &lt;cfparam name=&quot;url.urlVariable&quot; default=&quot;&quot;&gt;
&lt;cfif cgi.path_info EQ &quot;/dynamicPageInQuestion.cfm&quot; and LEN(url.urlVariable) GT 0&gt;
	&lt;script&gt;
		$(document).ready(function(){
			var fullurl = '&lt;cfoutput&gt;http://www.yoursite.com/NameOfYourChoosing/#url.urlVariable#&lt;/cfoutput&gt;';
			elqFCS(fullurl);
	 	});
	&lt;/script&gt;
&lt;/cfif&gt;
</pre><p>That's it!  Now inside of Eloqua in addtion to seeing a visit to  /dynamicPageInQuestion.cfm you will also see</p><p>http://www.yoursite.com/NameOfYourChoosing/1</p><p>http://www.yoursite.com/NameOfYourChoosing/2</p><p>http://www.yoursite.com/NameOfYourChoosing/3  etc or whatever value you need to be able to filter on.</p><p>As of now, this is working and meets the goal / need I had.  I'm curious if others have dealt with this, and if so what solutions did they come up with.</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F14%2Fcreating-static-urls-for-eloqua%2F&amp;linkname=Creating%20static%20URL%26%238217%3Bs%20from%20dynamic%20pages%20for%20Eloqua" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F14%2Fcreating-static-urls-for-eloqua%2F&amp;linkname=Creating%20static%20URL%26%238217%3Bs%20from%20dynamic%20pages%20for%20Eloqua" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F14%2Fcreating-static-urls-for-eloqua%2F&amp;linkname=Creating%20static%20URL%26%238217%3Bs%20from%20dynamic%20pages%20for%20Eloqua" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F07%2F14%2Fcreating-static-urls-for-eloqua%2F&amp;linkname=Creating%20static%20URL%26%238217%3Bs%20from%20dynamic%20pages%20for%20Eloqua" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/07/14/creating-static-urls-for-eloqua/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Review &amp; Thoughts: &#8220;When more is not better: Page Tags&#8221; by Eric Peterson</title><link>http://www.rudishumpert.com/2010/06/26/whenmoreisnotbetter/</link> <comments>http://www.rudishumpert.com/2010/06/26/whenmoreisnotbetter/#comments</comments> <pubDate>Sat, 26 Jun 2010 14:42:14 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Web Analytics]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=608</guid> <description><![CDATA[If you have not read Eric Peterson's latest white paper "When more is not better: Page Tags" STOP!  Go read it!  Then come back! There are many, many blogs and folks that spend a lot of time talking about how to do analysis of all the data that folks are collecting with various tools, but there are [...]]]></description> <content:encoded><![CDATA[<p>If you have not read <a
href="http://blog.webanalyticsdemystified.com/weblog/" target="_blank">Eric Peterson's</a> latest white paper <a
href="http://www.observepoint.com/offer/whitepaper/" target="_blank">"When more is not better: Page Tags"</a> STOP!  Go read it!  Then come back!</p><p>There are many, many blogs and folks that spend a lot of time talking about how to do analysis of all the data that folks are collecting with various tools, but there are not that many that really go into the topic of tagging, or implementation, or just data collection.  Perhaps it us because it is more technical, geeky, and flat out just not as sexy as other topics.  But this white paper really stood out for me as my main focus in web analytics is data collection.</p><p>The white paper outlined the following issues with tagging as it exists today.</p><blockquote><p>In Web Analytics Demystified’s opinion, the problem with tags is three-fold:</p><ul><li>Tags become a panacea, replacing sound business measurement practices</li><li>Tags can slow down page loading and degrade the consumer experience</li><li>Tags have the potential to erode data  confidence when poorly managed</li></ul></blockquote><p>I would add a fourth item to this this.   Lack of skilled staff to implement/manage tags.  Sure there are lots of companies and consulting shops that can do this for you, but most companies do not have this type of talent on staff, or they do not have full access to this type of IT resource .</p><p>Some of the causes listed in the white paper for the proliferation of tags were:<br
/> <strong><em>More Tags Does Not Mean “More Accuracy”<br
/> </em></strong>I agree in this statement, but what about the use of two tools for validation of trends, not the confirmation of numbers?  Although with the right tag monitoring tool in place the need for this would greatly diminish.</p><p><strong><em>Data Confidence</em></strong></p><div><ul><li>Shoddy implementation is missing from the list.  All too often I have seen or heard of this!</li><li>Lack of good consistent documentation of implementation best practices.</li><li>Lack of internal IT help to manage the tags</li><li>IT has no clue what the tags do or the business requirements behind them</li></ul></div><p><em><strong>Load time<br
/> </strong></em>I have seen this first hand, and yes the tags can slow down a web site, especially when you have have multiple tagging solutions in place. ( <a
href="http://www.rudishumpert.com/2010/01/26/tracking-page-load-times/"><span
style="color: #000000;">Which is why you should track load times <img
src='http://www.rudishumpert.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </span></a> ) The other thing to watch out for is as more and more site use Ajax and the likes to provide a rich experience for the end user, there is a risk of double tagging a page if the developers are not careful in how they load content on a page and that can result in all sorts of wonky data.</p><p>This may all sound a bit daunting, but fear not!  The white paper has a solution for this very need.  A "Chief Data Officer"!!  The white paper does a great job explaining the responsibilities that the CDO would have, but what it all boils down to is someone to own all aspects of data collection with regards to analytics.   As a developer who is also tasked with these responsibilities I am thrilled  about this.   As sites become more complex and the tagging solutions evolve with them, the need for a technical person who can fill this role is crucial.   My hope is that companies will read and adopt this quickly.</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F26%2Fwhenmoreisnotbetter%2F&amp;linkname=Review%20%26%23038%3B%20Thoughts%3A%20%26%238220%3BWhen%20more%20is%20not%20better%3A%20Page%20Tags%26%238221%3B%20by%20Eric%20Peterson" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F26%2Fwhenmoreisnotbetter%2F&amp;linkname=Review%20%26%23038%3B%20Thoughts%3A%20%26%238220%3BWhen%20more%20is%20not%20better%3A%20Page%20Tags%26%238221%3B%20by%20Eric%20Peterson" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F26%2Fwhenmoreisnotbetter%2F&amp;linkname=Review%20%26%23038%3B%20Thoughts%3A%20%26%238220%3BWhen%20more%20is%20not%20better%3A%20Page%20Tags%26%238221%3B%20by%20Eric%20Peterson" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F26%2Fwhenmoreisnotbetter%2F&amp;linkname=Review%20%26%23038%3B%20Thoughts%3A%20%26%238220%3BWhen%20more%20is%20not%20better%3A%20Page%20Tags%26%238221%3B%20by%20Eric%20Peterson" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/06/26/whenmoreisnotbetter/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Clever or Creepy?</title><link>http://www.rudishumpert.com/2010/06/07/clever-or-creepy/</link> <comments>http://www.rudishumpert.com/2010/06/07/clever-or-creepy/#comments</comments> <pubDate>Mon, 07 Jun 2010 20:31:29 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Fritos]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[Just plain odd]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=601</guid> <description><![CDATA[I was sitting at my desk today happily coding away when a piece of mail was dropped on my desk.   It was a 5x7 brown envelope that was addressed by hand to me.   Being the curious sort that I am,  I opened the envelope to find this.... I was a little confused but went ahead [...]]]></description> <content:encoded><![CDATA[<p>I was sitting at my desk today happily coding away when a piece of mail was dropped on my desk.   It was a 5x7 brown envelope that was addressed by hand to me.   Being the curious sort that I am,  I opened the envelope to find this....</p><p><a
href="http://www.rudishumpert.com/wp-content/uploads/2010/06/phone.jpg"><img
class="aligncenter size-large wp-image-604" title="Pitcure" src="http://www.rudishumpert.com/wp-content/uploads/2010/06/phone-1024x768.jpg" alt="" width="522" height="391" /></a></p><p>I was a little confused but went ahead and typed in the url and was taken to a clever micro site that had be created / customized for me.  I clicked around a bit and was impressed with the interaction of the site.   I did not think too much of this and went back to my code.  In less than 20 minutes I received a work email from a sales guy.</p><blockquote><p><em>Rudi,</em></p><p><em>Good afternoon.  I sent that hotel keycard &amp; napkin, and  wanted to hear your thoughts of that personalized web experience.</em></p><p><em>May I request a discussion, maybe Wednesday afternoon?  Let  me know what works best.</em></p><p><em>I’m also happy to send additional information at your  request.<br
/> Cordially,</em></p><p><em>Sales Guy</em></p></blockquote><p>Now, being more involved in the analytics space I was impressed.  Here was a very clever mail to web campaign and it had worked.  I went to the web site, they detected that and sent a timely email about the experience.   I was thinking about responding to find out more about the site/product/solutions.</p><p>But then my desk phone rang.  I still had the email from the sales guy up on my screen and the phone number on the caller id matched the email.  I chose not to answer, but did listen to the voice mail.  Sure enough....it was the sales  guy, letting me know that they had tracked me and like Will Smith in "<em>Enemy of the State</em>" they knew my every move.   Well maybe I paraphrased that last part.</p><p>This is where they lost me.  This clever campaign went to creepy in less than 20 minutes.   I thought about it for a little while and then emailed the sales guy.</p><blockquote><p><em>Dear Sales Guy,</em></p></blockquote><blockquote><p><em>With the  email then the voice mail it went from Clever to Creepy pretty quick.</em></p></blockquote><p>A short time later, he responded.</p><blockquote><p><em>Rudi,</em></p><p><em> We have no intention to creep  you out. We just wanted to show you our capability of being able to put a  message in front of a prospect and know in real time that they are looking at it.  I want to share an actual VLG customer lead  generation campaign.</em></p><p><em>This  dialog  marketing campaign has generated  a 38% mail to web response. Just click the link below:</em></p><p><em>(link removed)<a
title="http://www.vlgreview.com/dell_messageone/InCaseItFails/" href="http://www.vlgreview.com/dell_messageone/InCaseItFails/"><br
/> </a></em></p><p><em>I'd like to  answer your questions and provide more information regarding our capabilities at  VLG. Please let me know a good time to have a brief  discussion.</em></p><p><em>Cordially,<br
/> Sales Guy</em></p></blockquote><p>I do not fault the intent behind this particular sales pitch, but something about it did not sit right.  I am fully aware of the effort and opportunities that such a solution could have, but the creepy factor has outweighed the clever factor for me.</p><p>What do you think?</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F07%2Fclever-or-creepy%2F&amp;linkname=Clever%20or%20Creepy%3F" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F07%2Fclever-or-creepy%2F&amp;linkname=Clever%20or%20Creepy%3F" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F07%2Fclever-or-creepy%2F&amp;linkname=Clever%20or%20Creepy%3F" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F06%2F07%2Fclever-or-creepy%2F&amp;linkname=Clever%20or%20Creepy%3F" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/06/07/clever-or-creepy/feed/</wfw:commentRss> <slash:comments>16</slash:comments> </item> <item><title>Omniture &#8211; SalesForce Integration: Take 2</title><link>http://www.rudishumpert.com/2010/05/18/omniture-salesforce-integration-a-different-spin/</link> <comments>http://www.rudishumpert.com/2010/05/18/omniture-salesforce-integration-a-different-spin/#comments</comments> <pubDate>Tue, 18 May 2010 12:48:10 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Code Snipets]]></category> <category><![CDATA[ColdFusion]]></category> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Omniture]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[SalesForce]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=585</guid> <description><![CDATA[In the beginner’s mind there are many possibilities. The developer side of my brain refuses to believe that there is only one way to do things, so after spending a great deal of time and effort to integrate SalesForce data into Omniture using the standard Genesis integration I felt that there had to be another [...]]]></description> <content:encoded><![CDATA[<p><strong>In the beginner’s mind there are many possibilities.</strong></p><p>The developer side of my brain refuses to believe that there is only one way to do things, so after spending a great deal of time and effort to integrate SalesForce data into Omniture using the standard Genesis integration I felt that there had to be another way.  If you have not read the recent posts by Adam Greco on getting <a
href="http://www.the-omni-man.com/sitecatalyst/adamgreco/2010/05/17/crm-integration-2-passing-crm-data-to-web-analytics/" target="_blank">CRM data into Omniture</a>, stop reading this post and go read those first.  Then come back!</p><p>What I needed to do was find a way to get a few data points out of SalesForce and into Omniture SiteCatalyst.  The solution also needed to be automated so that it could run every 3-4 hours.  After thinking over the topics discussed is Adam's blog post I had a plan.</p><p><strong>The Challenge:</strong></p><p>State over time.  That is what this whole exercise comes down to.  How to get Omniture SiteCatalyst to store and measure the state of a data point over a set time.  These data points are up to you and your specific business needs.  Some examples are revenue, leads, etc..</p><p>The granular level of data you can/want to pull over is limited only by your your business objectives.  For the purpose of this post, I will only be talking about getting data at a campaign level.</p><p><strong>The Setup:</strong></p><p>Transaction ID's and a matching key in SalesForce.  If you can, I strongly recommend using the SalesForce campaign id's as your web analytics campaign ID's.  It give you a great 1:1 data point between the two systems.  It also makes it easy to use that campaign ID as your transaction ID.</p><p>Incrementor Events.  (2 for every data point in SalesForce that you want to integrate)  These are needed to accomplish the heavy lifting of the state over time.   If you want to track revenue attributed to a specific campaign for example, you create 2 events.  One revenue_positive event, and one revenue_negative event.   Later you will create a calculated metric to get the delta of these two events to get the actual number.</p><p>State Manager.  You have to have some mechanism to get the data out of SalesForce and then be able to determine the difference in the value of the data points you want to integrate into Omniture.  There are numerous ways that you could accomplish this, but I chose to write a custom ColdFusion / SQL solution.</p><p
style="text-align: center;"><a
href="http://www.rudishumpert.com/wp-content/uploads/2010/05/Omniture-SalesForce-Plan-1.png"><img
class="size-full wp-image-587 aligncenter" title="Omniture-SalesForce Plan" src="http://www.rudishumpert.com/wp-content/uploads/2010/05/Omniture-SalesForce-Plan-1.png" alt="" width="677" height="538" /></a></p><p>The flow chart above shows at a high level all of the steps in the process.</p><p>1) Pull a list of transaction ids/ campaign ids from Omniture and store that list in a new db table.</p><p>2) Loop over that table and query SalesForce to get the data points you want to move, and store that in a second database table.</p><p>3) The very first time you run this process you are creating the state.  This copies the data into the third state database table.  Each time after that, you compare the values in the 3rd table with the data in the 2nd table.   This drives the values you pass into the incrementor events.   If the first time you pull data from SalesForce to find the revenue for a campaign is $100.00 that gets stored in the third table.  You pass 100 to the revenue_positive and 0 to the revenue_negative.  The next data pull the revenue is now 110.  After the comparison, you pass a 10 to the revenue_positive and 0 to the revenue_negative.  Now on a future data pull, you find the revenue is down to 50.  You now send a 0 in the revenue_positive and a 60 to the revenue_negative events.   When you create the calculated metric you will see the new value of 50 for that calculated metric.</p><pre class="brush: plain;">
&lt;cfset variables.revenuewon_str=&quot;#variables.revenue_pos_event#=0|#variables.revenue_neg_event#=0&quot;&gt;
&lt;cfif variables.DIF_revenuewon EQ 0&gt;
	&lt;cfset variables.revenuewon_str=&quot;#variables.revenue_pos_event#=0|#variables.revenue_neg_event#=0&quot;&gt;
&lt;cfelseif variables.DIF_revenuewon GT 0&gt;
	&lt;cfset variables.revenuewon_str=&quot;#variables.revenue_pos_event#=#variables.DIF_revenuewon#|#variables.revenue_neg_event#=0&quot;&gt;
&lt;cfelse&gt;
	&lt;cfset variables.revenuewon_str=&quot;#variables.revenue_pos_event#=0|#variables.revenue_neg_event#=#ABS(variables.DIF_revenuewon)#&quot;&gt;
&lt;/cfif&gt;
</pre><p>The code sample above evaluates the difference in the data point between tables 2 and 3 and generates the string required to send the data to Omniture.</p><p>4) Push the data to Omniture.  After you create the txt file with the transaction id and the values for the events, set up an automatic ftp using the <a
href="http://blogs.omniture.com/2009/01/25/data-sources-inside-omniture-sitecatalyst/" target="_blank">Omniture DataSources</a>.</p><p>5) Automate.  Since the controlling code to power this process was ColdFusion, all that was required was to set up a scheduled task within the ColdFusion admin and done!</p><p><strong>The Result:</strong></p><div
id="attachment_593" class="wp-caption aligncenter" style="width: 529px"><a
href="http://www.rudishumpert.com/wp-content/uploads/2010/05/sf.png"><img
class="size-full wp-image-593" title="sf" src="http://www.rudishumpert.com/wp-content/uploads/2010/05/sf.png" alt="" width="519" height="156" /></a><p
class="wp-caption-text">My Photoshop-fu is weak.</p></div><p
style="text-align: left;">Now, right inside of SiteCatalyst, you can see SalesForce data points that matter to you in your reports.  Of course, the data will look much cleaner that my mocked up image...hopefully.</p><p
style="text-align: left;"><p
style="text-align: left;"><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F18%2Fomniture-salesforce-integration-a-different-spin%2F&amp;linkname=Omniture%20%26%238211%3B%20SalesForce%20Integration%3A%20Take%202" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F18%2Fomniture-salesforce-integration-a-different-spin%2F&amp;linkname=Omniture%20%26%238211%3B%20SalesForce%20Integration%3A%20Take%202" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F18%2Fomniture-salesforce-integration-a-different-spin%2F&amp;linkname=Omniture%20%26%238211%3B%20SalesForce%20Integration%3A%20Take%202" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F18%2Fomniture-salesforce-integration-a-different-spin%2F&amp;linkname=Omniture%20%26%238211%3B%20SalesForce%20Integration%3A%20Take%202" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/05/18/omniture-salesforce-integration-a-different-spin/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Practical Analytics</title><link>http://www.rudishumpert.com/2010/05/05/practical-analytics/</link> <comments>http://www.rudishumpert.com/2010/05/05/practical-analytics/#comments</comments> <pubDate>Thu, 06 May 2010 00:09:59 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Practical Analytics]]></category> <category><![CDATA[Web Analytics]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=573</guid> <description><![CDATA[Often when reading blogs and articles on web analytics there is lots of use of the term "Actionable".  Well I'd like to talk about something else.  Something that should please the developers in IT that support your site and just maybe help to improve what can sometimes be a  tenuous relationship between IT and Marketing.  [...]]]></description> <content:encoded><![CDATA[<p>Often when reading blogs and articles on web analytics there is lots of use of the term "Actionable".  Well I'd like to talk about something else.  Something that should please the developers in IT that support your site and just maybe help to improve what can sometimes be a  tenuous relationship between IT and Marketing.  Practical Analytics.</p><p>What does Practical Analytics mean?  Here is my spin on it:</p><blockquote><p>Practical Analytics is the process of using web analytic data to help guide infrastructure,  features, and  support of a web site or web based application.</p></blockquote><p>Really it comes down to makes changes on your site that make it easier to manage and maintain, not <em>necessarily</em> changes that make it a better experience for the end user of the site itself.  The data used to make these changes is not hard to get to, nor does it require any deep analysis.  Most of the time it is data contained in the most basic, canned reports available in almost every tool.</p><p>So what?  Well as a career developer, I can not tell you the number of times I would have killed to have had the type of usage data I have now to not only help guide change, but to be able to use this data to help convince the HiPPOs out there that these changes needed to be made.</p><p>This is extremely important to me right now, as I am knee deep in a major redesign effort.   As part of the planning process for the redesign there have been countless decisions made based on analytic data we had, and over the next few blog posts I will be highlighting some of my favorites.</p><p><strong>Practical Analytics: Use Case #1 - Kill the old, tired, busted, outdated pages. </strong></p><p>I am sure this is hardly news to anyone, but as a company constantly adds content to their site to keep it fresh and current, there is often a multitude of old outdated pages that never quite seem to get deleted.  Perhaps the thought is that they need to be kept for SEO, or someone may have a bookmark to the page, or more than likely a new page version with a new name was published and the old file was never deleted.</p><p>So use your web analytics tool of choice and pull a list all the web pages with any traffic at all for the last six months.   The most basic of reports.  Then get a list of all the files currently on your server.  Apply a little excel magic and you will get a list of pages on your site with zero traffic in the last six months.  These are the first ones to go, no one will miss them at all.</p><p>The next step would be to look at the ones that are really lagging far behind.  This will take a bit more time to go through that list and see if these pages need to go, or need to be improved.  Either way, you have made the maintenance of your web site a bit easier by removing the pages with little or no traffic.</p><p>If you are truly concerned about users that might have a bookmark to one of those old pages, then you could easily modify your 404 process to send users to a search results page or some other custom 404 solution.</p><p>This is simply one of many practical applications of analytics data that will not only help you clear out old content, but should make the overall task of site maintenance easier.   This should please even the most obstinate of curmudgeon developers out there!</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F05%2Fpractical-analytics%2F&amp;linkname=Practical%20Analytics" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F05%2Fpractical-analytics%2F&amp;linkname=Practical%20Analytics" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F05%2Fpractical-analytics%2F&amp;linkname=Practical%20Analytics" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F05%2F05%2Fpractical-analytics%2F&amp;linkname=Practical%20Analytics" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/05/05/practical-analytics/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Review: User Driven Change &#8211; Give Them What They Want</title><link>http://www.rudishumpert.com/2010/04/21/review-user-driven-change-give-them-what-they-want/</link> <comments>http://www.rudishumpert.com/2010/04/21/review-user-driven-change-give-them-what-they-want/#comments</comments> <pubDate>Thu, 22 Apr 2010 00:38:15 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Reviews]]></category> <category><![CDATA[Web Analytics]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=566</guid> <description><![CDATA[A few months back I was lucky enough to get a copy of "User Driven Change: Give Them What They Want" by Carlos del Rio &#38; Jeff Noethen.  When it arrived I set it on a stack of other books in my ever growing pile of books to read.   To be honest I had [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.amazon.com/User-Driven-Change-Give-Them/dp/0578010674"><img
class="alignleft size-full wp-image-567" title="User Driven Change" src="http://www.rudishumpert.com/wp-content/uploads/2010/04/417g-rL9Q7L._SS500_.jpeg" alt="" width="240" height="240" /></a></p><p>A few months back I was lucky enough to get a copy of "User Driven Change: Give Them What They Want" by <a
href="http://www.userdrivenchange.com/about" target="_blank">Carlos del Rio &amp; Jeff Noethen</a>.  When it arrived I set it on a stack of other books in my ever growing pile of books to read.   To be honest I had forgotten about it until I received a nice "nudge" on twitter asking what I thought of the book.</p><p>Well, I finally got around to reading it.  I was blown away!  Not only was it a nice fast read, but the information was broken down in great examples.  The book starts off with how to make a site quick to use and engaging, and breaks that down into the following points:</p><p>1. Site Speed<br
/> 2. Short Action Process<br
/> 3. Intuitive Design<br
/> 4. Clear Messaging<br
/> 5. Compartmentalization<br
/> 6. Third Party Integration</p><p>Impressively, the authors take their own advice and apply most of these points to the book, making it both quick and engaging!</p><p>1. Site Speed:  The book is only 130 pages and can easily be read in one sitting, although I am sure that I will be re-reading it with a highlighter and note pad in hand.  It does not get bogged down in useless information.</p><p>2. Short Action Process: With each section of the book, there are examples/suggestions to put the topic into action on your own site.</p><p>4. Clear Messaging: No fluff.  Straight to the points and to the real meat of the content.</p><p>5. Compartmentalization: Each section is broken down into small items that can be taken and used on small sections on your site or as part of a larger project.</p><p>While this book is not written for someone new to the measure space, there are great insights in this book than can be leveraged by people at all skill levels.  After reading through a few very technical books, it was nice to have a light, quick read that is still packed with useful information in an easily digestible format.  I would recommend this book to anyone looking for more insight on improving the site experience for your users, and I am looking forward to their next book!</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F21%2Freview-user-driven-change-give-them-what-they-want%2F&amp;linkname=Review%3A%20User%20Driven%20Change%20%26%238211%3B%20Give%20Them%20What%20They%20Want" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F21%2Freview-user-driven-change-give-them-what-they-want%2F&amp;linkname=Review%3A%20User%20Driven%20Change%20%26%238211%3B%20Give%20Them%20What%20They%20Want" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F21%2Freview-user-driven-change-give-them-what-they-want%2F&amp;linkname=Review%3A%20User%20Driven%20Change%20%26%238211%3B%20Give%20Them%20What%20They%20Want" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F21%2Freview-user-driven-change-give-them-what-they-want%2F&amp;linkname=Review%3A%20User%20Driven%20Change%20%26%238211%3B%20Give%20Them%20What%20They%20Want" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/04/21/review-user-driven-change-give-them-what-they-want/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Jive + Omniture + Automation = Happiness</title><link>http://www.rudishumpert.com/2010/04/05/jive-omniture-automation-happiness/</link> <comments>http://www.rudishumpert.com/2010/04/05/jive-omniture-automation-happiness/#comments</comments> <pubDate>Mon, 05 Apr 2010 19:15:25 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Code Snipets]]></category> <category><![CDATA[ColdFusion]]></category> <category><![CDATA[Data Collection]]></category> <category><![CDATA[Omniture]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[Jive Software]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=534</guid> <description><![CDATA[I am a true believer in automation, so the last thing I want to do is create a process or work flow that I or someone else has to baby sit.   When I began working on a project to see what type of data I could get from Jive, an online community application, and into Ominture I wanted [...]]]></description> <content:encoded><![CDATA[<p>I am a true believer in automation, so the last thing I want to do is create a process or work flow that I or someone else has to baby sit.   When I began working on a project to see what type of data I could get from <a
href="http://www.jivesoftware.com/" target="_blank">Jive</a>, an online community application, and into Ominture I wanted to make sure that the solution could be automated.</p><p>Before we get into it, there is a key point I want to make about the data.  The data base that you get from Jive is not your typical clickstream data set.  It is an activity database.  You will not get pagenames, or visitor session information.  What you will get is an activity logged for everything a users does on the community site.  Views/creates/modifies  a thread, blog post, question, poll, etc..   If the user is logged in, you get their user id, name, etc..  <em><strong> If the user is not logged in, they all show up as a single user.</strong></em> Even with this limitation, there is still plenty of useful data to be found.</p><p><span
id="more-534"></span></p><p><strong>Configuration requirements/prerequisites: </strong>While the end solution is fully automated, there is a fair amount of  configuration that most be completed.</p><p><strong>ColdFusion Server: </strong> The main controlling files are cfm pages that are called via the CFAdmin / Scheduled tasks.  This process could be accomplished using your scripting/coding language of choice.</p><p><strong><a
href="http://www.postgresql.org/" target="_blank">PostgreSQL:</a></strong> The<strong> </strong>.dmp file that Jive provides is in the PostgreSQL format.  This is a free/open source database solution.  I found that the built in admin works ok for setting up the database and user to be used for the scripts, and for creating any views to assist with the ETL process, but is severely lacking in terms of exporting capabilities.</p><ul><li>Create 2 views to pre-process the data for extract<ul><li>Known Users</li><li>Unknown users / guests</li><li>Define headers of views to align to Omniture - Data Source file requirements.</li></ul></li></ul><p><a
href="http://www.sql-workbench.net/" target="_blank"><strong>SQL WorkBench</strong> </a>:  A free / open source db admin tool with exceptional data export features which are all accessible via the command line interface.  Once you install the tool, you will need to create a connection profile to be used in all scripts.</p><ul><li>Create SQL queries to perform data extract</li><li>Need 1 .sql file for each query<ul><li>creates .txt file with data ready to ftp</li><li>creates matching .fin file to ftp</li></ul></li></ul><p><strong>Command line / batch file access: </strong> While most of the controlling files are ColdFusion pages, the files that perform the restore and data extraction are batch files.  It is up to you to use the format of calling these batch files that you are most comfortable and confident with.</p><p><strong>Omniture Report Suite: </strong>Before uploading any data, make sure you have planned out what data points you want to capture.  Walk through the tables in the .dmp file to see what elements are most important to your business needs.  Once you have this, work with Client Care to set up the report suite.  Below is a list of <em><strong>some </strong></em>of the items you will want to consider.</p><ul><li>Define props / evars / events</li><li>Enable custom visitorID (uses userID from Jive)</li><li>Enable timestamps</li><li>Generic Data Source setup with full processing</li><li>FTP information</li></ul><p><strong>Local Folders: </strong>Working directory to hold batch files, cfml pages, data extracts, and a sub folder to move completed files to.</p><p>Once all of the configuration steps have been completed, you can begin tackle the automation.</p><p><strong>Work Flow - Steps</strong></p><ol><li>Download daily dmp file from Jive of the Analytic / Activity.</li><li>Restore dmp to local postgreSQL db</li><li>Extract data</li><li>FTP data extracts to Omniture</li></ol><p>Only 4 steps!  That is not so bad.  So lets look at what is involved in each step.</p><p><strong>Step 1:</strong> Jive provides an "Analytics" database in either a .sql.gz  or  a.dmp file.  I say "Analytics" because the data does not contain all of the traditional analytics information, page views, etc... What it does hold is activity.  Every time a user views a thread, blog post, poll etc... that is logged.  As is when users create content for the site.   All of this information is held within the myriad of tables in the .dmp file.  The database is a PostgreSQL format</p><p>The challenge is how to automate the download of this file.   I used a CFHTTP call as it allows me to provide a userid/password to authenticate into the Jive Cloud Admin site to retrieve the file.  It is also an easy way to customize the filename to include the date.  Each .dmp file is named in the following format:  accountname-yyyymmdd.dmp</p><pre class="brush: plain;">
		&lt;cfhttp
				username=&quot;yourLogin&quot;
				password=&quot;yourPassword&quot;
				method=&quot;GET&quot;
				url=&quot;#variables.URLLocation#&quot;
				result=&quot;dmpGet&quot;
				resolveURL=&quot;yes&quot;
				getAsBinary=&quot;yes&quot;		/&gt;
</pre><p>Once you have written the script to pull the database you have to schedule the download around the processing that Jive performs.  Each day, they delete the previous day's file and begin the process to create the next day's file.  This can take anywhere from 2-6 hours and during that time the new .dmp file is not there.  Each file is a full dump, so don't worry if you miss a day, you will always be able to go back and retrieve past information.</p><p>If the call to download tries to get the .dmp file when the file is not yet ready I create a  db_download.fail file in the working directory.  This is mostly used for debugging purposes.  Once the file is successfully downloaded I create a db_download.done and a db_download-yyyymmdd.done file.   The db_download.done file serves as a flag to the next step that the dmp file is there an ready to be restored.  The db_download-yyymmdd.done lets the download process know to not attempt to download the dmp file again for that day.</p><p><strong>Step 2:</strong> Restore .dmp to local postgreSQL</p><p>The controlling cfml page checks to see if the db_restore.done exists.  If it does, it executes a batch file that uses a command line command to restore the database and once the restore is finished it creates a db_restore.done file.  It also moves the db_download.done to the processed folder within the working directory and renames it to db_download-yyyymmdd.done.completed</p><pre class="brush: plain;">
&quot;C:\Program Files\PostgreSQL\8.4\bin\pg_restore.exe&quot; --clean --host %server% --port 5432 --username %username% --dbname %database% --verbose D:\WorkingDirectory\db.dmp
</pre><p><strong>Step 3:</strong> Extract Data</p><p>The controlling file checks to see if the db_restore.done file exists.  Once it finds the db_restore.done file, it executes each predefined  .sql file.  These files create a daily-dataset.txt file that is properly formatted to be ftp'd to omniture.  It also creates a .fin file of the same name to be ftp'd as well.   Once all of the .sql files have been processed it moves the db_restore.done file to the processed folder within the working directory and renames it to db_restore-yyyymmdd.done.completed.  The controlling file also creates a db_extract.done file.</p><pre class="brush: plain;">
WbExport -type=text
         -file='d:/workingdirectory/dailyfile.txt'
         -header=True;
// pseudo code
SELECT  Your data
WHERE to_char(data.date,'mm/dd/yyyy') = to_char(current_date-1,'mm/dd/yyyy');
WbExport -type=text
         -file='d:/workingdirectory/dailyfile.fin'
         -header=false;
select * from jivedw_user where user_id = -99;
</pre><p><strong>Step 4:</strong> FTP completed files to Omniture</p><p>The controlling file  checks to see if the db_extract.done file exists.  Once it find this, the I use  CFFTP to open a secure connection to the Omniture FTP server defined in the configuration.  Each file is ftp'd to Omniture along with the matching fin file.  Again these files are also moved to the processed folder in the local working directory and renamed with the time-stamp.</p><div
id="attachment_541" class="wp-caption alignnone" style="width: 659px"><a
href="http://www.rudishumpert.com/wp-content/uploads/2010/04/Jive-Automation.png"><img
class="size-large wp-image-541" title="Workflow" src="http://www.rudishumpert.com/wp-content/uploads/2010/04/Jive-Automation-1024x616.png" alt="" width="649" height="389" /></a><p
class="wp-caption-text">Click to see full size</p></div><p><strong>Next steps? Or as <a
href="http://www.kaushik.net/avinash/" target="_blank">Avinash</a> likes to say... So What?<br
/> </strong></p><p>Now that you have a daily process that will pull, transform, and load the activity data from your Jive installation into Omniture, what else can you do/discover.</p><ul><li>Find out which areas of the community are generating the most content</li><li>Create automated report publications to community administrators / moderators</li><li>Easily identify the most active:<ul><li>Users</li><li>Companies</li><li>Employees</li><li>Topics</li><li>etc.......</li></ul></li></ul><p>These are just a few things you can do with the activity data once you have it inside of Omniture.  What are some of the things you will use the data for?</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F05%2Fjive-omniture-automation-happiness%2F&amp;linkname=Jive%20%2B%20Omniture%20%2B%20Automation%20%3D%20Happiness" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F05%2Fjive-omniture-automation-happiness%2F&amp;linkname=Jive%20%2B%20Omniture%20%2B%20Automation%20%3D%20Happiness" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F05%2Fjive-omniture-automation-happiness%2F&amp;linkname=Jive%20%2B%20Omniture%20%2B%20Automation%20%3D%20Happiness" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F04%2F05%2Fjive-omniture-automation-happiness%2F&amp;linkname=Jive%20%2B%20Omniture%20%2B%20Automation%20%3D%20Happiness" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/04/05/jive-omniture-automation-happiness/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Why I joined the Web Analytics Association</title><link>http://www.rudishumpert.com/2010/03/23/waa/</link> <comments>http://www.rudishumpert.com/2010/03/23/waa/#comments</comments> <pubDate>Tue, 23 Mar 2010 13:38:09 +0000</pubDate> <dc:creator>Rudi</dc:creator> <category><![CDATA[Reviews]]></category> <category><![CDATA[Web Analytics]]></category> <category><![CDATA[WAA]]></category> <category><![CDATA[Web Analytics Association]]></category><guid
isPermaLink="false">http://www.rudishumpert.com/?p=529</guid> <description><![CDATA[Recently in the great twittersphere there has been a lot of chatter on the value of a Web Analytics Association (WAA) membership.  After thinking on it for a few days, I wanted to offer my my 2/5's of nickel on why I joined the WAA and what value I have received as a result of [...]]]></description> <content:encoded><![CDATA[<p>Recently in the great twittersphere there has been a lot of chatter on the value of a <a
href="http://www.webanalyticsassociation.org/" target="_blank">Web Analytics Association</a> (WAA) membership.  After thinking on it for a few days, I wanted to offer my my 2/5's of nickel on why I joined the WAA and what value I have received as a result of joining.</p><p>Let me start with saying that I think true value of a membership in the WAA, or any user group like this,  is dependent on what you are willing to put into it.  Membership is not a passive experience.    My personal goals in joining the WAA were:</p><ul><li>Education</li><li>Networking</li><li>Collaboration</li></ul><p><strong>Education:</strong></p><p>As I become more and more immersed in the world of analytics, I am constantly looking for way to expand my knowledge.   As part of this process I wanted to be able to participate in the WAA committees, forums, peer reviews, webcasts, etc..    Being able to join the committees and not only participate in the discussions, but to learn from the experiences of the other members of great value to me.</p><p><strong>Networking:</strong></p><p>I love being able to interact with others that are passionate about web analytics.  To share experiences, challenges, failures, and successes and to build relationships with others in the industry is great.  It is true that this can be done without the WAA, but for me,  it has opened up another set of people to interact with that I had not yet, or might not have the had the opportunities to.</p><p><strong>Collaboration:</strong></p><p>The developer in me loves standards. Love, love, love, love... Standards.  So the opportunity to be part of a group/committee that discusses and helps shape those standards is a very exciting offer.  I am still getting my feet wet in this area, but I look forward to becoming more active in this area.</p><p>Based on these goals alone, I do feel that I get a great value for my membership in the WAA!</p><p>There are other great groups and projects out there, like the <a
href="http://www.webanalyticsdemystified.com/ae/index.asp" target="_blank">Analyis Exchange</a> where you could accomplish these goals, but I do not feel that participation in one group should preclude you from participating in the other.   I love talking about analytics with whomever will listen and through these conversations, this engagement, and healthy debate on ideas true innovation happens.    There is something great about taking an idea and throwing it out for the world to see, comment on, and mold into something new.</p><p><a
href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F03%2F23%2Fwaa%2F&amp;linkname=Why%20I%20joined%20the%20Web%20Analytics%20Association" title="Twitter" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a
href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F03%2F23%2Fwaa%2F&amp;linkname=Why%20I%20joined%20the%20Web%20Analytics%20Association" title="LinkedIn" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a
href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F03%2F23%2Fwaa%2F&amp;linkname=Why%20I%20joined%20the%20Web%20Analytics%20Association" title="Delicious" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a
href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.rudishumpert.com%2F2010%2F03%2F23%2Fwaa%2F&amp;linkname=Why%20I%20joined%20the%20Web%20Analytics%20Association" title="Facebook" rel="nofollow" target="_blank"><img
src="http://www.rudishumpert.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a
class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a></p>]]></content:encoded> <wfw:commentRss>http://www.rudishumpert.com/2010/03/23/waa/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 20/29 queries in 1.598 seconds using disk

Served from: www.rudishumpert.com @ 2010-09-10 10:46:45 -->