# Emulador Android multi instancia: grupos de dispositivos

> Agrupa instancias de un emulador Android multi instancia y dispositivos en la nube en MAS, da a cada uno su macro, argumentos y proxy, e inícialos a la vez.

Source: https://automationmacro.com/es/docs/device-groups (Dispositivos, updated 2026-09-05)

Un grupo de dispositivos es la unidad que Macro Automation Studio (MAS) usa para ejecutar macros en más de un dispositivo, ya sea un emulador Android multi instancia o un conjunto de dispositivos en la nube. Cada dispositivo del grupo, sea una instancia de un emulador Android multi instancia o un dispositivo en la nube, tiene su propia macro, argumentos, proxy y webhooks, y el grupo tiene **Iniciar todos** y **Detener todos**. Esta página cubre los dos tipos de grupo, la configuración por dispositivo, las ejecuciones en bloque, los logs y la programación.

## Antes de empezar

- MAS está instalado y has iniciado sesión con una prueba o un plan activo.
- Para un grupo local: una o más instancias de emulador en marcha con ADB activado. Consulta [Dispositivos](/docs/devices) para las reglas de puertos.
- Para un grupo en la nube: al menos un dispositivo en la nube creado en la página **Dispositivos en la nube**. Consulta [Dispositivos en la nube](/docs/cloud-devices). La [página de dispositivos en la nube](/cloud-devices) explica qué incluye el complemento.

## Dos tipos de grupo

Un grupo contiene un solo tipo de dispositivo, elegido al crearlo y fijo después:

| Tipo | Opción de tipo | Qué contiene | Dónde se ejecutan las macros |
|---|---|---|---|
| Local (`byod`) | **Local** | Emuladores en este ordenador y tu propio móvil por adb | En este ordenador, controlando el dispositivo por adb |
| Nube | **Nube** | Dispositivos en la nube que MAS ejecuta por ti | En los servidores de MAS, así que la app puede cerrarse |

Un dispositivo en la nube solo puede unirse a un grupo en la nube, y un emulador solo a un grupo local. Mezclarlos se rechaza con "a cloud device can only be added to a cloud group".

## Crear un grupo

1. Abre **Grupos de dispositivos** en la barra lateral y haz clic en **Crear nuevo grupo**.
2. Escribe un **Nombre** de 3 a 255 caracteres y una **Descripción** opcional.
3. Elige el **Tipo**: **Local** o **Nube**.
4. Haz clic en **Crear grupo**.

La lista de grupos muestra cada grupo con su número de dispositivos y un recuento en directo de los dispositivos en ejecución. Usa la vista de cuadrícula o de tabla, ordena por nombre, antigüedad o número de dispositivos, y busca por nombre. **Editar** cambia el nombre y la descripción; el tipo no se puede cambiar.

## Añadir dispositivos

<div class="doc-tabs" data-tabs="kind">
<section data-tab="Grupo local">

1. Abre el grupo y haz clic en **Añadir dispositivo**.
2. Escribe un **Nombre del dispositivo**.
3. Elige el puerto del emulador en **Puerto**. Haz clic en **Actualizar** para volver a buscar, o elige **Puerto personalizado** y escríbelo.
4. Opcionalmente elige una **Macro de inicio**.
5. Haz clic en **Añadir dispositivo**.

</section>
<section data-tab="Grupo en la nube">

1. Abre el grupo y haz clic en **Añadir dispositivo en la nube**.
2. Elige un dispositivo de la lista. Los que ya están en este grupo se ocultan.
3. Haz clic en **Añadir**.

Los dispositivos en la nube se crean en la página **Dispositivos en la nube**, no aquí. Si la lista está vacía, el diálogo te lleva allí.

</section>
</div>

### BlueStacks, LDPlayer y otros emuladores Android multi instancia

Cada instancia de emulador escucha en su propio puerto adb, y MAS trata cada puerto como un dispositivo aparte. Tres ventanas de BlueStacks o tres instancias de LDPlayer se convierten así en tres dispositivos del grupo, cada uno con su macro y sus argumentos. Las guías de [BlueStacks](/docs/bluestacks-setup-guide), [LDPlayer](/docs/ldplayer-setup-guide), [MuMu Player](/docs/mumu-setup-guide) y [MEmu](/docs/memu-setup-guide) muestran dónde está el puerto de cada instancia, y la [guía de multi instancia](/docs/guides/multi-instance) recorre una granja completa.

> [!TIP]
> Da a los dispositivos nombres que coincidan con los de las instancias del emulador. Los logs, el historial de ejecuciones y los payloads de los webhooks llevan el nombre del dispositivo, así que "LD-3" es más fácil de rastrear que "Dispositivo 7".

## Configurar cada dispositivo

Cada tarjeta de dispositivo tiene los mismos controles:

- **Macro**: elige la macro que ejecuta este dispositivo. **Iniciar todos** omite los dispositivos sin macro.
- **Ajustes de la macro**: abre el formulario de argumentos de la macro para este dispositivo. La barra **Perfil** de arriba decide dónde viven los valores: un [perfil de ajustes](/docs/settings-profiles) con nombre compartido por todos los dispositivos que lo siguen, o **Personalizado (solo este dispositivo)**. Guardar un perfil actualiza todos los dispositivos que lo usan, y la barra indica cuántos. Cada macro tiene un perfil **Default** que no se puede borrar. **Nuevo** guarda los valores actuales como un perfil nuevo.
- **Número de ejecuciones**: cuántas veces se repite la macro en este dispositivo.
- **Ajustes avanzados**: el selector de **Proxy**, la línea **Notificaciones** que indica cuántos webhooks reciben avisos de este dispositivo con un enlace **Gestionar**, y **Datos del proxy hoy**.
- **Editar dispositivo** cambia el nombre y el puerto; el botón de papelera quita el dispositivo del grupo.

Haz clic en **Guardar cambios** después de editar la macro o el número de ejecuciones. Las elecciones de proxy y perfil se guardan solas.

### Proxy por dispositivo

Elige un proxy en el desplegable **Proxy**; **Sin proxy** lo quita. Un proxy por dispositivo, fijo por defecto para que cada dispositivo conserve su propia IP. En un emulador el proxy se aplica durante cada ejecución; en un dispositivo en la nube se aplica la próxima vez que el dispositivo arranca. Los detalles, los límites y la IP de salida en los webhooks están en la página [Proxies](/docs/proxies).

### Webhooks por dispositivo

Los endpoints de webhook se acotan en la página **Webhooks** a todos los dispositivos, a grupos concretos o a dispositivos concretos. La tarjeta del dispositivo solo indica cuántos endpoints cubren este dispositivo; cambia el alcance en la página Webhooks. Los eventos de ejecución llevan `device_id`, `device_name`, `device_port` y `group_id`, así que un solo endpoint puede distinguir los dispositivos. Consulta [Webhooks](/docs/webhooks).

## Iniciar y detener

**Iniciar** en una tarjeta ejecuta solo ese dispositivo. En un dispositivo local, MAS conecta por adb y lanza la macro; en un dispositivo en la nube, inicia una ejecución en el servidor.

**Iniciar todos** ejecuta el grupo entero:

- Los dispositivos arrancan uno tras otro, con medio segundo de separación, en el orden de la lista.
- Un dispositivo sin macro asignada se omite y cuenta como fallido; los demás arrancan igualmente.
- El resultado es un recuento, por ejemplo 9 correctos y 1 fallido, con hasta 5 mensajes de error en el aviso. El diálogo **Iniciando todos los dispositivos** muestra el progreso y un registro de la operación.
- En un grupo en la nube, **Iniciar todos** lanza una ejecución en el servidor por dispositivo, uno tras otro. El límite de dispositivos en ejecución de tu plan sigue aplicándose, así que un dispositivo que no puede arrancar lo indica en su propio aviso.

**Detener todos** termina todas las ejecuciones del grupo de la misma manera. Detener una ejecución en la nube deja el dispositivo en la nube encendido.

Cada tarjeta muestra su estado: **Detenido**, **Conectando**, **Descargando**, **Iniciando**, **En ejecución**, **Deteniendo** o **Error**. La cabecera del grupo los resume en recuentos de activos, inactivos y con error.

## Logs por dispositivo

Cada tarjeta tiene una pestaña **Panel**, que muestra la interfaz en tiempo de ejecución de la macro cuando la tiene, y una pestaña **Logs** con la salida propia del dispositivo:

- Filtra por **Todos**, **Usuario**, **Exec**, **Errores** o **Avisos**. Las líneas de usuario son la salida de `print` y `mas.log` de tu propio script; las líneas Exec vienen del ejecutor.
- **Buscar en logs** filtra por texto, **Seguir** mantiene la línea más reciente a la vista y **Hora** activa o desactiva las marcas de tiempo.
- **Guardar** escribe el log en un archivo; **Limpiar** vacía el panel.

Los eventos de proxy y webhook aparecen en el mismo panel, por ejemplo "Proxy connected via office, traffic routed through 203.0.113.9". El panel de un dispositivo en la nube muestra el final de la salida de la ejecución en el servidor. Las ejecuciones terminadas, con código de salida y duración, se listan en **Ejecuciones**.

## Programar un grupo

El [Programador](/docs/scheduler) ejecuta una macro en un puerto a la hora que elijas entre tus dispositivos. Para programar un grupo entero, crea una tarea por dispositivo con la misma hora y recurrencia. Las ejecuciones programadas en un dispositivo que pertenece a un grupo llevan el id de ese grupo, así que los webhooks acotados al grupo también se disparan.

## Rutas de grupos y dispositivos para claves de API

Una [clave de API](/docs/api-keys) puede leer tus grupos y dispositivos: `GET /api/emulator/groups` y `GET /api/emulator/devices`. Ambas devuelven solo lo que posee el dueño de la clave, y las filas de dispositivo incluyen el puerto, la macro, el grupo y el perfil de ajustes. Crear, editar y eliminar grupos o dispositivos, e iniciarlos o detenerlos, necesitan el inicio de sesión de la propia app. Consulta la [API REST](/docs/rest-api).

## Solución de problemas

### Iniciar todos informa de dispositivos fallidos

Abre el aviso o el registro de la operación. "device X has no macro assigned" significa que la tarjeta no tiene ninguna **Macro** seleccionada. Un dispositivo local que no puede conectar falla con el error de adb; sigue [Solución de problemas de ADB](/docs/adb-troubleshooting). Los dispositivos que sí arrancaron siguen en marcha.

### Un dispositivo en la nube no se une al grupo

El grupo es local. Crea un grupo con el **Tipo** en **Nube** y añade ahí el dispositivo. La misma regla impide que un emulador se una a un grupo en la nube.

### Dos instancias muestran el mismo puerto

Cada puerto pertenece a un dispositivo. Si dos ventanas de emulador informan del mismo puerto, una de ellas tiene ADB apagado o no ha terminado de arrancar. Espera a que la segunda instancia arranque del todo, haz clic en **Actualizar** en la lista de puertos y añádela con su propio puerto.
