How to Populate IAB OpenRTB Device Object

How to Populate IAB OpenRTB Device Object

If you are in advertising, you probably already know that digital ad revenue grew in the last year. According to the Interactive Advertising Bureau (IAB), it grew by 22% in 2016, to reach $75.2 billion. But what you might not know is that the shift to mobile and advertising’s influence on mobile buying trends go hand in hand.

Shift to Mobile

Not only has the amount of time spent online increased in the mobile category, it accounts for 1 trillion mobile minutes in 2016 and has the largest share of online traffic over desktop and tablet (68%). And the ad dollars are trying to keep up. In 2016 alone, more than half of digital ad revenue came from mobile.

OpenRTB Device and Programmatic Growth

This is why more agencies and advertising firms are adopting an Open Real-Time Bidding (RTB) exchange to part of their advertising mix. This year RTB is expected to account for 29% of the digital mix (source: eMarketer March 2013) and programmatic advertising accounts for more than two-thirds of U.S. digital display ads.

Device Detection Enhances the Value of Ads in an Exchange

The more a publisher can tell advertisers about their potential audience, the more valuable a publisher’s ad space becomes. One critical piece of information you can instantly identify is the mobile device. According to Smaato, a leading SSP, clearly identifying a mobile device increases eCPM by more than 29%. And if a publisher, SSP, or DSP can provide other demographic and technographic indicators, like the price paid for the smartphone or its age, then the advertisers will target those viewers, increase their campaign effectiveness while still paying a premium for the right type of audience.

How WURFL Populates the IAB’s OpenRTB Spec

IAB has developed a specification the API for OpenRTB to support for automated trading of digital ads. The API outlines industry standards for objects and parameters that are communicated between buyers of advertising and sellers of publisher inventory. One critical object describes the device used to view the publisher’s web page. To populate this device object effectively, developers need to take the browser’s user agent string and quickly detect the device and several other parameters.

WURFL is the industry’s leading device detection solution, providing 80% of the web’s mobile device analytics, and is used by advertising leaders like Google and Facebook.  ScientiaMobile provides several different products to suited to the advertising industry.  WURFL can supply more than 500 capabilities describing different attributes of desktops, smartphones, tablets, smart TVs, and game consoles. These device detection capabilities are updated weekly to ensure the highest level of accuracy and speed for OpenRTBs and other programmatic advertisers to correctly optimize ads to the right device, screen, size, and more. To help developers, we have matched WURFL capabilities to the OpenRTB device object’s parameters.

Mapping of OpenRTB Spec Device Object to WURFL

Here is the mapping of WURFL capabilities to the OpenRTB spec device object put out by the IAB:


ua User-agent (not a capability, but an input to the WURFL API)
devicetype OpenRTB Device Type ENUM values mapped to WURFL Capabilities
6:is_mobile AND NOT (is_phone OR is_tablet)
7:is_smarttv (WURFL does not differentiate SmartTVs from set top boxes)
make brand_name
Note: in cases like the Google Nexus 7, the manufacturer, HTC, is available via manufacturer_name
model model_name, marketing_name
os advertised_device_os
osv advertised_device_os_version
hwv model_name, marketing_name
h resolution_height
w resolution_width
ppi WURFL reports screen dimensions in mm, so this formula can be used to get PPI:
Step 1: inches = physical_screen_width * physical_screen_height * 0.00155
Step 2: pixels = resolution_width * resolution_height
Step 3: ppi = sqrt(pixels / inches)
pxratio density_class
js ajax_support_javascript
flashver No version info, but full_flash_support is available to find if a device supports flash
connectiontype WURFL does not know the current connection type, but max_data_rate can be used to find the max connection speed



  1. make: WURFL offers brand_name and manufacturer_name.  manufacturer_name is only set if it is different than brand_name. For example: “Google Pixel” has brand_name="Google", with manufacturer_name="HTC"
  2. model: WURFL offers model_name and marketing_name.  marketing_name is only set if it differs from model_name.  For example: “Samsung Galaxy S8+” has model_name="SM-G955F" (and many others), with marketing_name="Galaxy S8+"

Adding More Capabilities, More Advertising Value

Publishers, DSPs, SSPs and Advertisers can go beyond these parameters and provide even more value. Using WURFL to decode the user-agent string (or resolve the WURFL ID if your trading counterparty provides it), you can add even more detail and increase value.  For example, our is_robot capability will identify bots/crawlers. is_robot can help limit showing ads to non-human traffic. Below are other ways Advertising firms use WURFL device intelligence.