Ir al contenido
31 de julio de 2026 · Manual

Manual: construir extensiones de navegador

Este artículo describe el producto en el momento de su publicación. Consulta AI Builder y Equipos de Agentes para conocer las funciones actuales.

Manual: construir extensiones de navegador

Priya, la semana pasada me preguntaste si el vigilante de bajadas de precio que estás construyendo debería simplemente sondear la página del producto cada minuto "por si acaso". Antes de que lo incorpores así, déjame explicarte todo el proceso, porque el intervalo de sondeo es en realidad la decisión más pequeña aquí, y acertar con la estructura desde el principio te ahorrará uno o dos ciclos de revisión antes del lanzamiento.

Empieza por el propio prompt. Dijiste "una extensión que vigile esta página y me avise cuando baje el precio", y es una buena idea, pero todavía no es una especificación: el compilador necesita saber cuándo actúa, no solo qué hace. Tu vigilante es la tercera de tres formas de disparador posibles, y vale la pena conocer las otras dos aunque no las necesites, porque la forma determina los permisos y los permisos determinan tu plazo de revisión.

  • Acción con clic es la más económica: una ventana emergente que se ejecuta una vez sobre la página actual cuando alguien pulsa el icono de la barra de herramientas — piensa en algo como "extraer todos los precios de esta página en una lista".
  • Script de contenido siempre activo se ejecuta automáticamente en un patrón de URL que tú especificas — útil para algo como resaltar el nombre de un competidor en cada página bajo un dominio, pero hay que indicar el patrón explícitamente, porque "en nuestros sitios internos" se interpreta de forma más restringida de lo que querías decir.
  • Tu caso es el tercero: un vigilante en segundo plano, con estado que persiste esté abierta o no la pestaña, ejecutándose en un service worker bajo MV3, marcando el icono cuando algo cambia.

Es la única de las tres formas en la que el compilador debería hacerte una pregunta de seguimiento, y lo hará, porque el número de sondeo es una decisión de compromiso real, no un trámite.

Lo cual me lleva de vuelta a tu instinto de "cada minuto". Hace un tiempo pedí algo casi idéntico a lo tuyo: vigilar una página, marcar el icono ante un cambio de precio, y la primera versión sondeaba cada 60 segundos. Funcionaba bien para una persona probando en local. Multiplícalo por cuantas personas realmente instalen esto y estarás bombardeando la página del producto de alguien sin necesidad, porque los precios en un listado minorista normal no cambian más de unas pocas veces al día. Dile al compilador "comprobar cada 30 minutos" en el prompt. No es una concesión, es la petición más honesta: nadie necesita alertas de menos de un minuto de una extensión de navegador, y te lo agradecerás más adelante cuando no tengas que explicarle a un revisor por qué tu extensión llama a casa 1440 veces al día.

Las partes en las que no tienes que pensar

Mencionaste que te ponía nervioso el manifiesto; no lo estés, es precisamente lo único que de verdad no necesitas tocar. Ambas tiendas exigen ahora Manifest V3; MV2 dejó de aceptarse para fichas nuevas y Chrome ha estado retirando activamente las extensiones con MV2 que aún siguen activas. El cambio principal bajo MV3 es que tu lógica en segundo plano se ejecuta como un service worker en lugar de una página de fondo persistente: se activa con un evento, el navegador puede cerrarlo entre eventos, y el estado tiene que pasar por chrome.storage en lugar de simplemente vivir en una variable. Ese es exactamente el tipo de detalle de ciclo de vida que el compilador escribe correctamente por defecto. Nunca verás un archivo de manifiesto a menos que vayas a buscarlo.

En lo que de verdad deberías concentrar tu atención es en los permisos, porque eso es lo que decide la velocidad de tu revisión, no el código. Tu vigilante necesita alarms para el sondeo y probablemente storage para recordar el último precio; no necesita tabs o <all_urls>, y si pides "la capacidad de funcionar en cualquier sitio en el futuro" porque quizá lo amplíes más adelante, el compilador construirá según eso y estarás solicitando acceso amplio a hosts para una función que aún no existe. Esa es la línea más alarmante del cuadro de instalación: "leer y cambiar datos en todos los sitios que visitas", y también es lo que convierte una revisión automática en manual. Describe lo que hace hoy. Amplíalo más adelante si de verdad lo necesitas.

Otras dos cosas que merecen treinta segundos de atención antes de dar esto por terminado: la interfaz de la ventana emergente y los iconos.

  • Interfaz de la ventana emergente: una página de opciones por defecto, con casillas sueltas y sin jerarquía, es una fuente real de reseñas de una estrella que no tienen nada que ver con si la extensión funciona. La tuya solo tiene un par de ajustes (la URL, quizá el intervalo), pero aun así debería parecer parte de un producto, no un formulario improvisado.
  • Iconos: comprueba el icono en los cuatro tamaños de Chrome (16, 32, 48, 128 px, con una matriz ligeramente distinta para Firefox), porque un logotipo que se ve nítido a 128 se convierte en una mancha a 16, que es justo donde vive la mayor parte del día en una barra de herramientas abarrotada.

Antes de tocar cualquiera de las dos tiendas

Prueba esto de verdad, no solo en la vista previa del chat. Lo que obtienes de la compilación es una extensión realmente cargable, así que ve a chrome://extensions, activa el modo desarrollador, "carga descomprimida" y ejecútala contra la página real del producto que te importa, no una versión simulada. Yo comprobaría específicamente dos cosas a mano: ¿el aviso de permisos de instalación dice lo que esperarías dado lo que pediste? y ¿qué pasa si el content script llega a una página para la que no fue diseñado, falla en silencio o lanza algo visible? Ambas comprobaciones tardan menos de un minuto y ambas son el tipo de error que resulta obvio en cuanto lo miras e invisible si no lo haces.

Cuando estés listo para publicar de verdad, pasarás por tus propias cuentas de desarrollador en ambas tiendas; tú eres el dueño de la ficha, esta plataforma no la gestiona por ti. Y quiero señalar que las dos tiendas no son ni remotamente simétricas, porque no quiero que planifiques tu fecha de lanzamiento asumiendo que sí lo son.

TiendaProceso de envío
ChromeAutocompleta la ficha: título, descripción, categoría y el texto de justificación de permisos que realmente lee la revisión, generado a partir de lo que hace el código en lugar de escribirse por separado, lo cual importa porque las justificaciones que no coinciden son por sí solas un motivo habitual de rechazo.
FirefoxPrácticamente automático; el proceso de Mozilla es más ligero y el envío simplemente pasa.

El kit de ficha que se genera al terminar tu compilación también producirá capturas de pantalla tomadas de tu extensión funcionando de verdad (no una simulación), el texto de la ficha y las respuestas sobre prácticas de privacidad verificadas contra el código real en lugar de completadas de memoria. Ese último punto es más importante de lo que parece para algo que se comunica con una página externa: el cuestionario de privacidad de Chrome hace preguntas de sí/no directas sobre el tratamiento de datos, y responder "no" a "¿esto recopila datos?" cuando tu vigilante está sondeando y guardando precios es el tipo de pequeña falta de honestidad que se retira después del lanzamiento, no solo se rechaza antes. Que las respuestas se comprueben contra lo que hace el código cierra esa brecha automáticamente por ti.

En tu fecha de lanzamiento, en concreto:
TiendaTiempo de revisión habitual
FirefoxHoras, a veces menos de una
ChromeUn par de días, en ocasiones cerca de dos en una mala semana

Las extensiones con persistencia en segundo plano como la tuya tienen más probabilidades de caer en la vía más lenta de revisión manual que una simple de acción con clic. Ninguno de los dos podemos mover esa cola. Planifica tu anuncio según el calendario de Chrome, no el de Firefox, y no programes nada para el mismo día en que envías la solicitud.

Una última cosa, porque te conozco: ya estás pensando en añadir "sincronizar mi lista de seguimiento entre dispositivos" y "registrar el historial de precios a lo largo del tiempo" una vez que esto se publique. Está bien, pero ten en cuenta que cada una de esas es un permiso nuevo, y un permiso nuevo puede significar una revisión más lenta que la que acabas de pasar. Si estás seguro de que quieres la versión más grande, es sinceramente mejor pedirla ahora y asumir una revisión más lenta que ir añadiendo permisos de a poco. Si aún no lo tienes claro, publica lo que tienes: un vigilante con un alcance ajustado se aprueba rápido, te da uso real, y el uso real vale más ahora mismo que una lista de funciones más larga esperando en la cola de Chrome. Siempre puedes pedir más después; no puedes recuperar este lanzamiento una vez que se quede atascado en revisión manual por algo que aún no necesitabas.

Manual
CompartirXLinkedInFacebookRedditQuoraWhatsAppTelegramCorreo electrónico
← Todas las publicaciones