This week was an important one for DeviceAtlas – we finally launched the new 1.4 version of our API!
Why 1.4?
The mobile web is constantly evolving, and with it, device detection needs to evolve too. With significant evolution in device capabilities, and large structural developments in certain device headers, the new DeviceAtlas API provides a highly flexible platform to cater for this growth, both now and well into the future.
DeviceAtlas’ inherent intelligence, built directly into its device data files (rather than in the APIs), allows us to minimise the memory and computational footprint on your servers, and allows us to avoid requiring regular API upgrades whenever possible. This unique architecture is a key factor in DeviceAtlas’ high performance levels, which is essential to many organisations.
With these two points in mind, we have developed a method to further improve upon DeviceAtlas’ superior device detection!
What changes do I have to make to my code?
None!
Let me repeat that again: NONE!
The 1.4 API was designed to be a drop in replacement for our existing 1.3 and 1.3.1 API users.
All you need to do is replace your existing 1.x API with the new 1.4 one (a single file replacement in most cases), deploy a new, updated JSON file and you should start seeing the benefits as soon as a new UA featuring this structure comes your way, if they haven’t started hitting your servers already.
And if I don’t upgrade?
Upgrading is completely optional. Our data files are designed to allow us to make incremental improvements such as this when required, without affecting backward compatibility at all. Your existing API will continue to function in exactly the same way, regardless of whether or not you have an old or a new JSON file.
1.4’s major benefit is that its detection of Android, WebOs and WindowsMobile 7 is greatly improved. If you don’t upgrade, you can’t take advantage of this new feature.
Performance
1.4 introduces a minor reduction in speed, depending on your API and environment. That said, however, the beauty of our method is that any decrease in performance will only happen if & only if absolutely required. Our API will not function any differently unless the device headers passed to it match a particular structure or pattern!
The following table details the relative performance of our APIs (new -vs- old), for:
- Sample of 100k random UserAgents
- CPU: Dual Core Xeon 2.33Ghz
- RAM: 1.7 Gigs
- O/S: Ubuntu Linux
API | Old (recognitions/sec) | New (recognitions/sec) | % Diff |
---|---|---|---|
PHP | 3512 | 3129 | 10.9% |
Java | 27500 | 26336 | 4.2% |
C++ | 180000 | 175000 | 2.8% |
Python | 3638 | 3497 | 3.8% |
What about the beta APIs (2.x)?
The beta APIs, which were provided on the DeviceAtlas site, are being superseded by this release. The beta release proved not to have the flexibility to support the evolving conditions in the market, so we regret this version (2.x) will no longer be maintained.