Rudi Shumpert : Code By Numbers
8Oct/104

A Comparison of Omniture Site Catalyst & Google Analytics

I wanted to write a post to compare the various features, capabilities, and short comings of Omniture SiteCatalyst and Google Analytics to once and for all put this debate to rest.  But as I was researching this topic and I found hundreds of  articles that have tirelessly covered this topic.  Some folks might have been deterred by this.  After all, I really have only used Omniture SiteCatalyst and have only dabbled in the other two tools, was I really qualified to offer up an objective commentary?  After much introspection  I came to the conclusion that no, I was not qualified to offer up an objective comparison.  Was I going to let this stop me?  Hell no!

Read the rest of this entry »

6Oct/100

Eloqua Form Conversions

A while back I ran into an issue when working to integrate a set of self hosted Eloqua forms on our site.  The issue was compounded by two main items.

1) The forms in question existed or could be presented on almost any page on the site via an ajax modal.

2) All of the forms on the site post to a central object for validation and are then submitted from a secondary page/function.

These two items caused the form to lose the vital Eloqua cookie information which helps to reduce duplicate data and other unpleasantries.  And trust me, no one wants to see a form toss it's cookies.

As it turns out, I was not the only one having this issue.  After a bit of research I found this article on the Eloqua Artisan (http://eloqua.blogspot.com/2010/03/using-form-reposts-for-advanced-form.html) blog that was most helpful in crafting a solution.  I would also like to mention that Steve Woods of Eloqua was very helpful in his fast responses to my questions about the blog post.

The challenge was to take the ideas from this article and apply them to our specific need.  Here is the approach that I took.

Step 1. Create 2 form elements on each form to hold the required information:

<input type="hidden" name="elqCustomerGUID" id="elqCustomerGUID" value="" />
<input type="hidden" name="elqCookieWrite" id="elqCookieWrite" value="0" />

The second element "elqCookieWrite" should always pass a value of 0, the first element will eventually hold the cookie value.

Step 2. Get the cookie value from the Eloqua cookie and pass it into the new form element.To accomplish this, is to use a bit more of the provided Eloqua scripts than the standard install requires.  The code below uses some simple jQuery and an Eloqua specific JavaScript function  "GetElqCustomerGUID" to get the cookie value and then force the value into the newly created form element.

 <script>    var elqPPS = '70'; </script>
 <SCRIPT TYPE='text/javascript' SRC='/core/tracking/elqNow/elqScr.js'></SCRIPT>
 <script>
 $(document).ready(function(){
 $('#elqCustomerGUID').val(GetElqCustomerGUID());
 });
 </script>
 

Now when the form is presented on the page, this code will use the Eloqua function and pass it to our central form processing object.  Doing this allows the form to behave as if it directly posted to Eloqua, but this way you will maintain complete control of all of the form processing steps, including the user experience.

25Sep/100

X Change 2010 – Web Analytics Conference

For those that have attended the 2010 X Change Web Analytics Conference you know that it was an amazing experience. For any that did not make it, boy did you miss out! This was once of the best conferences I have ever attended.

Even with the conference attendance being limited to a small number, I had the opportunity to meet with and have really great conversations with most of the people there. The format of the conference is unlike anything you will find elsewhere. There are no speakers, no presentations, no sales pitches. It is as the title says an exchange of ideas among the attendees. The sessions or huddles as they call them are a focused conversation with 8-14 people who are passionate about the topic at hand. Each attendee is invited and encouraged to participate in the discussion and in the huddles I was apart of, almost every person there had something to offer to the conversation.

The huddles that I was able to attend were:

  • Integrating Web Analytics and CRM
  • Do’s & Don’ts when working with developers
  • Turning around troubled Web Analytics deployments
  • Moving from short-term conversion to lifetime value
  • The myth of the “Universal” tag

Every huddle leader did a great job of keeping the conversation focused and on topic without limiting the natural flow of the conversation. And being able to listen to others in the industry that have struggled and had success in dealing with the same issues that I have faced. I was able to take plenty of notes and many take aways to put into action almost immediately.

In addition to the huddles there were multiple functions that enabled you to interact with your fellow attendees and continue the conversations from the huddles or branch off new topics with new people. The list folks I was able to meet and talk to were too numerous to list, but everyone there at the conference was approachable and eager to share their knowledge and experiences with others.

The Semphonic and Web Analytics Demystified folks really know how to put on a great event, and I am grateful to have been able to participate and I am looking forward to next year’s event already.

7Sep/106

The best laid plans of mice and men

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....... me ...... did not do the project, or the Analysis Exchange justice.   In short, I failed.

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.

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.

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.

-Rudi

21Jul/102

Share This Page – On Your Terms!

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.

  1. 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.
  2. Limited tracking / analytic capabilities.
  3. Cookies you can not control.

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.

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.

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.

<ul>
  <li><A onClick="jsFunctionToRecordClick('Email');" HREF="mailto:?subject=#variables.emailSubject#&body=#variables.emailMessage#">Email </a></li>
  <li><a onClick="jsFunctionToRecordClick('Twitter');" href="http://twitter.com/home?status=#variables.twitterLink#" target="_blank">Twitter </a></li>
  <li><a onClick="jsFunctionToRecordClick('LinkedIn');" href="http://www.linkedin.com/shareArticle?mini=true&url=www.rudishumpert.com&title=AmazingArticle&summary=This is the best ever&source=Rudi"  target="_blank">LinkedIn </a></li>
  <li><a onClick="jsFunctionToRecordClick('Facebook');" href="http://www.facebook.com/share.php?src=bm&u=#variables.currentPage#&t=#variables.twitterLink#&v=3" target="_blank">Facebook </a></li>
</ul>

Sample links without the tracking added:

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.

			function jsFunctionToRecordClick(category){
				var s = s_gi(s_account);
				s.linkTrackVars="events,eVarN,propN,propN";
				s.linkTrackEvents="eventN";
				s.events="eventN";
				s.eVarN=''+category+'';
				s.propN=''+category+'';
				s.propN=''+category+' | '+s.pageName+'';
				s.tl();
				s.events="";
				s.linkTrackEvents="";
				s.linkTrackVars="";
				s.eVarN='';
				s.propN='';
				s.propN='';
			}

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.

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.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes