Detecting 3.3 million device data points every second

77 millisecond

Average detection speed

7,300+ device profiles, and counting

New profiles added daily

343 web browser profiles

Providing speed & accuracy

Easy-to-use with

HTML5, JavaScript, Java, CSS 3, PHP & .Net

Testing by humans

Physical device testing of key functionality

Device Detection is a service used by thousands of websites as part of both Responsive Web Design (RWD) and dedicated mobile site developments.  Using the server to identify device characteristics, the website’s content, features and UI elements, can be adapted as part of a highly targeted user experience.

Device Detection can be used to route visitors to separate device-specific templates, or as part of a “RESS” (Responsive Web Design + Server-Side Components) approach. RESS facilitates individual page components to be adapted to the device and user context, before being delivered to the physical device.  This removes the need to send unnecessary images and code that chokes too many modern-day websites.

The result?  Engaged customers, on any device.

Get Device Detection FREE

Device Routing for Mobile Web Sites

  • Netbiscuits Device Routing provides a simple, enterprise-grade solution for companies of all sizes, providing rapid and accurate routing of connecting devices
  • The device classification capability organizes your web traffic into smart phone, tablet, PC and feature phone device ‘themes’, and can be deployed in a few easy steps:

STEP 1: Generate your code by entering your website URL
STEP 2: Click the code generator. Copy and paste the single line of code into the html of your website
STEP 3: That’s it. You’re ready to go!

  • With a single line of code written in JavaScript  and embedded in the header of a web application, you can get started with no server dependency

Get Started with your my.netbiscuits account

An overview of Device Routing (PDF)

Netbiscuits Vault℠, the leading device library

  • Based on the Vault℠, the Netbiscuits device library contains devices from feature phones, smartphones and tablets, to Smart TVs and wearable devices, developed in-house since 2000
  • Device profiles are based on unique combinations of hardware, operating system – down to ‘dot-release’ versions – and browser
  • Device data can be accessed using open standards via a web services API interface, a Java module or a jQuery plug-in, providing multiple integration options

   Access The Vault to learn more

Dynamic parameters

  • Dynamic parameters provide some of the most actionable device information to web developers and marketers as they provide visitor context
  • Device Detection includes the JavaScript snippets required to detect dynamic parameters like bandwidth quality and location information
  • Web content and features are adapted based on real-time contextual information, delivering targeted experiences that improve engagement

   An overview of Netbiscuits parameters (PDF)

Custom clusters

  • Allows selection of device parameters to be grouped together to create ‘custom clusters,’
  • Long lists of device data don’t provide actionable information – custom clusters enable you to define your target profiles based on what matters to you
  • These unique segments enable your website to immediately identify groups of visitors that can then be targeted

How does it work?

Every time a visitor hits your webpage, the site makes an API call to the Device Detection service, providing the user agent information from the web browser. Device Detection responds with a profile for that specific device, along with a JavaScript snippet to be used for collecting client-side information.

Based on the combined server and client-side information gathered, decisions can be made by the website on which content, layout and features to deliver. More details can be found in the Technical Overview.

DEVICEDETECTION

Get Started in Minutes

As a cloud-based service, getting started with Netbiscuits Device Detection is quick and easy. Once you’ve signed-up for your subscription and created an account token, you can use the following JavaScript code samples with your HTML. Make sure you remember to update the code’s ‘Token’ information highlighted, with that specific to your subscription account.

Get Device Detection FREE

Code Tips & Tricks: Bandwidth Detection

This code can be used to check the speed of device’s Internet connectivity. The code would check the parameter bandwidthScore and return it to the ‘bwd’ span in the code.

<html>
<head>

	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<!-- Start of the Device Detection script -->
	<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
	<script src="https://dcs.netbiscuits.net/ds/detect/js/account/{accountName}/jsprofile/{JSprofileName}/token/{token}"></script>	
	<!-- End of the Device Detection script -->
	
	<title>Your Website</title>

</head>
<body>

<!-- bwd span -->
Bandwidth: <span id="bwd"></span>				

<!-- Bandwidth detection script -->

	<script>
		function fill() {
			var e;
			if (dcs.dynamic.result) {
					if (dcs.dynamic.result.bwd) {
					e = document.getElementById("bwd");
					e.innerHTML = dcs.dynamic.result.bwd.bandwidthNetwork + " (" + dcs.dynamic.result.bwd.bandwidthScore + ")";
				}
			}
		}
        dcs.dynamic.init({
            sensors : ["bwd"],
            callback : fill
        });
        fill();
	</script>
		
</body>
<footer>
</footer>
</html>

Code Tips & Tricks: SVG Support Detection

This code enables your server to determine if SVG images are supported by the device. If it’s supported and the image.maxwidth value is greater or equal 321px, we returning 400px wide SVG logo. If image.maxwidth is smaller then 321px but SVG is still supported, we return logo in SVG without width restriction. If none of the above is met, we return a 300px PNG logo.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<!-- Start of the Device Detection script -->
	<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
	<script src="https://dcs.netbiscuits.net/ds/detect/js/account/{accountName}/profile/{profileName}/token/{token}"></script>	
	<!-- End of the Device Detection script -->
	
	<title>Your Website</title>

</head>
<body>

<!-- Targeted video div -->
<div id="logo"></div>	
<script type="text/javascript">
  var logoelement = $("#logo"); 
	if (dcs.isProvided("browser.css.cansvg") && ( dcs.get("browser.css.cansvg") && dcs.get("image.maxwidth") >= "321")) {
     var code ='<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="400px" height="101.246px" viewBox="0 0 400 101.246" enable-background="new 0 0 400 101.246" xml:space="preserve"><g><path fill="#F03C19" d="M30.929,33.45c0-7.963-4.228-12.843-11.823-12.843c-7.582,0-11.747,4.872-11.747,12.843v22.288c0,0.338,0.017,0.657,0.027,0.983H0V33.448c0-10.958,7.119-18.886,19.106-18.886c11.979,0,19.179,7.922,19.179,18.888l-0.014,23.271h-7.369L30.929,33.45z"/><path fill="#F03C19" d="M79.061,32.78c0-9.676-4.356-13.282-12.328-13.282c-7.855,0-12.183,3.634-12.183,13.282H79.061zM47.194,33.872c0-13.699,7.989-19.308,19.539-19.308c11.613,0,19.685,5.604,19.685,19.305v1.91l-0.033,1.243H54.55v2.808c0,7.947,4.353,12.846,12.183,12.846c6.884,0,11.106-3.866,11.911-9.964h7.302c-1.526,8.902-8.467,14.95-19.193,14.95c-12.257,0-19.539-7.922-19.559-18.892V33.872z"/><path fill="#F03C19" d="M95.907,2.626h7.358V15.52h7.354v4.743h-7.354v28.073c0,2.056,1.135,4.09,4.053,4.09h3.3v4.835h-5.912c-5.032,0-8.799-2.405-8.799-7.824V2.626z"/><path fill="#F03C19" d="M334.521,2.626h7.358V15.52h7.355v4.743h-7.355v28.073c0,2.056,1.137,4.09,4.053,4.09h3.301v4.835h-5.914c-5.031,0-8.799-2.405-8.799-7.824V2.626z"/><path fill="#F03C19" d="M150.318,33.872c0-9.956-4.201-13.28-11.821-13.28c-7.609,0-11.75,3.313-11.75,13.28v4.902c0,7.975,4.168,12.849,11.75,12.849c7.594,0,11.821-4.885,11.821-12.849V33.872z M126.746,2.626v19.229c2.754-5.081,7.662-7.282,13.967-7.308c9.866-0.056,16.963,4.936,16.963,19.325v4.902c0,10.964-7.203,18.888-19.179,18.888c-11.988,0-19.108-7.927-19.108-18.886V2.626H126.746z"/><rect x="165.874" y="15.523" fill="#F03C19" width="7.356" height="41.196"/><rect x="165.87" y="2.623" fill="#F03C19" width="7.358" height="7.358"/><rect x="315.96" y="15.52" fill="#F03C19" width="7.357" height="41.199"/><rect x="315.957" y="2.623" fill="#F03C19" width="7.358" height="7.358"/><path fill="#F03C19" d="M183.387,25.797c0-8.115,6.589-11.232,15.646-11.232c9.15,0,15.837,3.148,15.932,11.076v0.829h-6.788l-0.014-0.821c-0.162-4.352-3.533-6.129-9.13-6.129c-5.617,0-8.63,1.88-8.729,5.609l-0.032,0.863c-0.161,2.084,2.165,3.743,5.269,4.805l12.172,3.919c5.307,1.726,8.698,4.824,8.698,10.185v0.433c0,7.302-6.553,12.33-17.379,12.33c-10.552,0-16.939-4.821-17.223-11.869v-1.917h6.714v1.847c0.16,4.357,3.835,7.173,10.509,7.173c6.588,0,10.172-2.631,10.314-6.497l0.095-0.595c0.134-3.128-1.877-4.791-4.829-5.822l-13.534-4.442c-4.841-1.603-7.691-4.57-7.691-8.665V25.797z"/><path fill="#F03C19" d="M223.741,33.872c0-13.682,7.833-19.308,19.112-19.308c9.777,0,16.587,4.238,17.886,14.282h-6.553c-1.321-6.4-4.919-8.257-11.333-8.257c-7.548,0-11.754,3.321-11.754,13.28v4.975c0,8.268,4,12.922,11.754,12.922c6.461,0,9.961-2.626,11.386-8.248h6.5c-1.402,9.168-8.058,14.229-17.886,14.229c-11.537,0-19.112-7.014-19.112-18.903V33.872z"/><path fill="#F03C19" d="M275.149,38.791c0,7.961,4.223,12.847,11.816,12.847c7.584,0,11.754-4.872,11.754-12.847V16.503c0-0.338-0.017-0.656-0.03-0.983h7.388v23.274c0,10.959-7.123,18.883-19.112,18.883c-11.975,0-19.173-7.919-19.173-18.886l0.011-23.271h7.369L275.149,38.791z"/><path fill="#F03C19" d="M357.352,25.797c0-8.115,6.592-11.232,15.648-11.232c9.145,0,15.838,3.148,15.933,11.076v0.829h-6.788l-0.017-0.821c-0.165-4.352-3.531-6.129-9.129-6.129c-5.621,0-8.632,1.88-8.732,5.609l-0.03,0.863c-0.16,2.084,2.164,3.743,5.271,4.805l12.173,3.919c5.307,1.726,8.693,4.824,8.693,10.185v0.433c0,7.302-6.547,12.33-17.374,12.33c-10.553,0-16.945-4.821-17.224-11.869v-1.917h6.716v1.847c0.159,4.357,3.835,7.173,10.509,7.173c6.584,0,10.17-2.631,10.313-6.497l0.095-0.595c0.134-3.128-1.883-4.791-4.827-5.822l-13.537-4.442c-4.838-1.603-7.692-4.57-7.692-8.665V25.797z"/><path fill="#F03C19" d="M395.48,4.19c0-0.433-0.36-0.592-0.966-0.592h-1.089v1.45h1.089c0.618,0,0.966-0.215,0.966-0.578V4.19zM394.542,2.62c1.162,0,2.112,0.447,2.112,1.545v0.327c0,0.612-0.41,1.084-1.084,1.299l1.48,2.514h-1.346l-1.361-2.282h-0.919v2.282h-1.212V2.62H394.542z M390.118,5.537c0,2.413,1.936,4.349,4.352,4.349c2.413,0,4.352-1.936,4.352-4.349c0-2.419-1.939-4.352-4.352-4.352C392.053,1.184,390.118,3.117,390.118,5.537 M400,5.537c0,3.059-2.472,5.531-5.53,5.531c-3.062,0-5.536-2.472-5.536-5.531c0-3.064,2.475-5.536,5.536-5.536C397.528,0,400,2.472,400,5.537"/></g><text transform="matrix(1 0 0 1 173.1599 96.6265)" fill="#F03C19" font-family="NeoGram-Medium" font-size="20">(SVG)</text></svg>';
     $('#logo').html(code);
	 console.log('logo_svg_large')
	}	
	else if (dcs.isProvided("browser.css.cansvg") && ( dcs.get("browser.css.cansvg") && dcs.get("image.maxwidth") < "321")) {     
		var code ='<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="50 12.7 300 75.9" enable-background="new 50 12.7 300 75.9" xml:space="preserve"><g><g><path fill="#F03C19" d="M73.2,37.7c0-6-3.2-9.6-8.9-9.6c-5.7,0-8.8,3.7-8.8,9.6v16.7c0,0.3,0,0.5,0,0.7H50V37.7c0-8.2,5.3-14.2,14.3-14.2c9,0,14.4,5.9,14.4,14.2l0,17.5h-5.5L73.2,37.7z"/></g><g>		<path fill="#F03C19" d="M109.3,37.2c0-7.3-3.3-10-9.2-10c-5.9,0-9.1,2.7-9.1,10H109.3z M85.4,38.1c0-10.3,6-14.5,14.7-14.5c8.7,0,14.8,4.2,14.8,14.5v1.4l0,0.9H90.9v2.1c0,6,3.3,9.6,9.1,9.6c5.2,0,8.3-2.9,8.9-7.5h5.5c-1.1,6.7-6.4,11.2-14.4,11.2c-9.2,0-14.7-5.9-14.7-14.2C85.4,41.7,85.4,38.1,85.4,38.1z"/></g><g>		<path fill="#F03C19" d="M121.9,14.6h5.5v9.7h5.5v3.6h-5.5v21.1c0,1.5,0.9,3.1,3,3.1h2.5v3.6h-4.4c-3.8,0-6.6-1.8-6.6-5.9V14.6z"/></g><g>		<path fill="#F03C19" d="M300.9,14.6h5.5v9.7h5.5v3.6h-5.5v21.1c0,1.5,0.9,3.1,3,3.1h2.5v3.6h-4.4c-3.8,0-6.6-1.8-6.6-5.9L300.9,14.6L300.9,14.6z"/></g>	<g>		<path fill="#F03C19" d="M162.7,38.1c0-7.5-3.2-10-8.9-10c-5.7,0-8.8,2.5-8.8,10v3.7c0,6,3.1,9.6,8.8,9.6c5.7,0,8.9-3.7,8.9-9.6V38.1z M145.1,14.6V29c2.1-3.8,5.7-5.5,10.5-5.5c7.4,0,12.7,3.7,12.7,14.5v3.7c0,8.2-5.4,14.2-14.4,14.2c-9,0-14.3-5.9-14.3-14.2V14.6H145.1z"/></g><g>		<rect x="174.4" y="24.3" fill="#F03C19" width="5.5" height="30.9"/>	</g>	<g>		<rect x="174.4" y="14.6" fill="#F03C19" width="5.5" height="5.5"/></g>	<g>	<rect x="287" y="24.3" fill="#F03C19" width="5.5" height="30.9"/></g><g><rect x="287" y="14.6" fill="#F03C19" width="5.5" height="5.5"/></g><g><path fill="#F03C19" d="M187.5,32c0-6.1,4.9-8.4,11.7-8.4c6.9,0,11.9,2.4,11.9,8.3v0.6h-5.1l0-0.6c-0.1-3.3-2.6-4.6-6.8-4.6c-4.2,0-6.5,1.4-6.5,4.2l0,0.6c-0.1,1.6,1.6,2.8,4,3.6l9.1,2.9c4,1.3,6.5,3.6,6.5,7.6v0.3c0,5.5-4.9,9.2-13,9.2c-7.9,0-12.7-3.6-12.9-8.9v-1.4h5V47c0.1,3.3,2.9,5.4,7.9,5.4c4.9,0,7.6-2,7.7-4.9l0.1-0.4c0.1-2.3-1.4-3.6-3.6-4.4l-10.2-3.3c-3.6-1.2-5.8-3.4-5.8-6.5V32L187.5,32z"/></g><g><path fill="#F03C19" d="M217.8,38.1c0-10.3,5.9-14.5,14.3-14.5c7.3,0,12.4,3.2,13.4,10.7h-4.9c-1-4.8-3.7-6.2-8.5-6.2c-5.7,0-8.8,2.5-8.8,10v3.7c0,6.2,3,9.7,8.8,9.7c4.8,0,7.5-2,8.5-6.2h4.9c-1.1,6.9-6,10.7-13.4,10.7c-8.7,0-14.3-5.3-14.3-14.2V38.1L217.8,38.1z"/></g><g>		<path fill="#F03C19" d="M256.4,41.8c0,6,3.2,9.6,8.9,9.6c5.7,0,8.8-3.7,8.8-9.6V25c0-0.3,0-0.5,0-0.7h5.5v17.5c0,8.2-5.3,14.2-14.3,14.2c-9,0-14.4-5.9-14.4-14.2l0-17.5h5.5L256.4,41.8z"/></g><g>	<path fill="#F03C19" d="M318,32c0-6.1,4.9-8.4,11.7-8.4c6.9,0,11.9,2.4,11.9,8.3v0.6h-5.1l0-0.6c-0.1-3.3-2.6-4.6-6.8-4.6c-4.2,0-6.5,1.4-6.5,4.2l0,0.6c-0.1,1.6,1.6,2.8,4,3.6l9.1,2.9c4,1.3,6.5,3.6,6.5,7.6v0.3c0,5.5-4.9,9.2-13,9.2c-7.9,0-12.7-3.6-12.9-8.9v-1.4h5V47c0.1,3.3,2.9,5.4,7.9,5.4c4.9,0,7.6-2,7.7-4.9l0.1-0.4c0.1-2.3-1.4-3.6-3.6-4.4l-10.2-3.3c-3.6-1.2-5.8-3.4-5.8-6.5L318,32L318,32z"/>	</g>	<g>		<path fill="#F03C19" d="M346.6,15.8c0-0.3-0.3-0.4-0.7-0.4h-0.8v1.1h0.8c0.5,0,0.7-0.2,0.7-0.4V15.8z M345.9,14.6c0.9,0,1.6,0.3,1.6,1.2V16c0,0.5-0.3,0.8-0.8,1l1.1,1.9h-1l-1-1.7h-0.7v1.7h-0.9v-4.3H345.9z M342.6,16.8c0,1.8,1.5,3.3,3.3,3.3c1.8,0,3.3-1.5,3.3-3.3c0-1.8-1.5-3.3-3.3-3.3C344,13.5,342.6,15,342.6,16.8 M350,16.8c0,2.3-1.9,4.1-4.1,4.1c-2.3,0-4.2-1.9-4.2-4.1c0-2.3,1.9-4.2,4.2-4.2C348.1,12.7,350,14.5,350,16.8"/>	</g></g><g enable-background="new    ">	<path fill="#F03C19" d="M184,74.2c-1.2,2.4-1.7,4.6-1.7,6.8c0,2.2,0.5,4.4,1.7,6.9h-1.2c-1.2-2.1-1.9-4.4-1.9-6.9c0-2.3,0.8-4.8,1.9-6.8H184z"/><path fill="#F03C19" d="M185.7,77.2c0-2,1.6-2.8,3.9-2.8c2.3,0,4,0.8,4,2.8v0.3h-1.4v-0.3c0-1.2-1-1.6-2.6-1.6c-1.6,0-2.5,0.4-2.5,1.6v0.2c0,0.5,0.4,0.9,1.1,1.2l3.6,1.2c1.2,0.4,2,1.2,2,2.5v0.2c0,1.8-1.6,3-4.2,3c-2.6,0-4.2-1.2-4.2-3v-0.6h1.4v0.7c0,1.1,0.9,1.7,2.8,1.7c1.9,0,2.8-0.7,2.8-1.7v-0.3c0-0.7-0.4-1.1-1.1-1.4l-3.7-1.2c-1.2-0.4-1.9-1.2-1.9-2.1V77.2z"/><path fill="#F03C19" d="M204,74.6l-3.9,10.5h-1.5l-3.9-10.5h1.5l3.1,9l3.1-9H204z"/><path fill="#F03C19" d="M205,79.3c0-3.5,1.9-4.9,4.9-4.9c2.5,0,4.3,1,4.7,3.4H213c-0.4-1.7-1.4-2.3-3.2-2.3c-2.2,0-3.4,1-3.4,3.7v1.3c0,2.2,1.2,3.6,3.4,3.6c2,0,3.1-1.1,3.3-3.1v-0.3H210v-1h4.5v5.3h-1l0-1.7c-0.7,1.3-1.9,2-3.6,2c-3.1,0-4.9-2-4.9-4.8V79.3z"/>	<path fill="#F03C19" d="M217.2,74.2c1.1,2,1.9,4.5,1.9,6.8c0,2.4-0.7,4.7-1.9,6.9H216c1.2-2.4,1.7-4.7,1.7-6.9c0-2.2-0.5-4.4-1.7-6.8H217.2z"/></g></svg>';
		$('#logo').html(code);
		console.log('logo_svg_small')
	}	
	else {
	 var code ='<img src="http://pmprodtest01.int.netbiscuits.com/images/netbiscuitslogo-nonsvg_300.png">';
     $('#logo').html(code);
	 console.log('logo_non_svg')
	}	
</script>
		

		
</body>
<footer>
</footer>
</html>

Code Tips & Tricks: Video versus Image Support Detection

This code checks if your server is getting the video.canh264_480 parameter (support for mp4 h264 format in 480ratio). If we are, then we are checking if the support is equal ‘true’ and if the browser.html5.video.canvideo parameter is also equal ‘true’ (support for html5 ‘video’ tag) if both are true we are returning a html5 video tag with mp4 h264 video in it. Otherwise, we display a static image instead.

<html>
<head>

	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<!-- Start of the Device Detection script -->
	<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
	<script src="https://dcs.netbiscuits.net/ds/detect/js/account/{accountName}/profile/{profileName}/token/{token}"></script>	
	<!-- End of the Device Detection script -->
	
	<title>Your Website</title>

</head>
<body>

<!-- Video div where we will pass the content to -->
<div id="video"></div>		
<script type="text/javascript">
  var videoelement = $("#video"); 
	if (dcs.isProvided("video.canh264_480") && ( dcs.get("browser.html5.video.canvideo") && dcs.get("video.canh264_480"))) {
     var code ='<video width="640" height="480" controls> <source src="http://www.netbiscuits.com/wp-content/uploads/2013/10/AnalyticsGigaOm_smartphone_standard_high.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg">        Your browser does not support the video tag.               </video>';
     $('#video').html(code);
	 console.log('video')
	}	
	else {
	 var code ='<img src="http://www.netbiscuits.com/wp-content/uploads/2013/10/AnalyticsGigaOm.jpg" width="640px">';
     $('#video').html(code);
	 console.log('image')
	}
</script>	
</body>
<footer>
</footer>
</html>