How to Diagnose and Fix (not set) Visits from Flowplayer in Google Analytics

How to Diagnose and Fix (not set) Visits from Flowplayer in Google Analytics

Webmasters using Flowplayer 3.2 or earlier may have woken up to a pleasant surprise in Google Analytics the day after implementation. Visits doubled overnight, but how is that possible? Don’t get too excited because half of those visits are most likely fake visits. Flowplayer 3.2 or earlier has its own built-in analytics code, which clashes and conflicts with Google Analytics. Whether or not these issues have been fixed in the newly released 5.0 is still questionable.

Here’s a few tips for understanding, diagnosing and fixing the issues between Flowplayer and Google Analytics.

How to Diagnose and Fix (not set) Visits from Flowplayer in Google Analytics

Visits doubled in the month of February as soon as Flowplayer was set up

Cause of the Flowplayer Analytics Issue

Flowplayer has its own custom analytics code embedded within the service. This tracking causes clashes with Google Analytics if the video is tagged as an Event in GA. The Events set up on Flowplayer videos get triggered as if they were interacted with even though the user may not actually interact with the video. The clash causes the Google Analytics tracking code to generate a second visitor ID, which doubles the number of visits. All of the fake visits show up as (not set) in Google Analytics as a result of not being an actual visit.

How to Diagnose and Fix (not set) Visits from Flowplayer in Google Analytics

Not Set showed up as the top landing page during a two week span after launching Flowplayer

Diagnosing the Flowplayer Issue in Google Analytics

Diagnosing Flowplayer issues in Google Analytics is quite simple. The first step is to closely monitor Google Analytics on a daily basis after launching a Flowplayer video. The area to monitor closely is landing pages and page depth. Since this issue creates fake visits, there will be no landing page or page depth for the fake visits, and will show up as (not set) in GA. If (not set) shows up anywhere in GA, there is most likely a problem with one of the Events set up in GA. If any of the Events have been triggered much more than any realistically would be, you may have discovered the source of your issue. Flowplayer does not agree with Events tracking codes.

How to Diagnose and Fix (not set) Visits from Flowplayer in Google Analytics

An advanced segment used for correcting the (not set) issue

How to Fix the Flowplayer Analytics Issue

Since the data collected in Google Analytics has already been skewed due to this issue, an advanced segment will be needed to filter out the fake visits. In most cases, excluding the dimension “page depth” of less than one will filter out the (not set) visits.
The event tracking code will also need to be customized to work with FlowPlayer. The first set of code is the stock version of the analytics tracking code provided by FlowPlayer. The second set of code is the fixed version of the code.

Stock analytics code from flash.flowplayer.org

<script src="flowplayer/flowplayer-3.2.11.min.js"></script>
<script>
(function() {
$f("player", "flowplayer/flowplayer-3.2.15.swf", {
plugins: {
gatracker: {
url: "flowplayer/flowplayer.analytics-3.2.8.swf",
accountId: "UA-######-#",
events: { all: true }
}
}
});
})();
</script>

Fixed version:

Benefits:
1. Start and Finish will be treated as non-interactive events. This will make your bounce rates more accurate.
2. Event tracking Visitor ID will match with the trackPageview Visitor ID.
3. No extra bandwidth used by downloading an additional swf.

<script src="flowplayer/flowplayer-3.2.11.min.js"></script>
<script>
(function() {
function trackEvent(options) {
options = options || {};
options = {
category : options.category || "Video",
action : options.action || "",
label : options.label || "",
value : options.value || null,
noninteractive : options.noninteractive || false
}
options.label += ""; // Coerce this into a string.
_gaq.push(["_trackEvent", options.category, options.action, options.label, options.value, options.noninteractive]);
}
$f("player", "flowplayer/flowplayer-3.2.15.swf", {
clip: {
onStart: function() {
trackEvent({ action: "Started", noninteractive: true });
},
onPause: function() {
trackEvent({ action: "Pause", label: this.getTime() });
},
onResume: function() {
trackEvent({ action: "Resume", label: this.getTime() });
},
onFinish: function() {
trackEvent({ action: "Finished", noninteractive: true });
}
}
});
})();
</script>
Don't Miss Any Stories!
Get daily online video tips and trends via email!
About Our Contributing Author - Harrison Jones
Harrison Jones is the VP of Digital Marketing at MWI - a global search, content marketing, PR and conversion optimization agency. He specializes in SEO, paid search, analytics, usability analysis, information architecture, conversion optimization, and content marketing.



Please Note: Opinions expressed in this article are those of the contributing author and not necessarily that of

Become a Contributor: Occasionally, we like to offer experts within the online video industry the chance to write a post for ReelSEO. We like it because it offers you readers great content, and it comes directly from those in the field that are working on the technologies to power this online video revolution of sorts ;-) If you are interested in becoming a contributing author, please feel free to let us know. Read our post on becoming a contributor for additional information.

What do you think? ▼