Troubleshooting Analytics Discrepancies

It is not uncommon to see analytic data discrepancies with between third party reporting systems and JW Analytics, with per media variances ranging up to 20%. To better understand what may be causing these discrepancies, we recommend reviewing the following common causes and following our troubleshooting steps below.

Causes

Discrepancies may result from:

  • Latency: Lag between an initial request and the media loading can lead to differences in counts. Viewers often navigate away after the video embeds but before the third party responds with the requested line item.

  • Blocking Software: Additional software like Ad blockers can prevent pings from being delivered by the third party or JWPlayer.

  • Tracking Methodologies: JWPlayer defines its analytics via its ping definitions, but a third party may record dimensions differently or trigger them at a different time.

    Filtering: Third party analytics have different methods for filtering pings from various sources dropping values from spammers, bots, spiders etc.

Troubleshooting

Should you want to troubleshoot these discrepancies, here are some suggested steps:

Define issue

  1. How big is the discrepancy?
    • Sub 10% is acceptable
  2. How long has this discrepancy occurred?
    • If central to a day, what changed that day? (Player updates, custom code, new pages, etc.)
  3. Is it across all media and domains or isolated?
    • If isolated what is special about that page/media/setup/ad?
  4. Has the discrepancy remained constant or changed over time?
    • If changed drastically over time have measurement definitions changed? Player updates? Custom code? etc.
  5. What player setup is being used? Is there any additional code or scripts?

Build test pages

Test page #1: Only JW Player

  1. Build a test page with JW Player, customer content and nothing else
  2. Capture JW Analytics
  3. Capture GA Analytics
  4. Compare results

Test page #2: +Custom Code

  1. Build a test page with JW Player, customer content and include added customer Player Code
  2. Capture JW Analytics
  3. Capture GA Analytics
  4. Compare results

Test page #3: Base JW player code + 3rd party Analytics

  1. Build a test page with JW Player, customer content and include added customer Player Code
  2. Capture JW Analytics
  3. Capture GA Analytics
  4. Compare results

Test page #4: Base JW player code + 3rd party Analytics + JW Analytics/GA

  1. Build a test page with JW Player, customer content and include added customer Player Code
  2. Capture JW Analytics
  3. Capture GA Analytics
  4. Compare results

Test page #5: Customer player code + 3rd party Analytics + JW Analytics/GA

  1. Build a test page with JW Player, customer content and include added customer Player Code
  2. Capture JW Analytics
  3. Capture GA Analytics
  4. Compare results

Definitions of JW Analytics Metrics

Updated: 11.21.17

Metrics

Definition

Calculation

Content

Any video or audio content object with a unique Media ID

An 8 character code (ex: RltV8MtT) that uniquely identifies the media asset. This can be found on the video detail page in the dashboard.

Embeds

A player has been embedded on the page. One of these is fired for each player embedded on a given page

One of these is fired for each player embedded on a given page
 

Re-setting up the player also fires this ping

Plays

Video starts across all embedded players.

The first frame of a video that has been prepped to play has been displayed

Completes

Videos watched to completion

Viewer has reached the final quartile of the video

Daily unique viewers

Unique users who have played at least one video

Hashing the ip together with the user agent

Plays per Unique

The number of plays divided by the number of unique viewers on a specific day

Plays/Unqiues

Complete Rate

The number of plays divided by the number of completes, as a percentage

Completes/Plays

Time Watched

Total time watched across all your players (Does not calculate for External Live Streams)

Sum of watched duration with retention pings

Ad Impressions

The first frame of an ad has been shown to the user

Player does not have to be visible for this to fire

25% Complete

The number of times a view hit the 25% mark of a video.  Only available for videos over 30 seconds

sum(case when watched_pct >= 25 then plays else 0 end)

50% Complete

The number of times a view hit the 50% mark of a video.  Only available for videos over 30 seconds

sum(case when watched_pct >= 50 then plays else 0 end)

75% Complete

The number of times a view hit the 75% mark of a video.  Only available for videos over 30 seconds

sum(case when watched_pct >= 75 then plays else 0 end)

Complete Percent

The percentage of plays that ended in a complete

NVL(sum(completes)/NULLIF(sum(plays),0),0)

Play per Viewer

The average number of plays for each unique viewer

NVL(sum(plays)/NULLIF(hll(case when plays > 0 then Uniques end),0),0)

Time Watched per Viewer

The average amount of time watched for a unique viewer

NVL(sum(watched_duration)/NULLIF(hll(case when plays > 0 then Uniques end),0),0)

Ad Impressions per Viewer

The average number of ad impressions for a unique viewer

NVL(sum(ad_impressions)/NULLIF(hll(case when plays > 0 then Uniques end),0),0)

Ad Requests (Beta)

The number of times a video ad request was detected in the player. Just requests not fullfillment.

This does not mean the request was successful, only that the req was sent


One of these is sent for every ad break


The only time we can get an ad request event from the Google IMA client is an ad schedule with a single pre-roll ad

Ad Clicks (Beta)

The number of times a video ad was clicked in the player

 

Ad Skips (Beta)

The number of times a video ad was skipped in the player. An ad that was playing has been skipped by the user

Closing a static banner on top of the video also produces this ping.

Ad Completes (Beta)

The number of times a video ad was completed in the player

 

  Segmentation

Country

The country code this user was accessing the video from

Using a geolocator to take the ip address and determine the correct country

Region

The region this ping came from

Location parser determines the region

City

The city the user accessed the video from

Using a geolocator to take the ip address and determine the correct city

Device

The device this user was using

Parsing the user agent for the applicable device

Domain

Domain this ping came from

Taking the page url, grabbing the domain and then determining if we can get rid of the subdomain

Video

The title of the video this ping is for

 

Playlist

Playlist ID Only registers Recommended playlists

Player

The version of the player on the page Empty for Android

Platform

The particular SDK platform the player is embedded in

 

Page URL

The url of the page this ping came from

Derived by taking the query string off the request

Ad Schedule

Unique ID for a given ad schedule block  



 

Did you find this article helpful?

Please log in to rate this article.