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 (3)
- Adam Egbert (7)
- Adam Greco (46)
- Alex Hill
- Adam Justis (2)
- Andrew Anderson (10)
- Brent Dykes (36)
- Nate Smith
- Ben Gaines (52)
- Brig Graff (5)
- Bret Gundersen (4)
- Brandon Hartness (2)
- Brian Hawkins (4)
- Brent Hieggelke (6)
- Bill Mungovan (16)
- Brandon Pulsipher (1)
- Ben Robison (8)
- Brent Watson (7)
- Cameron Cowan (4)
- Chad Greenleaf (3)
- Chad Warren (3)
- Chris Haleua
- Chris Knoch (4)
- Christopher Parkin (18)
- Christian Ridge (2)
- Customer Success (25)
- Chris Zaharias (6)
- Dave Dickson (1)
- David Humpherys (2)
- David Kirschner (5)
- Ed Hewett (19)
- Eric Hansen
- Harrison Jenkins
- Jacob Favre
- Jeremy Anderson (1)
- John Bates
- John Broady (10)
- Josh James
- Josh Kelson
- Jordan LeBaron (5)
- Jim McTiernan (2)
- Jeff Minich (9)
- Jose Santa Ana (2)
- Justin Grover (6)
- Kiran Kairab Ferrandino (8)
- Kevin Lindsay (5)
- Karl Moats
- Kevin Willeitner (4)
- Laura MacTaggart (5)
- Matt Freestone (1)
- Matt Belkin (35)
- Mikel Chertudi (12)
- Melinda Kersey
- Michael Halbrook (10)
- Michael Klein (4)
- Matt Langie (6)
- Marianne Llewellyn (2)
- Meme Rasmussen (1)
- Neil Morgan (6)
- Natalie Lacuesta Byrum (1)
- Pearce Aurigemma (30)
- Raj Sen
- Ray Pun (9)
- Richard Carey
- Roger Woods (2)
- Rhett Norton (3)
- Rich Page (1)
- Siddharth Chaudhary (2)
- Sean Gubler
- Steve Gustavson (3)
- Steve Smith
- Steve Hammond
- Tamara Gaffney (3)
- Tim Lott
- Tim Waddell (6)
- Wes Funk (4)
Pages
Recent posts
- Testing 202 – 5 disciplines to get greater value from your testing program
- Testing 101 - 5 disciplines to grow your testing program
- Understanding the business value of social media
- Why we do what we do: Fighting fear - Loss Aversion
- Adobe & the Complete Advertising Solution
- The Need for Speed
- Why we do what we do: Forced Reality - Conjunction Fallacy
- Confidence and Vanity – How Statistical measures can lead you astray
- Digital Publishing Suite analytics integration
- Finding the Next Generation of Digital Marketers
Recent comments
- James Leitess: when i run a …
- Joseph Brown: I definitely d…
- James: Is the 30 minutes vis…
- Jeferson: I love site, very …
- SEO Expert: Most Seo expert …
- SEO Expert: For myself, I wo…
- Joseph Brown: I was wonderin…
- horlama aparatı: There is e…
- Sandy Allain: Thanks for the…
- barrie pets website review: …
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