In order to obtain the most accurate statistics for your podcast, please follow the requirements listed on this page:
Preloading is a technique where an audio player automatically starts downloading the audio content (or a chunk of it) without any user interaction. When a podcast is listened to on a Spreaker property (our website, the embeddable player, our mobile apps) the media is not automatically preloaded, in accordance with the IAB specifications.
In case you’re going to create your own customized player for a podcast hosted on Spreaker, you must avoid preloading to ensure compliance and metrics accuracy for your podcast. This will also reduce unnecessary bandwidth usage. For a web-based audio player, you should use the preload=”none” attribute of the html5 audio tag.
Autoplay is when media starts playing automatically when the page loads. This is often perceived as a bad user experience; mostly because the user is not expecting to hear audio when they did not select that action, such as pressing the play button. When a podcast is listened to on a Spreaker property (our website, the embeddable player, our mobile apps) the audio never start playing automatically, in accordance with the IAB specifications.
In case you’re going to create your own customized player for a podcast hosted on Spreaker, you must avoid autoplay to ensure compliance and metrics accuracy for your podcast. This will reduce unnecessary bandwidth usage and provide a better user experience. For a web-based audio player, you must not use the autoplay attribute of the html5 audio tag.
For a full download, ask for the entire file in one go, while for a progressive download, ask for the file in slices (byte range). This way a full download can be distinguished from a progressive download. Also, do not modify the enclosure URL when requesting media, and don’t add extra parameters. Enclosure URLs may contain anti-forgery parameters and signatures that will fail validation if tampered.
When creating podcast directories and listening applications, do not cache podcast episodes on your servers. Always download the latest episode from the enclosure URL for every app user wanting to listen. By caching the episode files on your servers, you prevent the hosting platform from correctly measuring downloads and listeners.
When monitoring an RSS feed for changes, use the GUID - as opposed to episode URL, title, publication date, etc. - to identify new episodes that should be automatically downloaded to a user’s device. The GUID is designed to be persistent through changes in the hosting environment, episode titles, etc.
If your player provides automatic downloads capabilities, employ an “automatic download unsubscribe” behaviour (e.g. - stop auto downloads after 5 episodes of non-listens). Also, do not automatically download all episodes by default to avoid unnecessary drain on the publishers’ servers and consumes users’ bandwidth.
User Agent Structure
Provide enough details in the user-agent header to allow it to be consistently differentiated from the user agent of other devices. Using the following pattern to build the user-agent will offer a consistent structure for all parties who consume the details:
<app name>/<app version> <device info> <os name>/<os version> <other info>
AppName/1.2.3 DeviceBrand DeviceModel OSName/1.2.3 LibName/1.2.3
Whenever possible the above user agent structure should be applied to both RSS feeds and audio files. When creating podcast players and libraries you should allow the user agent to be modifiable by the users of that library. We also suggest being conservative in adding unnecessary information to the user-agent string, and in encoding Practices. For example, it is best to refrain from injecting user or session IDs into the user-agent string.
We also recommend submitting your user-agent header value to the IAB Spiders and Bots inclusion list so that it is not considered a bot and can be a signal used to determine the device information.
If the app or platform does employ the use of bots to index content, it is recommended to specify a user-agent that is distinct from the application user-agent and includes the word “bot” to clearly identify its use case.