I would like to know, by what criteria google exclude a device, from an app that we have loaded on play store.
For example the last app that I published, is supported from only 2000 devices ca.
Then more than 2000 devices are excluded.
Why?
By what criteria google exclude a device?
What can I do to ensure that my app is available on more devices?
Thank in advance.
Helmut
(Sorry for my english)
Minimum screen size, minimum API level, requiring a touchscreen, a camera, and so on
Google play filters the application based on the features given in the manifest like Screen Size -supports-screen, Device Configuration - uses-configuration, Device Features- uses-feature , Software Library -uses-library, Permissions-uses-permission, SDK levels-uses-sdk
Google Play uses other application characteristics to determine whether to show or hide an application for a particular user on a given device, as described in the table below.
Publishing Status -Only published applications will appear in searches and browsing within Google Play.
Even if an app is unpublished, it can be installed if users can see it in their Downloads area among their purchased, installed, or recently uninstalled apps.If an application has been suspended, users will not be able to reinstall or update it, even if it appears in their Downloads.
Priced Status - Not all users can see paid apps. To show paid apps, a device must have a SIM card and be running Android 1.1 or later,
and it must be in a country (as determined by SIM carrier) in which paid apps are available.
Country Targeting -When you upload your app to Google Play, you can select the countries in which to distribute your app under Pricing and Distribution.
The app will then be available to users in only the countries you select.
CPU Architecture (ABI) -An application that includes native libraries that target a specific CPU architecture (ARM EABI v7 or x86, for example)
are visible only on devices that support that architecture.
Copy-Protected Applications -Google Play no longer supports the Copy Protection feature in the Developer Console and no longer filters apps based on it.
To secure your app, please use Application Licensing instead. See Replacement for Copy Protection for more information.
Related
I was just curious to know few basic behavior of the google play-store.
Tried to find the answers of below questions:
1) If my phone network is switched from cellular to WI-FI while i am downloading an app from the play-
store. How google manages the connection as it resumes the download from where it stopped, because as
far as i know the IP address will change and TCP connection restarts the session.
2) What are the detailed steps involved right from requesting for an app from play-store till it is
installed in our device. I mean what are the factors of the device google crosschecks, for instance,
if the minimum version of the app is 7.0 and i have a device of 6.0, will the .apk gets downloaded and
then the version is verified or it is verified before the download starts.
Couldn't able to find a document on these. Please share if you have one.
Regarding 2)
The Play Store won't offer you an app for download if your phone doesn't meet it's requirements. This means you won't be able to download the app via the play store if:
Your phone doesn't meet the required minimum android version
Your phone doesn't support one of the features that are marked with uses-feature required="true" in the manifest (see reference)
e.g. NFC, camera
The vendor explicitly excluded your phone from the list of supported devices
e.g. some Samsung apps are only available for Samsung smartphones, like Gear 360 app. Some games are only available for Nvidia Shield like Half Life 2
The vendor doesn't release the app in your region
After reading through the Android developer documentation, I see that it is possible to see a comprehensive list of supported devices for a given .apk file via the Google Play Develop Console.
Is there an alternative way of doing this, which does not require uploading an .apk to the Developer Console?
No. Without uploading apk, how will you trace which device are supported? Nothing better than native Google developer console which traces list of all supported devices, countries, device name, version etc.,
There are several parameter that are considered before generating the list of supported devices, few of those parameters are:
1. Minimum SDK version
2. Target SDK version
3. Support for camera hardware (if your application uses camera)
4. Support for front camera (if your application uses front cam)
5. Support for sensors that your app uses.
6. Support for opengl libraries (if your app uses it)
7. Support for supported screen sizes.
8. Support for calling or sms, if your app needs to make a call or send sms, etc
Basically you declare these addional requirements in your app manifest or you generate different layout files for tablets and other unusual devices.
There are many more parameters to consider to generate the list of supported, since all the devices are registered with Google, Google play store is the best and most reliable source to get the list.
And the most important thing, List of supported devices is greatly
affected by the settings that you have on playstore like ratings,
country, category, etc. So to get the exact list, your apk should be
on PlayStore, at least as a draft.
It would seem that Google has provided for us to post our application online and they provide for a nice overall list of supported devices. This is just a list of all devices supported on the market however.
Within the Google Play Store, we as developers can choose to select filters on specific devices that we would like to support and can exclude devices as desired. However, support is questioning how we can let customers know which devices are on that support list.
The only way that I can currently see how to check if a device is on the supported list (before someone actually purchases a device and physically checks), would be for us to internally open up the developer console and check for them. This isn't really a manageable solution. I have to assume that there is somewhere that we as the developer can export the list of supported devices so that we can host it on a website somewhere and refer to it with a link from our website, or something similar. And yet I can find nothing. Has anyone had success in getting information from the Google Play Store for users?
Updates:
Simplistic means to try and retrieve this information have not proved fruitful. A select-all over the list of devices on the web window covering the supported devices does not show which devices have been excluded. It only shows devices that are supported by the restrictions from the manifest file. And of course there will be new devices added to the list of devices each day, and they don't seem to have much of an order to them when they are added in to the list of supported devices for the application. There doesn't seem to be much organization here.
Currently, we interact with specific external hardware for our application and we want to be sure that it works on families of devices before we support them, which is why it gets difficult to provide this list to customers. There doesn't seem to be any export functionality or physical way to share the supported list of devices with the customers.
For instance, if we support the Samsung Galaxy families that we have done extensive tests upon, but some of those devices are not USB OTG compatible, then we would want to show exactly which Samsung Galaxy ones in a list are available to them (but it doesn't stop with Samsung only of course).
This is what you need:
List of supported devices
Note :
It was updated on 2/18/2014 .
EDIT :
What would be needed is the list of devices that my application supports which is what gets filtered from the manifest file, as well as from exclusions that I have made within the store filters
AFAIK, there is no API provided by play store to get that list of devices because play-store applies filter on run time.
Reference:
Google Play uses the filter restrictions described below to determine whether to show your application to a user who is browsing or searching for applications from the Google Play app.
When determining whether to display your app, Google Play checks the device's hardware and software requirement, as well as it's carrier, location, and other characteristics. It then compares those against the restrictions and dependencies expressed by the application's manifest file and publishing details.
If the application is compatible with the device according to the filter rules, Google Play displays the application to the user. Otherwise, Google Play hides your application from search results and category browsing, even if a user specifically requests the app by clicking a deep link that points directly to the app's ID within Google Play.
checkout: How Filters Work on Google Play
A question on limiting apps for devices. We've licensed software to device makers and we wanted to allow app developers to publish only on those devices (I'll call these "licensed devices"). Apps won't work on other devices("non-licensed devices").
I've found very helpful posts here about Device Availability & Google Play.
Android: Limit supported devices in Android Market
how to filter android app to be downloaded from google play to specific device? among others
With Device Availability, it looks like app developers have to manually select the universe of non-licensed devices from the dynamic list of supported devices and move these to the exclusion list. Seems like a lot of work for app developers, especially if they'd have to keep updating the exclusion list with each new Android device that's released.
I wanted to see if there's a means of doing the converse - making my app available only to a set of licensed devices. Is there a means of doing this with Google Play?
We've licensed software to device makers and we wanted to allow app developers to publish only on those devices (I'll call these "licensed devices"). Apps won't work on other devices("non-licensed devices").
Developers of such custom firmware extensions should do so as an SDK add-on, thereby requiring developers who use those extensions to have a corresponding <uses-library> element in their manifest. The Play Store should then automatically filter the app so that it only shows up on devices that have that SDK add-on. Motorola, HTC, Samsung, and others have created such SDK add-ons.
I wanted to see if there's a means of doing the converse - making my app available only to a set of licensed devices. Is there a means of doing this with Google Play?
No, sorry.
Tomorrow, if Google adds one more device to the list of supported devices then it will be automatically included to my supported devices list which I dont want to happen.
Then do not distribute the app on the Play Store.
Is there a mechanism to get a notification as soon as Google adds a new device to the list of supported devices in Google play console?
No, sorry.
If not, what is the alternate way of handling it.
Refresh your browser continuously, breathlessly waiting for the next update to the device roster.
I am sure many other android developers would have faced the same issue
Hopefully not. The Play Store is designed for distribution to all Android devices. The per-device exclusion list is designed for short-term compatibility issues, while you work out some bug fixes to overcome the issues.
It seems like Google has just released Google Play Private Channel, which could help you with your "licensed device" issue.
As said recently in this blog post: A new way to distribute your internal Android apps
Not natively. You can check the device type and exit if it doesn't match your whitelist, but that can easily be spoofed on rooted devices. If you have a library you can throw a fatal exception when initializing, etc.
I uploaded an app built with 1.5 SDK into market, but someone told me they can not find it in the market in their phone. I do not know why, because I have test it in 2.1 emulator.
Then how to know if my app is available in android market with all versions, is there any url to test that?
There are a couple of Web front-ends available to the market where you can check if the app appears in principle. E.g. http://www.cyrket.com
Whether the market lists your app from a specific phone depends on the phone and the resources your app needs. E.g. if your app does not support small screens (you can set this in the manifest), the market won't list it for phones like the HTC Tattoo.
Apparently the sequence in which apps are displayed by the market also varies by phone, carrier and country. You can get the app "Market Enabler" which allows you to make your phone pretend it's in a different country, in order to check if your app displays fine for all country markets.