The device id in a user agent string gives information about the actual device. This is another opportunity for UA detection framework to identify browsers and devices. We have talked already how parsing UA strings was challenging. The device id increases the difficulties and the chances of being identified, what is usually called fingerprinting. But for which purposes, a Web site needs to know the mobile device you are using, sometimes down to the actual version number.
The mobile ecosystem is a "ménage à trois". It includes a software developer, a device maker and … an operator. Traditionally the device maker could exist only through the good will of the operator. So they have strong contracts and ties with the operator. The operator is imposing a lot of technical constraints on the device maker to allow the device on its network infrastructure. Part of these requirements is often the identification of the device.
In the case of Firefox OS, Mozilla does the software. Some device makers create the actual mobile phone such as geeksphone, peakphone, ZTE Open, etc. Finally operators (such as Telefonica) will decide to release the device on their own network if they think it can be profitable for their business. It means they have a potential market of users buying subscription because of this device and this OS.
Some Device ID usages
But why someone would need to have a device id in the user agent string of the browser? The answer doesn't seem simple. It could be by habits, the classical "We have always been working like that". In the past with features phone, it was one of the ways to identify the the phone through a reference database associating name of the devices and its capabilities. But now with JS APIs, we already have access to a lot of features helping to customize the experience depending on the device capabilities. We are back to the Web, our legacy factory. It's full of already working systems.
The same way, we could not upgrade HTML to XHTML, because of the legacy code, business practices, etc, it is very hard to change the business practices of operators. Some of the usages are:
- Content Adaptation
- Web site displays specific apps depending on the device (native world)
- Content (ringtones-images) purchase
- Marketing campaigns
To make it clearer, a marketing person at an operator might want to know:
- "Which devices are preferred by customers? So it the next release, we focus on features that they prefer." (Statistics)
- "When buying this device, you get a free access to this social network." (Marketing campaigns)
If you know about other business models associated with the Device ID, please share with me.
Device ID in Firefox OS
Mozilla pushed back a lot of times about the device ID in the UA strings. These are not easy discussions. It is always hard to come to another industry and tell them
- We think you are doing it wrong
- We might hurt your business
We have to come up with a better way for them to be effective. We have to find solutions.