As an experiment engineer, I constantly need to explain that even though Optimizely offers an out-of-the-box solution to create audience conditions that would either include or exclude iPads in experiments, creating an audience condition using the "iPad" device option will not actually work (and hasn't worked for years).
Create the audience "Visitor is not
using any of these devices: iPad
"
Expected behavior:
Users who are using an iPad should not be eligible to view experiments that are using this audience condition.
Actual behavior:
Users who are using an iPad are eligible to view experiments using this audience condition because Optimizely's "Device" audience condition is not able to differentiate between an iPad and a MacOS desktop/laptop.
Create the audience "Visitor is
using any of these devices: iPad
"
Expected behavior:
Users who are using an iPad are eligible to view experiments that are using this audience condition.
Actual behavior:
Users who are using an iPad are not eligible to view experiments using this audience condition because Optimizely's "Device" audience condition is not able to differentiate between an iPad and a MacOS desktop/laptop.
I understand that the reason why the "iPad" option in the "Device" audience condition no longer works is because beginning with iPadOS 13, Apple began reporting the iPad's user agent as a MacOS desktop. But without experiencing that the audience condition doesn't actually work for iPads, users are currently led to believe that creating an audience using the "iPad" option in the Device will work.
Optimizely's documentation on audience conditions notes that the open-source JavaScript library, ua-parser-js, is used to determine device types. Based on the link to ua-parser-js provided in the above documentation, I believe that Optimizely is using v0.7.12 of ua-parser-js (which is currently 7 years old) and cannot differentiate between iPads and MacOS desktops/laptops. However, newer versions of ua-parser-js can differentiate between iPads and MacOS desktops/laptops.
Additionally, v2.0 (currently in alpha) provides additional methods (such as withFeatureCheck()
) for even better iPad detection using navigator.maxTouchPoints
and navigator.standalone
in addition to navigator.userAgent
.
Remove the "iPad" device option and—to prevent users from assuming that iPads are included in the "Tablet" device option—add a disclaimer that "iPads" will not be included in the "Tablet" device option and are treated as "Desktop/Laptop" devices by Optimizely.
Hi Ryan - thanks for sending in this feedback. I highly appreciate your detailed description of the problem you're facing. This is definitely something we need to address, therefore I'll move this to future consideration and prioritize accordingly.