# Entendiendo los identificadores de dispositivo en Pushwoosh

Hay dos formas de identificar un dispositivo en particular registrado con Pushwoosh: un ID de hardware (HWID) y un token push.

## HWID

HWID (o Hardware ID) es un identificador clave asignado al dispositivo por el SDK de Pushwoosh.

#### HWID de Android

Para dispositivos Android, el HWID es un conjunto aleatorio de letras y dígitos generado por la primera aplicación con el SDK de Pushwoosh instalado en el dispositivo. Posteriormente se comparte con otras aplicaciones que contienen el SDK de Pushwoosh para que todas esas aplicaciones tengan el mismo HWID como resultado.

Sin embargo, si un usuario elimina todas las aplicaciones con el SDK de Pushwoosh y luego reinstala algunas, se generará un nuevo HWID una vez más.

Ejemplo de HWID de Android: `5dcaed99-e1e0-44dc-bde2-b96188b99e9e`

#### HWID de iOS

Para dispositivos iOS, se utiliza el IDFV ([Identificador para Vendedor](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)) como HWID del dispositivo. No cambiará mientras haya al menos una aplicación del mismo vendedor instalada en el dispositivo.

Ejemplo de HWID de iOS (¡solo en mayúsculas!): `CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93`

## Token push

El token push (token de dispositivo) es una clave única para la combinación aplicación-dispositivo emitida por las pasarelas de notificaciones push de Apple o Google. Permite a las pasarelas y a los proveedores de notificaciones push enrutar mensajes y garantizar que la notificación se entregue a la combinación única de aplicación-dispositivo para la que está destinada.

#### Token push de iOS

Los tokens push de dispositivos iOS son cadenas con 64 símbolos hexadecimales. Ejemplo de token push de iOS: `03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f`

<Aside type="caution">
Asegúrese de que los tokens push de iOS que utiliza al dirigirse a dispositivos específicos en sus solicitudes de API estén en **minúsculas**.
</Aside>

#### Token push de Android

Los tokens push de dispositivos Android pueden diferir en longitud (generalmente por debajo de 255 caracteres) y típicamente comienzan con APA91b…; sin embargo, también pueden tener un prefijo separado por dos puntos. Ejemplo de token push de Android: `APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq`

<Aside type="caution">
Usar tokens de dispositivo sin procesar para dirigirse a dispositivos específicos no es la forma más confiable porque los tokens push de FCM tienden a cambiar de vez en cuando, y es difícil saber con qué frecuencia ocurre.
</Aside>

## Recopilación de registros, HWID y token push de un dispositivo

### iOS

Primero, si tiene acceso al código fuente de su aplicación, asegúrese de que `Pushwoosh_LOG_LEVEL` en su aplicación esté configurado en `VERBOSE`. Para hacer esto, verifique la clave de cadena `Pushwoosh_LOG_LEVEL` en su archivo `Info.plist`. Si no, salte al siguiente paso. Aquí están los valores posibles para esta clave:

*   `NONE` - Sin registros del SDK
*   `ERROR` - Solo mostrar errores en la consola
*   `WARNING` - También, mostrar advertencias
*   `INFO` - Agregar mensajes informativos
*   `DEBUG` - Agregar información de depuración
*   `VERBOSE` - Todos los registros del SDK

El valor de la clave `VERBOSE` permite que el SDK de Pushwoosh muestre información importante sobre las acciones de registro.

2. A continuación, conecte el dispositivo a su Mac e inicie Xcode. Vaya a Ventana->Dispositivos y Simuladores.

<img src="/pushwoosh-knowledge-hub-device-identifiers-1.webp" alt="Ventana de Dispositivos y Simuladores de Xcode mostrando un dispositivo iOS conectado"/>

3. En la ventana que se abre, seleccione su dispositivo conectado y haga clic en el triángulo hacia arriba en la parte inferior izquierda para ver la consola del dispositivo:

<img src="/pushwoosh-knowledge-hub-device-identifiers-2.webp" alt="Vista de la consola del dispositivo de Xcode mostrando los registros del dispositivo con el botón de triángulo hacia arriba resaltado"/>

A partir de la versión 9.3 de Xcode, el proceso para obtener el registro de la consola del dispositivo ha cambiado ligeramente. Todo lo que necesita hacer es ir a su Launchpad e iniciar la aplicación "Consola". Seleccione su dispositivo en la barra lateral izquierda. ¡Eso es todo!

<img src="/pushwoosh-knowledge-hub-device-identifiers-3.webp" alt="Aplicación Consola de macOS mostrando el dispositivo iOS conectado seleccionado en la barra lateral izquierda con los registros del dispositivo mostrados"/>

4. A continuación, inicie su aplicación en el dispositivo y espere la ventana de diálogo. Permita las notificaciones push para su aplicación.

5. Después de estos pasos, seleccione todo el registro del dispositivo de la ventana de la consola y cópielo en cualquier editor de texto.

La solicitud de API de Pushwoosh [`/registerDevice`](/es/developer/api-reference/device-api/) es lo que está buscando:

<img src="/pushwoosh-knowledge-hub-device-identifiers-4.webp" alt="Registro de la consola del dispositivo mostrando la solicitud de API registerDevice con los parámetros hwid y push token visibles"/>

Si el dispositivo se registra correctamente, esta solicitud debe contener los siguientes parámetros, incluidos los valores "hwid" y "push token":

```txt title="Ejemplo"
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x
```

El aviso con un token push de su dispositivo también debería estar presente:

```
<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
```

### Android

1. Si tiene acceso al código fuente de la aplicación, asegúrese de que el nivel de registro de Pushwoosh esté configurado en `NOISE`. Para hacerlo, agregue los metadatos `com.pushwoosh.log_level` con el valor `NOISE` al `AndroidManifest.xml`.

2. A continuación, ejecute Android Studio en su Mac/PC y vaya a Herramientas -> Android -> Monitor de Dispositivos Android.

<img src="/pushwoosh-knowledge-hub-device-identifiers-5.webp" alt="Ventana del Monitor de Dispositivos Android de Android Studio mostrando un dispositivo Android conectado"/>

3. Conecte su dispositivo a la Mac/PC e inicie la aplicación. Espere unos 30 segundos, seleccione todo el registro del dispositivo de la ventana de la consola y cópielo en cualquier editor de texto.

<img src="/pushwoosh-knowledge-hub-device-identifiers-6.webp" alt="Ventana de registro de la consola del Monitor de Dispositivos Android mostrando los registros del dispositivo con la solicitud registerDevice visible"/>

Tenga en cuenta que en las últimas versiones de Android Studio, también puede usar la herramienta Logcat para obtener el registro de la consola del dispositivo. Ejecute Android Studio y vaya a Ver -> Ventanas de Herramientas -> Logcat:

<img src="/pushwoosh-knowledge-hub-device-identifiers-7.webp" alt="Interfaz de Android Studio mostrando la ventana de la herramienta Logcat a la que se accede desde el menú Ver"/>

Después de eso, puede localizar el registro del dispositivo en la ventana de Logcat:

<img src="/pushwoosh-knowledge-hub-device-identifiers-8.webp" alt="Ventana de Logcat de Android Studio mostrando los registros del dispositivo con la solicitud de API registerDevice visible"/>

Aquí está el ejemplo a continuación, de cómo se ve la solicitud de API /registerDevice de Pushwoosh dentro del registro de la consola del dispositivo:

<img src="/pushwoosh-knowledge-hub-device-identifiers-9.webp" alt="Registro de la consola del dispositivo Android mostrando la solicitud de API registerDevice con los parámetros hwid y push token resaltados"/>

Encuentre el valor de los parámetros "hwid" y "push token" en la solicitud:

```txt title="Ejemplo"
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success
```

El token push se incluye en el aviso de registro del dispositivo:

```
I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications
```

### Chrome (escritorio)

1. Vaya a su sitio web.

2. Haga clic derecho en cualquier parte de la página y presione "Inspeccionar".

<img src="/pushwoosh-knowledge-hub-device-identifiers-10.webp" alt="Herramientas de desarrollo del navegador Chrome abiertas con la opción del menú contextual Inspeccionar elemento visible"/>

3. En la ventana que se abre, vaya a la pestaña "Aplicación".

4. Luego, en la barra lateral izquierda, elija IndexedDB -> Pushwoosh\_SDK\_Store -> keyValue. Aquí, encuentre los parámetros HWID y push token.

<img src="/pushwoosh-knowledge-hub-device-identifiers-11.webp" alt="Pestaña Aplicación de las Herramientas de desarrollo de Chrome mostrando IndexedDB con Pushwoosh SDK Store y keyValue que contiene HWID y token push"/>

### Chrome (móvil)

1. Conecte su dispositivo móvil a la computadora.

2. Vaya a chrome://inspect/#devices en su Chrome de escritorio.

3. Abra su sitio web en su Chrome móvil.

4. Una vez que el sitio web esté abierto en su Chrome móvil, verá la página correspondiente dentro de la página de Chrome de escritorio. Por favor, eche un vistazo a la captura de pantalla a continuación:

<img src="/pushwoosh-knowledge-hub-device-identifiers-12.webp" alt="Página de depuración remota de Chrome mostrando el dispositivo móvil conectado con el botón Inspeccionar resaltado"/>

5. Presione el botón "Inspeccionar" resaltado en la captura de pantalla anterior.

6. La siguiente ventana aparecerá en su Chrome de escritorio. Allí, dentro de la pestaña "Aplicación", abra IndexedDB -> PUSHWOOSH\_SDK\_STORE. Después de esto, haga clic en keyValue y abra la sección API\_PARAMS:

<img src="/pushwoosh-knowledge-hub-device-identifiers-13.webp" alt="Pestaña Aplicación de las Herramientas de desarrollo de Chrome mostrando IndexedDB PUSHWOOSH SDK STORE con la sección API_PARAMS que contiene hwid y token push"/>

En la sección API\_PARAMS, encontrará los parámetros "hwid" y "push token" con sus valores.

### Safari

1. Vaya a su sitio web.
2. Haga clic derecho en cualquier parte de la página y seleccione Inspeccionar elemento.
3. Vaya a la pestaña Almacenamiento -> Bases de datos indexadas -> PUSHWOOSH\_SDK\_STORE -> keyValue.
4. Expanda API\_PARAMS y encuentre los valores "hwid" y "push token" aquí.

<img src="/pushwoosh-knowledge-hub-device-identifiers-14.webp" alt="Pestaña Almacenamiento de las Herramientas de desarrollo de Safari mostrando Bases de datos indexadas con PUSHWOOSH SDK STORE keyValue que contiene API_PARAMS con hwid y token push"/>