Track Plug-ins Across Browsers Using Omniture SiteCatalyst

If you’ve spent any amount of time using SiteCatalyst, you’ve probably run across the Netscape Plug-ins report. This is a nice report to see what browser plug-ins your visitors have installed, however (as you can probably tell from the name of the report), this report does not include visitors running IE, which probably makes up a good bulk of your traffic.

Knowing all the plug-ins a visitor has installed may or may not be all that important to you, however there may be a select few plug-ins that are critical to providing your users with a quality experience.

If you Google ‘javascript browser plugin detection’ you will find a large number of scripts you can download to identify browser plug-ins.

Why do we need a script anyway?

Firefox exposes an object, navigator.plugins, which provides an array of browser plug-ins, which I’m assuming Omniture makes use of when populating the Netscape Plug-ins Report, however IE does not. In order to detect plug-ins within IE, you are forced to instantiate the ActiveX Control for the plug-in you want to detect.

Items to consider before tracking plug-ins in IE:
1. Instantiating ActiveX Controls on every page of your site, may have a negative impact on user experience, so only detect the plug-ins that are most important to measure.

2. When you instantiate an ActiveX Control for the first time, the browser will give a popup warning message asking you to approve or disapprove the control, you know, the yellow bar at the top of the browser. Not the greatest thing from a measurement perspective.

There are a set of “approved” ActiveX Controls that will not trigger the popup warning. If anyone knows where this list of approved controls is published, please let me know.

OK, I understand why I need to track IE plug-ins differently and the potential drawbacks, so how do I deploy the tracking?

As I mentioned, there are a wealth of pre-built scripts available on the Internet that you can make use of. I made use of a free script available from JavaScriptKit.com. I took this script and modified it to my needs — track if my visitors had Flash installed or not.

I added the following code snippet to my doPlugins function within my s_code.js file.

var agt=navigator.userAgent.toLowerCase();
var ie  = (agt.indexOf("msie") != -1);
var ns  = (navigator.appName.indexOf("Netscape") != -1);
var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
var mac = (agt.indexOf("mac")!=-1);

if (ie && win) {	pluginlist = detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash"); }
if (ns || !win) {
		nse = ""; for (var i=0;i < navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
		pluginlist = detectNS("application/x-shockwave-flash","Shockwave Flash");
}

function detectIE(ClassID,name) { result = false; document.write('\n'); if (result) return name+','; else return ''; }
function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }

pluginlist += navigator.javaEnabled() ? "Java," : "";
if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);

if (pluginlist.indexOf("Flash")!=-1){
	s.prop8="Flash Installed";
}
else{
	s.prop8="Flash Not Installed";
}

Notice that I altered the code to only look for “Flash” but you can in theory look for any browser plug-in using this approach, you just need to know the name of the Class/Object.

In this example, I have captured if Flash is installed or not into a custom traffic variable (prop) and correlated it with Browser.


Jason Thompson

Jason is the Sr. Director of Community Solutions at Keystone Solutions. If you are interested in partnering with Jason at Keystone, in need of analytics & optimization consulting, or looking for employment/internship possibilities, please feel free to email ‘jason [at] keystonesolutions [dot] com’

Twitter - Facebook - More Posts

This entry was posted in Omniture SiteCatalyst. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting

Switch to our mobile site