Categories
- Channel Analytics
- Inside Discover
- Marketing Integration
- Migration
- Omniture Business
- Online Marketing
- Online Merchandising
- Search Engine Marketing
- SEO
- Site Search
- Social Media
- Testing and Targeting
- Web 2.0
- Web Analytics
Authors
- Aseem Chandra (1)
- Adam Greco (46)
- Alex Hill
- Adam Justis (1)
- Brent Dykes (18)
- Ben Gaines (38)
- Brig Graff (3)
- Bret Gundersen
- Brian Hawkins (4)
- Brent Hieggelke (6)
- Bill Mungovan (16)
- Ben Robison (7)
- Brent Watson (3)
- Cameron Cowan (2)
- Chad Greenleaf (2)
- Chris Knoch (4)
- Christopher Parkin (14)
- Christian Ridge (2)
- Chris Zaharias (6)
- David Kirschner (5)
- Ed Hewett (17)
- Jeremy Anderson (1)
- John Broady (10)
- Josh James (1)
- Jordan LeBaron (5)
- Jim McTiernan (2)
- Jeff Minich (9)
- Jose Santa Ana (2)
- Kiran Kairab Ferrandino (8)
- Kevin Lindsay (5)
- Kevin Willeitner (2)
- Laura MacTaggart (3)
- Matt Belkin (35)
- Mikel Chertudi (12)
- Michael Halbrook (5)
- Michael Klein (4)
- Matt Langie (5)
- Pearce Aurigemma (16)
- Siddharth Chaudhary (1)
- Steve Gustavson (3)
- Tim Lott
- Tim Waddell (1)
- Wes Funk (4)
Pages
Recent posts
- Social Media Acquisition Reporting Basics [Advanced Solutions]
- Five Times to Test: 3 - Testing Entire Conversion Funnels
- Taking SiteCatalyst Menus to the Masses - Part II
- Taking SiteCatalyst Menus to the Masses – Part I
- Youtube - Yup, We Track That! [Advanced Solutions]
- Mobile Campaign Tracking
- Behavioral Targeting: Does the internet need to be “creepy” to be free?
- Switching to a Data-Driven Culture
- 5 Helpful Discover Tips
- Getting to know the new Marketing Channels reports
Recent comments
- Ron Diver: ROI should indica…
- Michael Johns: How come the …
- Jenn Kunz: Thanks, this poin…
- Abhilash: Hi, We are using …
- Ben Gaines: Mitchell, There…
- MitchellT: This is a great a…
- Ben Gaines: Abishek, A few …
- Abishek: Hi Ben, I need t…
- Maurice: For some of us that…
- Simon Pong: Following your M…
Links
- DigitalAlex
- eMetrics (Jim Sterne)
- Forrester Research (John Lovett)
- Future Now’s grokdotcom
- immeria
- June Dershewitz on Web Analytics
- Lies, Damned Lies
- LunaMetrics
- Mine That Data
- Occam’s Razor
- Rich Page Ramblings
- SemAngel
- The Analytics Guru
- The Omni Man
- Web Analysis, Behavioral Targeting and Advertising
- Web Analytics World
Archives
Flash version detection
A common question from SiteCatalyst users and developers deals with detecting the version of Adobe Flash Player that visitors have installed in their browsers. This information can be useful in determining what version of Flash your applications should require. There are a few different ways to capture the user’s Flash Player version, and I think there is some confusion about the best methods for doing this.
What I have always recommended is to use one of the many scripts available for free, and to put the output into a Custom Traffic (s.prop) and/or Custom Conversion (eVar) variable on the pages of your site.
Five minutes ago, I searched for “flash version detection” in Google and came up with a number of viable options; Adobe even offers a Flash Detection Kit, which includes complete instructions and examples for detecting the Flash version using either Flash itself or JavaScript.
The Adobe example includes a function, GetSwfVer(), which returns the Flash version number. This can easily be placed into a SiteCatalyst variable by applying the script to your page code and then setting something like:
s.prop31=GetSwfVer();
or
s.eVar17=GetSwfVer();
Other Flash detection scripts work similarly; once the function has got the Flash version number in a variable or as the result of a function call, putting this data into a SiteCatalyst variable is as easy as setting the SiteCatalyst variable equal to the variable or function name.
Keep in mind that traffic and pathing metrics (primarily Page Views, Visits, Visitors) are available or can be enabled on Custom Traffic reports, whereas conversion metrics (Orders, Revenue, custom events, etc.) will be the stars of the show if you use Custom Conversion reports for Flash detection. Make sure to pass the Flash version into the desired type of variable; certainly, if you have spare variables, you can pass this data into both types.
This question—how to track Flash version number—provides a great example of how common scripts available on the Internet can be used in conjunction with a SiteCatalyst implementation to meet reporting needs. The solution I described above doesn’t require an Omniture plug-in or hours on the phone with ClientCare. You don’t need to be an Omniture certified implementation professional. All you need is a little bit of JavaScript savvy and your favorite search engine. That isn’t to say that you definitely won’t run into questions, concerns, or problems, but the point is that there are some really cool/powerful things you can do independently by combining your own code (or code publicly available for use) and your SiteCatalyst implementation.
As always, feel free to leave comments, e-mail me (omniturecare@omniture.com), or contact me via Twitter (@OmnitureCare) with questions or ideas for future blog posts!

Over two years ago I suggested the same. My example uses the SWFObject library.
http://blog.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/
That’s awesome, Jason! This is exactly what I’m talking about—you saw a reporting need, you figured out a way to do it, you made it happen. Sometimes a plug-in is the way to go, but sometimes your particular need can be met (and managed) just as easily (or more easily) using something home-baked. Great work.
We have done a similar implementation but using SWFObject also…
//Get flash version using SWFObject (prop27)
try
{
var version = deconcept.SWFObjectUtil.getPlayerVersion();
var flashVersion = “None”;
if (version!=”undefined”)
{
if(version['major'] > 0) flashVersion = version['major'] +”.”+ version['minor'] +”.”+ version['rev'];
else flashVersion = “None (or Disabled)”;
}
s.prop27=flashVersion;
}
catch (e)
{ s.prop27=”Browser Error”; }
Ben,
We’ve done a similar implementaion using SWFObject:
var version = deconcept.SWFObjectUtil.getPlayerVersion();
which returns an array of version:
var flashVersion = version['major'] +”.”+ version['minor'] +”.”+ version['rev'];
Cheers
Sam