We’re happy to announce that Genius Scan displays no more third-party advertisements.

When Genius Scan took its first steps in 2010, ads were the natural way to monetize free applications. While Genius Scan displayed minimal advertisement compared to the industry standards1, it still showed ad banners: an inferior user experience from multiple perspectives.

In 2016, we removed third-party ads from Genius Scan for iOS. Today we’ve eliminated the last one in Genius Scan for Android. We use the space instead to display informative banners to promote our other applications and to share tips on how to better use Genius Scan.

We give here several reasons why we removed third-party ads from Genius Scan.

Technical black boxes

When you include ads in your application, you have to embed a closed-source ad library (or ad framework). As a developer, you can’t see what’s inside, you don’t know what it’s doing, and if something goes wrong, you have no way to fix it. You have to trust it blindly.

A few years ago (Genius Scan still displayed third-party ads), we started receiving loads of emails from users who reported seeing alert pop-ups interrupting them with fraudulent ad content. We located the problem in an advertiser’s framework2 and urgently reached out to their support. We never received a reply (were we too small fry?). The only way to solve the problem was to stop embedding this ad provider’s framework. Since that provider accounted for a large portion of our ad revenue, this prompted us to reconsider the presence of ads in Genius Scan and our reliance on ad revenue.

Recent events cannot better illustrate the dangers of this careless reliance on third-party code: On May 7, 2020, hundreds of iOS apps, some of them from major companies such as Spotify, Pinterest or TikTok, couldn’t work because they integrated with the Facebook SDK. A change on the Facebook servers led to bad data being returned to the app, which led to the app crashing. The crash happened when the app launched, not even when the users tried to log in with Facebook!

By removing third-party SDKs, developers can maintain control over the stability of their apps.3

A matter of values

The digital world is full of too many ads for too many products. Advertisements lure us to buy more goods, and there is already too much waste on planet Earth. The mobile ads generating the most revenue are often the most disturbing — gambling, sketchy dating, waste-of-time make-your-child-spend-money games…

If you show ads in your app, and if it’s your primary source of revenue, it motivates you to keep your users for as long as possible in your app. That’s the reason why so many apps try to develop addictive features at the expense of their users’ time and attention. We don’t think it’s right in general 4, and it just doesn’t make sense in a productivity app supposed to enable users to perform their tasks as quickly as possible. How can you help users speed up through their tasks while ensuring they spend as much time as possible watching your ads?

Ad companies track your behavior to target you more precisely. We don’t buy the fact that we should prefer to see “more relevant” ads at the cost of our privacy and at the expense of our freedom to choose. You want to buy a company’s product because it’s superior, not because they have been good at targeting you precisely on Facebook or at pouring money into ads.

“Rich” advertisements provided by some of these ad frameworks have unfortunate consequences. For example, the AdMob SDK allowed some ads to create events in your calendar (you’d see a promotion for a concert, and could add it to your schedule). To achieve this, it needed some iOS permissions5. Even if you didn’t use these features, you needed to embed code in your app to manipulate calendars. But would that just let users create events in your calendar? What prevented the ad frameworks from scraping your calendar to know what activities you were interested in? Who knows? Even today, if your app needs permission to use the user’s location for some genuine feature, ad frameworks such as AdMob can hijack it to “better target” their ads, unbeknownst to the developer’s knowledge.

Although it’s the developer’s responsibility to know what they include in their apps, ad companies are never eager to disclose the intricacies of the frameworks they provide or make privacy-invasive functionalities opt-in. Removing ad frameworks is just an obvious step to avoid having a snitch in your app.

Ad network companies don’t give a damn about the quality of your app, your brand, and your users’ privacy. They push you to add more ad inventory. They insist that you display full-screen video ads that report more precise data about your users. Some of them will suggest collecting geolocation data in exchange for money.

Genius Scan always displayed simple ad banners, and we never crossed that gray line, but it is a gray line. These behaviors never aligned with our values, and entirely removing ads is an unequivocal stance.

What Does it Mean For You?

We’re happy to have improved Genius Scan further. To us, developing our apps doesn’t mean adding tons of extra features, but ensuring they are prime quality, respect our users’ privacy and match our values. We are thrilled to have taken this step and to keep making apps we’d want to use.

By removing third-party ads, we bite the bullet financially, but we think this is the right thing to do. For you: no more third-party ads, no more tracking, less cognitive overload.

We can make better use of the spot taken by third-party ads: we replaced it with our in-house banners. We use them to promote our work and display announcements and tips on how to use Genius Scan better. More importantly, they fully respect your privacy.

Before

After

As a business, we now rely entirely on selling our apps and products. We want you to buy our products because you do need them, because they will last, because they are honest, because they help make one’s life better. That’s what we will keep targeting with our apps.

  1. We only showed a simple banner, never displayed any interstitial or video ads. 

  2. The ad framework could display HTML ad banners, and someone exploited that to inject JavaScript alerts. 

  3. This is true for ad frameworks, but also true for any kind of third-party dependency, especially closed-source ones. 

  4. Our Minds Have Been Hijacked by Our Phones. Tristan Harris Wants to Rescue Them

  5. According to the release notes, AdMob SDK 7.11.0 removed this.