Hey! Why do your Windows Phone app need all that access!?

I recently received a comment from a Windows Phone owner questioning if one of my apps were spyware because of all the capabilities it required. The reason might be obvious for us developers but we can lose users if we don’t explain it better for them.

Similar rating comments for other apps can be found in the WP Store and I understand if the user feels uncomfortable with not knowing why a simple app or game needs access to his/her media library and identity. My tiny quiz app Word King is a good example. It has no online content and no need for any special capabilities on the phone. Nevertheless it requires:

  • phone identity
  • owner identity
  • location services
  • photo, music, and video libraries
  • data services
  • movement and directional sensor

In my case and probably most others it is because I have included ads in my game from two ad providers:

Microsoft Advertising SDK for Windows Phone
Web site: http://msdn.microsoft.com/en-us/library/advertising-mobile-windows-phone-sdk(v=msads.20).aspx
Capabilities required: http://msdn.microsoft.com/en-us/library/advertising-mobile-windows-phone-manifest-capabilities(v=msads.20).aspx

  • ID_CAP_IDENTITY_USER
  • ID_CAP_MEDIALIB – to allow users to save an offer coupon to the phone’s media library for later use
  • ID_CAP_NETWORKING
  • ID_CAP_PHONEDIALER – to support “click-to-call” features in ads
  • ID_CAP_WEBBROWSERCOMPONENT – to show ads inside the browser component

Nokia Ad Exchange (NAX)
Web site: http://www.developer.nokia.com/Distribute/NAX/
Capabilities required: https://inneractive.jira.com/wiki/plugins/viewsource/viewpagesrc.action?pageId=6095168

  • ID_CAP_IDENTITY_DEVICE
  • ID_CAP_LOCATION – to show location-based ads

A non-technical explanation

The days with mostly forgiving early adopters using our apps are over and we as publishers risk to lose potential downloads if we require capabilities without explaining why. I have decided to include this text in the app description next time I release a new version of an app using ads:

This app is using X capability for Y functionality. The other requested capabilities are used by the ad providers Microsoft Advertising and Nokia Ad Exchange to show location-based ads. The media library access is for allowing the user to save ad coupons.

/Johan
codeblog.silfversparre.com

This Post Has 2 Comments

  1. I really appreciate you explaining the need for certain simple apps to require so much information. It never occurred to me that it was the via the ad networks. I did figure that for the free apps that the information was somehow being shared, because there really is no such thing as “free”. And you are right: I have declined downloading apps that I was otherwise interested in because of what I thought to be unreasonable permissions given the functionality of the app.

    However, I’m finding it puzzling that the paid version of many free apps often have the same permission requirements. What is the reasoning for that? Is it simply sloppy documentation? Or is it “double dipping” so-to-speak?

    1. True, free comes in many flavors… My hobby apps just send location data to get location-based ads back, but it is possible as you can see from the ad SDK to also send more personal data as age and gender. I don’t find it optimal to be forced to request permissions from the user I won’t use.

      I notice that the Microsoft Avertising SDK changed requirements and only require “Internet (Client & Server) as capability for Windows Phone 8.1, but have not looked into why/how they removed the other requirements. http://msdn.microsoft.com/en-us/library/advertising-mobile-windows-phone-manifest-capabilities(v=msads.20).aspx

      One reason why a paid version use the same permission requirements as the free version with ads is because they can be the same app package. It is possible for the developer to just create one app and programmatically check if “LicenseInformation.IsTrial” is true or not and then decide to show ads or not in the UI. Very smooth for the developer, but a bit puzzling for the user.

Leave a Reply

Close Menu