It would be nice if it was a perfect world. But unfortunately it isn’t, and good product design has to take account of the possibility that not everything is as it should be. To illustrate that, let me give you one example - an answer to a question we frequently hear, namely “how does Swrve perform on less than perfect wireless networks, such as those in developing countries?”

Of course that issue isn’t restricted to the developing world. Smart devices lose connectivity all the time for one reason or another, and that connection isn’t always of great quality in the first place. So whilst many apps and games require an internet connection, in all cases both the title itself and the marketing automation solution it runs on must be ready to deal with these things without causing upset to the consumer.

Don’t forget, of course, that the buck stops with the app developer. It will be of no consolation to your customers when you explain that their experience sucked because “poor quality mobile marketing platform that shall remain nameless” hadn’t done their homework. So make sure to check that you won’t be let down by a supplier in this way - nothing is more frustrating.

So how do we at Swrve go about it? Here’s a few ways in which we ensure that dodgy internet doesn’t mean dodgy user experience:

  • All in-app content (think the messages and campaigns delivered to users via Swrve) is pre-streamed to the device when connected, and then cached. This means that when the time comes to serve that content, it doesn’t matter if the connection is live or not: if the message has been downloaded, it will be shown. It also means, by the way, that messages are served immediately rather than introducing load time into the app experience - something that automatically puts users into an 'oh no here comes an ad' frame of mind!
  • A/B tests also handle disconnections in a similar way by caching the last known state for each user on the device. The decision to serve or not serve an A/B test variant is based on this information, and can thus be made even if a connection to the Swrve service is unavailable.
  • When it comes to data flowing the other way, we make sure to collect and store everything, and send that information up to the Swrve service as soon as connection is restored. We can (and have) collected data for days on end without a connection available. It’s important to make sure this happens because lost data doesn't just affect your analytics - it also means poor segmentation and targeting. And good marketing is all about targeting!
  • For devices with lower resolution screens - and when we’re talking international audiences, this is definitely a consideration - we specifically target in-app image content at a device-appropriate resolution. Thus ‘lower power’ devices receive lower resolution images - which makes sense both in terms of user experience but also means tolerance for slow or unsteady networks is improved.

In every case we design our service to handle uncertainty in the operating environment. You should design apps in the same way - and ask the same of any vendor you use!