Integration-Testing with a 🚲

How Bonial built location-based services for millions of app users — and made sure it works properly

Jonas Peeck
Axel Springer Tech

--

Bonial builds apps and services that help physical retail stores attract and advertise to customers. As a part of the Axel Springer Family, the developers at Bonial are also members of the Global Axel Springer Developer Community.

Nikhil probably didn’t think sending his boss on repetitive bike-rides to a grocery store in Berlin would be part of his job, when he moved from Banagalore — “India’s Silicon Valley” — to Berlin two and a half years ago.
But here he was, 6 months into his job at Bonial, benchmarking the location-data generated by three different systems against each other. Location-data produced by the Notifications team riding their bikes through Berlin and by Lucas, the then Head of Engineering (Monetization) at Bonial, riding back and forth between the office and a local Aldi grocery store.

Our story starts at a hackathon-gone-right: Teams at Bonial had developed a prototype of a feature at a hackathon, which ended up being hugely successful with their customers. They had built a system to track customers entering and leaving physical retail stores, enabling a metric that is trivial to calculate for online stores, but hard to get for physical stores: Average visit duration.

Bringing Web Metrics to Physical Retail Stores

“Bonials’s mission is to replace paper-brochures that usually get thrown in the trash” Nikhil explained, helping me understand the kind of problem they were solving through a new tracking system. “Paper-brochures” in that case is something German households are very accustomed to. Free bundles of plastic-wrapped paper brochures touting the latest offers of local stores — most people, including myself, usually throw the complete bundle into the next trash can.

Bonial is disrupting that space through their digital alternatives to paper-brochures, including their apps “MeinProspekt” and “KaufDA” (which directly translated would be “MyBrochure” and “buyTHERE”). Users of the apps can mark local retail shops & grocery stores as their favorites and will in turn receive digital brochures and offers from these shops through the apps.

It’s a common pattern by now: Replace broad, physical ads (displayed to everyone) with targeted, digital ads only delivered to those who likely have an interest in seeing the ad.

What was missing from Bonial’s offering for physical stores however was something Lucas refers to as “Attribution” — the kind of tracking that allows companies to know whether their money spent on marketing actually led to a customer visiting their stores.

Hacking the “Average Visit Duration” problem for physical stores

The solution came through a hackathon: A custom-built feature based on geo-fencing, helping Bonial show their business customers when users entered and exited a store and allowing businesses to understand how much time users of “MeinProspekt” and “KaufDA” were spending at their physical store locations. Additionally businesses could now send push-notifications to customers coming close to the locations of their physical stores.

Screenshot showing the currently active geofences

The prototype they had built at a hackathon ended up being incredibly popular with their business customers — but that turned out to be a problem: “I have a friend who works at Amazon — they have 150–200 people working on Attribution alone” Lucas explained.

They had a successful feature, but they knew that continuing its development would require a lot of additional people-power and moving pretty far away of their core-mission of replacing paper-brochures…

🚲-rides & Benchmarks to replace the prototype

In the end, the decision on what to do was easy: Use an external service to manage the increasing number of geofences (130.000 in France & Germany at this point) and handle “enter” and “exit” events of users walking in- and out of stores. They just had to pick the right tool.

The team ended up with two services that they wanted to test: Radar.io and Bitplaces. Benchmarking them against their custom-built solution, they wanted to compare the number of complete vs. incomplete event pairs (e.g. an “enter” event that has no corresponding “exit” event) and the delay between users entering a geo-fence and the service triggering an event.

While during development a “Fake GPS” service offered some help in testing out their two test-candidates, it quickly came down to real-world, pedal-on-the-ground testing: “Simulations are okay, but then you want to test that in the real-world”, Lucas explains.

And so Lucas went on bike rides to Aldi. A lot of bike rides, actually.

“First test was a disaster” Lucas explains — both of them laughing at what comes across as a fun time they both enjoy looking back to. The system stabilized through constant refinements over 2–3 weeks, with the help of 20 of their colleagues testing out the new systems*, sending back reports of something not working in a dedicated Slack channel . The negative reports became less and less — and eventually they were able to see that radar.io worked great for what they were trying to do, beating their prototype.

*(Lucas specifically asked me to include a special THANK YOU! to the whole Notifications team and FĂ©lix Boulanger for the hard work they put into this project)

Learnings: Make Data Driven Decisions & Test features with colleagues

When I asked them what learnings they would share from this project, Nikhil tells me how impressed he is by the level at which Bonial uses data — both in the high-quality of the data and how they used data to inform their (integration) decisions.

“Be really clear on what you want to measure. For example: How do we know that radar is really performing better than our own solution?” Nikhil explains their approach of making a data-focused decision between the alternative geo-services they were testing out against each other.

Lucas on the other hand stressed how well it worked to recruit 20 of their colleagues as testers: “Teamwork is always a plus when you need to test integrations”, serving as an important reminder that often insights about the stuff we build can be around the corner — literally — when we just ask colleagues for hallway tests of our latest work.

The benchmarks they performed & the rigorous testing with colleagues helped the team successfully implement radar.io as the new location-based service provider for 2.6 million app users in record time.

“Bonial was one of the fastest integrators of radar.io” Lucas proudly shares with me. Maybe — just maybe — all the fresh air during the testing phase played a small part in that.

Connect to Nikhil:
Nikhil on LinkedIn

đź’Ľ Curious about working at Bonial?
👉🏻 Check out our open positions

— — —

Hi, I’m Jonas and I’m currently building up a Global Axel Springer Developer Community. Subscribe to our Weekly Tech Newsletter to get a fresh story like this every Monday and to receive details on how you can join our global developer community ✌🏻

Want me to help tell your story? Reach out to me 👇🏻

🚀 Subscribe to the Weekly Tech Newsletter

✉️ Get in touch with us

--

--

Jonas Peeck
Axel Springer Tech

Founder of uncloud - the first cloud platform that configures itself