I'm hoping that someone can help. We are an existing InFuze business customer and we are having trouble with request being incorrectly identified either due to masking or simply unrecognised devices. At present 15% of lookup's result in either a blank response or a "Generic" device.
As such I have a few questionsMasked Useragents
What is the best way to deal with masked useragents when using the Nginx Module (and Apache for that matter)?
We have a problem where if the true Useragent is being masked, for example by the Opera Browser or the UC Browser, that all of the device information relates to the masking useragent and not the real useragentExample:
When the UCBrowser is used the HTTP_USER_AGENT header will be set to something like 'UCWEB/2.0 (MIDP-2.0; U; Adr 4.4.4; en-US; SM-G530H) U2/1.0.0 UCBrowser/18.104.22.1689 U2/1.0.0 Mobile'
The browser will create the X-header of HTTP_X_UCBROWSER_DEVICE_UA which it will set to the real useragent, E.G. 'Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; SM-G530H Build/KTU84P) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'
The InFuze library will detect based on the UCWEB user agent and will return *blank* for the device. See http://bit.ly/1QEZ9hB
for an example (this link passed the useragent)
Where as the actual device is a Samsung SM-G530H (Galaxy Grand Prime)
and can be correctly identified by the masked useragent. See http://bit.ly/1QEZhxq
Obviously not all of the true useragents are identified by InFuze (in our case roughly 15% can not be identified). An example is http://bit.ly/1FaPZp4
which is the Micromax A106 device using the Useragent Mozilla/5.0 (Linux; U; Android 4.4.2; en-US; Micromax_A106 Build/KOT49H) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
We are currently running from inFuze 1.5.1
At the moment I can work around if we stopped using InFuze to use WURLFDB as I am unmasking the useragents and could then request the lookup be performed against the true useragent.
The headers that tend to store the real useragents are:Opera Mini
- HTTP_X_OPERAMINI_PHONE_UAOpera Mini (legacy)
- HTTP_X_OPERAMINI_FEATURESOpera Mobile
- HTTP_DEVICE_STOCK_UASkyFire Browser
- HTTP_X_SKYFIRE_PHONEBolt Browser
- HTTP_X_UCBROWSER_DEVICE_UACommon Browser Proxies
- HTTP_X_ORIGINAL_USER_AGENTWeb Forms
Ideally I would like to be able to provider a list of alternative headers run the identification against those as well (or instead if additional ones are not possible)