Cómo identificar apps que son propiedad de los desarrolladores
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En el caso de casos de uso como la analítica o la prevención de fraudes en un dispositivo determinado, es posible que necesites correlacionar el uso o las acciones en un conjunto de apps que pertenecen a tu organización. Los Servicios de Google Play ofrecen una opción que respeta la privacidad llamada ID del conjunto de apps.
Alcance del ID del conjunto de apps
El ID del conjunto de aplicaciones puede tener uno de los siguientes alcances definidos. Para determinar con qué
alcance está asociado un ID en particular, llama a
getScope().
Alcance del desarrollador de Google Play
En el caso de las apps que instala Google Play Store, la API de ID de conjunto de apps muestra un ID centrado en el conjunto de apps publicadas en la misma cuenta de desarrollador de Google Play.
Por ejemplo, supongamos que publicas dos apps con tu cuenta de desarrollador de Google Play y ambas apps se instalan en el mismo dispositivo a través de Google Play Store. Las apps comparten el mismo ID del conjunto de aplicaciones en ese dispositivo. El ID es el mismo
incluso si las apps están firmadas con claves diferentes.
Alcance de la app
En cualquiera de las siguientes condiciones, el SDK del ID del conjunto de aplicaciones muestra un ID único para la app que realiza la llamada en un dispositivo determinado:
Un instalador que no es Google Play Store instala la app.
Los Servicios de Google Play no pueden determinar la cuenta de desarrollador de Google Play de una app.
La app está instalada en un dispositivo sin Servicios de Google Play.
No dependas de un valor almacenado en caché del ID del conjunto de apps
En cualquiera de las siguientes condiciones, se puede restablecer el ID del conjunto de apps para un conjunto determinado de apps instaladas en Google Play Store en un dispositivo:
Los grupos de apps que comparten el mismo valor de ID no han accedido a la API del ID del conjunto de aplicaciones durante más de 13 meses.
Se desinstala la última app de un conjunto determinado de apps del dispositivo.
El usuario restablece la configuración de fábrica del dispositivo.
Tu app debe usar el SDK para recuperar el valor del ID cada vez que sea necesario.
Agrega el SDK del ID del conjunto de aplicaciones a tu app
En el siguiente fragmento, se muestra un archivo build.gradle de ejemplo que usa la biblioteca de ID del conjunto de apps:
En el siguiente fragmento de muestra, se muestra cómo puedes recuperar el ID del conjunto de apps de forma asíncrona con la API de Tasks en los servicios de Google Play:
Kotlin
valclient=AppSet.getClient(applicationContext)asAppSetIdClientvaltask:Task<AppSetIdInfo>=client.appSetIdInfoasTask<AppSetIdInfo>task.addOnSuccessListener({// Determine current scope of app set ID.valscope:Int=it.scope// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.valid:String=it.id})
Java
Contextcontext=getApplicationContext();AppSetIdClientclient=AppSet.getClient(context);Task<AppSetIdInfo>task=client.getAppSetIdInfo();task.addOnSuccessListener(newOnSuccessListener<AppSetIdInfo>(){@OverridepublicvoidonSuccess(AppSetIdInfoinfo){// Determine current scope of app set ID.intscope=info.getScope();// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.Stringid=info.getId();}});
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-08-30 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-30 (UTC)"],[],[],null,["For use cases such as analytics or fraud prevention on a given device, you may\nneed to correlate usage or actions across a set of apps owned by your\norganization. [Google Play services](https://developers.google.com/android)\noffers a privacy-friendly option called [*app set ID*](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo).\n\nApp set ID scope\n\nThe app set ID can have one of the following defined scopes. To determine which\nscope a particular ID is associated with, call\n[`getScope()`](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo#getScope()).\n| **Caution:** When Google Play services updates from a version that only supports app scope to a version that supports developer scope, the app set ID's value is reset automatically, without any developer action. See [other reasons developers\n| shouldn't rely on a cached value of the app set ID](#dont-rely-on-cached-value).\n\nGoogle Play developer scope **Note:** The app set SDK attempts to return app set IDs that have the developer scope without any additional developer action, unless the app satisfies the conditions for app scope, described below.\n\nFor apps that are installed by the Google Play store, the app set ID API returns\nan ID scoped to the set of apps published under the same Google Play developer\naccount.\n\nFor example, suppose you publish two apps under your Google Play developer\naccount and both apps are installed on the same device through the Google Play\nstore. The apps share the same app set ID on that device. The ID is the same\neven if the apps are signed by different keys.\n\nApp scope\n\nUnder any of the following conditions, the app set ID SDK returns an ID unique\nto the calling app itself on a given device:\n\n- The app is installed by an installer other than the Google Play store.\n- Google Play services is unable to determine an app's Google Play developer account.\n- The app is installed on a device without Google Play services.\n\nDon't rely on a cached value of app set ID\n\nUnder any of the following conditions, the app set ID for a given set of Google\nPlay store-installed apps on a device can be reset:\n\n- The app set ID API hasn't been accessed by the groups of apps that share the same ID value for over 13 months.\n- The last app from a given set of apps is uninstalled from the device.\n- The user performs a factory reset of the device.\n\nYour app should use the SDK to retrieve the ID value every time it's needed.\n\nAdd the app set ID SDK to your app\n\nThe following snippet shows an example `build.gradle` file that uses the app set\nID library: \n\n dependencies {\n implementation 'com.google.android.gms:play-services-appset:16.1.0'\n }\n\nThe following sample snippet demonstrates how you can retrieve the app set ID\nasynchronously using the [Tasks\nAPI](https://developers.google.com/android/guides/tasks) in Google Play\nservices: \n\nKotlin \n\n```kotlin\nval client = AppSet.getClient(applicationContext) as AppSetIdClient\nval task: Task\u003cAppSetIdInfo\u003e = client.appSetIdInfo as Task\u003cAppSetIdInfo\u003e\n\ntask.addOnSuccessListener({\n // Determine current scope of app set ID.\n val scope: Int = it.scope\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n val id: String = it.id\n})\n```\n\nJava \n\n```java\nContext context = getApplicationContext();\nAppSetIdClient client = AppSet.getClient(context);\nTask\u003cAppSetIdInfo\u003e task = client.getAppSetIdInfo();\n\ntask.addOnSuccessListener(new OnSuccessListener\u003cAppSetIdInfo\u003e() {\n @Override\n public void onSuccess(AppSetIdInfo info) {\n // Determine current scope of app set ID.\n int scope = info.getScope();\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n String id = info.getId();\n }\n});\n```"]]