One reason is that advertisement SDKs (software developer kits) often require it or the ads won't display. This doesn't mean that location services have to be turned ON for an app - just that if the file that contains the list of capabilities required by the app (which is then reflected to the store) doesn't contain that capability, ads won't display, and developers won't get any money. It bugs the snot out of me as a developer - I don't want people suspicious of my apps because they ask for certain services that I'm not using, simply because the ad control requires it.
All apps that use location services MUST (in order to be certified):
1. Notify the user and ask his permission to use location service on the first time that location services are used (after that, if permission granted, no further prompt needed)
2. Have an easily discoverable way of turning location services off.
Here's one for you - Microsoft's own ad control requires:
ID_CAP_IDENTITY_USER
ID_CAP_MEDIALIB_PHOTO
ID_CAP_PHONEDIALER
Why User Identity? User identity incorporates a "small set of coarse demographics" in order to help improve ad relevance. Why Media Library - Photo? The media library capability is required in case there is a coupon in an ad, you can tap it and save it to the media library for later use. Phone Dialer is because advertisers would want you to be able to tap an ad, see their page, and if they've put a phone number in the ad, tap the phone number to call it (which will prompt a confirmation before dialing).
I use adRotator, an ad control that allows you to not only rotate between ad services (say one service has no ads to serve for a region), but also lets you configure your ad services remotely without putting out an update to the app (it does this by checking for a file on the developer's server, and that file tells it what ads to use). That control requires the above capabilities, but also these:
ID_CAP_IDENTITY_DEVICE
ID_CAP_NETWORKING
ID_CAP_WEBBROWSERCOMPONENT
I can understand the webbrowser component - they wanted to use the common web browser control that we devs can put in our apps, so the ads can display that way. I can understand device identity (a lot more than user identity), because they may not want to show the same ad to the same user more than x times, and the user is most likely going to be using the same device. And networking, of course - how else do you serve an ad. Why doesn't Microsoft's control require that? They must be doing some behind-the-scenes magic that others don't have access to, in order to serve up ads without this capability.
While some ads can be used without location services, if the developer uses location services, and sends that information to the ad provider, the ad provider can serve up more targeted ads. A guy in Bangledesh doesn't want to see an ad for Whataburger, right? Well, he wouldn't anyway, because the phone does tell the service what region it is in.... but if you're in the US, on the West Coast, I'm sure you're not going to care about an ad for Krispy Kreme, right? So a US region phone would use location services to filter out ads that are not applicable to the area (this is done by the advertiser controlling what area he wants his ads to be displayed in - Krispy Kreme saying that they only want their ads shown to the Southeast).
So, yes, there are a lot of apps that use services where you wouldn't think that it is necessary, but this is one reason that often goes unexplained. I hope this helps.
All apps that use location services MUST (in order to be certified):
1. Notify the user and ask his permission to use location service on the first time that location services are used (after that, if permission granted, no further prompt needed)
2. Have an easily discoverable way of turning location services off.
Here's one for you - Microsoft's own ad control requires:
ID_CAP_IDENTITY_USER
ID_CAP_MEDIALIB_PHOTO
ID_CAP_PHONEDIALER
Why User Identity? User identity incorporates a "small set of coarse demographics" in order to help improve ad relevance. Why Media Library - Photo? The media library capability is required in case there is a coupon in an ad, you can tap it and save it to the media library for later use. Phone Dialer is because advertisers would want you to be able to tap an ad, see their page, and if they've put a phone number in the ad, tap the phone number to call it (which will prompt a confirmation before dialing).
I use adRotator, an ad control that allows you to not only rotate between ad services (say one service has no ads to serve for a region), but also lets you configure your ad services remotely without putting out an update to the app (it does this by checking for a file on the developer's server, and that file tells it what ads to use). That control requires the above capabilities, but also these:
ID_CAP_IDENTITY_DEVICE
ID_CAP_NETWORKING
ID_CAP_WEBBROWSERCOMPONENT
I can understand the webbrowser component - they wanted to use the common web browser control that we devs can put in our apps, so the ads can display that way. I can understand device identity (a lot more than user identity), because they may not want to show the same ad to the same user more than x times, and the user is most likely going to be using the same device. And networking, of course - how else do you serve an ad. Why doesn't Microsoft's control require that? They must be doing some behind-the-scenes magic that others don't have access to, in order to serve up ads without this capability.
While some ads can be used without location services, if the developer uses location services, and sends that information to the ad provider, the ad provider can serve up more targeted ads. A guy in Bangledesh doesn't want to see an ad for Whataburger, right? Well, he wouldn't anyway, because the phone does tell the service what region it is in.... but if you're in the US, on the West Coast, I'm sure you're not going to care about an ad for Krispy Kreme, right? So a US region phone would use location services to filter out ads that are not applicable to the area (this is done by the advertiser controlling what area he wants his ads to be displayed in - Krispy Kreme saying that they only want their ads shown to the Southeast).
So, yes, there are a lot of apps that use services where you wouldn't think that it is necessary, but this is one reason that often goes unexplained. I hope this helps.