Omny Studio offers a range of analytics reports for publishers to understand what, when, where, and how their audio content is being downloaded and played. The analytics system measures content downloads, podcast RSS subscribers, and content consumption over a wide range of publishing endpoints.

Due to the nature of popular podcast players like Apple Podcasts, background caching, progressive downloads, and limited listener identifiers, podcast download server requests may not accurately reflect the number of unique people that have played the content, thus the data requires processing.

To ensure metrics can be consistently defined and measured across the industry, the IAB has released guidelines on how analytics should be filtered and measured. The actual implementation of these guidelines will vary from provider to provider due to practical technical or design differences. This document outlines the various filtering techniques Omny Studio employs.

Note: Because we continuously refine our filtering parameters as well as experiment with methodologies to improve the accuracy of our metrics, this document may be amended from time to time to reflect any changes in our approach.

Download analytics filtering

Download analytics tracks downloads of any published audio files including but not limited to podcast players, embed players, and third-party apps and websites. 

Ignore non-GET HTTP requests 

We only count the HTTP request method of “GET” when calculating downloads requests.

We do not consider these downloads because we observed some podcast players will use HTTP request method “HEAD” to download file metadata without downloading any audio content.

Ignore known bots and spiders

We do not count download requests with an application user-agent that is identified to be a known bot or spider applications.

We do not consider these downloads because bots and spiders regularly download files for indexing purposes and do not correlate with people listening.

We utilize the open-source “UA-Parser” user-agent database enhanced with additional proprietary data to parse user-agents. This database is regularly updated to detect new user-agents as they are documented.

Ignore blacklisted user-agents

We do not count download requests from a list of application user-agents we’ve identified to be intentionally or unintentionally problematic applications.

We do not consider these downloads because we observed some mobile players and applications generate an excessive number (100s) of download requests that do not correlate with people listening.

Ignore blacklisted IPs

We do not count download requests from a list of IPs we’ve identified to be servers of third-party services caching content.

We do not consider these downloads because third-party services are downloading files for caching and mirroring purposes and do not correlate with people listening.

We are reviewing adding the known IP ranges of cloud hosting providers such as Amazon Web Services and Microsoft Azure to exclude popular web servers.

Ignore duplicate downloads in a 30 minute rolling window

We do not count duplicate download requests from an identifiable unique session (defined below) in 30 minute rolling window. Any duplicate downloads inside the rolling window will increase the rolling window.

Due to the limited listener identifiers available from podcast apps, we use the following data to identify unique sessions at best effort:

  • IP address (IPv4 or IPv6)
  • User-agent
  • Playback session ID (only available from iOS players like Apple Podcasts, up to a maximum of 5 unique IDs is counted in the rolling window)

We believe this rolling window approach and timeframe is a fair balance between over-counting multiple downloads from a single listener and under-counting multiple downloads from multiple listeners in a shared IP environment such as offices, schools, and homes.

We also believe a rolling window rather than a fixed time window is more appropriate to international publishers and publishers who operate across large regions because it is not artificially limited to a specific timezone such as UTC.

Cached files on other platforms

Some syndicated platforms and third-party services (e.g. Google Play Podcast and Spotify) may cache files on their own platforms. Plays on these platforms will not register a download on our server. 

Where possible we will ingest and display these metrics separately to downloads on our analytics dashboards.

Disable preloading in embed player

We do not preload audio content in the Omny Studio embed player before the user or autoplay (when permissible by the device) has initiated playback.

Furthermore our embed player use an explicit tracking system that will only count downloads when audio is playing. This prevents unintentional tracking from advanced prefetching behaviour in browsers.

(Under review) Ignoring partial downloads below a threshold

We are currently reviewing recommendations to ignore partial downloads where less than "1 minute worth" of audio content data was downloaded.

We are evaluating the impact of this process on the accuracy of metrics against the scalability and performance overhead. 

We theorize the impact on downloads counted will be negligible due to the proliferation of high-speed mobile and fixed broadband services around the world. For example a minute of audio (encoded as 128kbit MP3) can be downloaded in less than half a second at the global average network speed.

Podcast RSS subscribers filtering

Playlist subscribers analytics tracks downloads of the RSS feed of Omny Studio playlists by podcast players to provide an indication of how many unique users are subscribed to a podcast.

Identifying unique users

Due to the limited listener identifiers available from podcast apps, we use the following data to identify unique subscribers at best effort:

  • IP address (IPv4 or IPv6)

We are planning to utilise user-agent data in the near future to identify unique subscribers.

(Under development) Ignore known bots and spiders

We are planning to not count RSS download requests with an application user-agent that is identified to be a known bot or spider applications.

We do not consider these subscribers because bots and spiders regularly download RSS files for indexing purposes and do not correlate with people subscribing.

Consumption analytics filtering

Consumption analytics tracks playback behaviour of audio content in Omny Studio embed players and third-party players who has implemented our consumption analytics player API.

We utilize client-side tracking of player events such as play, pause and seek to generate behavioural reports such as how many people played, how long they played and which parts of the content they played.

Identifying playback sessions

We use a globally unique identifier (GUID) to identify unique playback sessions.

Repeated pausing and seeking inside the same content will not count as a new playback session. However reloading the player or changing content (in a list of content) will be considered a new session even if the user has already played the content before.

Ignore sessions shorter than 10 seconds

We ignore any playback sessions with a total duration of less than 10 seconds. 

We include non-consecutive sessions such as two segments of 0:00-0:05 and 0:30-0:36. This session will be counted since the total duration of all segments was 11 seconds.

We do not count sessions shorter than 10 seconds because we believe these short plays may be unintentional or accidental plays.

Did this answer your question?