← Blog
Juegos Playables August 3, 2026 14 min read

8 Errores comunes de compilación que hacen que fallen la certificación de YouTube Playables. Corrija antes de enviar

Nuestro equipo de QA revisa cada juego antes de que se envíe a YouTube. Aquí exploramos los errores que detectamos con más frecuencia y explicamos todo lo que necesita saber para evitarlos.

Jefry Beed

Author

Share this article:
8 Errores comunes de compilación que hacen que fallen la certificación de YouTube Playables. Corrija antes de enviar

¿Por qué la calidad de compilación es importante para los juegos interactivos

Publicar un juego en YouTube Playables no es lo mismo que subirlo a otros portales web. YouTube ejecuta su propio proceso de certificación, una revisión técnica obligatoria que cada compilación debe pasar antes de estar disponible. Si la compilación no pasa, se devuelve al desarrollador para que realice correcciones, vuelva a enviarla y pase por otra ronda de revisión. Cada ciclo cuesta tiempo y esfuerzo.

En Mediacube, realizamos pruebas de precertificación en cada compilación antes de que llegue a YouTube. Nuestro equipo de QA ha revisado cientos de compilaciones en Unity, Cocos, Phaser, Construct y otros motores. Los errores que se enumeran en este artículo son los que vemos con más frecuencia en estudios de todos los tamaños, motores y géneros de juegos.

La mayoría de ellos se pueden solucionar rápidamente una vez que sabes qué buscar. Lee esto antes de compilar, no después.

Error #1: La pausa no pausa el juego

Cómo se ve

Cuando un jugador cambia a otra pestaña, minimiza la aplicación o el sistema solicita una pausa, YouTube Playables envía una señal de pausa al juego a través del SDK. Muchos juegos responden a esta señal de pausa mostrando su menú de pausa interno, pero el bucle de juego subyacente sigue ejecutándose. Los ticks de física, los temporizadores de cuenta regresiva siguen funcionando, las animaciones siguen ejecutándose. Algunos elementos interactivos siguen siendo clicables en el estado de pausa.

Otra variante: El juego se congela visualmente, pero acumula entradas durante la congelación. Cuando el juego vuelve a la normalidad, ejecuta todas esas acciones almacenadas de una vez — y un personaje salta tres veces en rápida sucesión, o dispara un arma que se presionó durante la pantalla de pausa.

Tercera variante (que se informa con frecuencia en nuestra canalización de QA): El juego muestra correctamente el menú de pausa interno, pero los botones de ese menú son completamente clicables. La pausa oficial de Playables está en efecto y el jugador puede usar este tiempo para navegar por los menús, cambiar la configuración o incluso reiniciar el juego.

¿Por qué no pasa la certificación

El contrato de pausa del SDK de Playables es estricto: cuando se activa `ytgame.system.onPause()`, el juego debe detenerse completamente y no ejecutar ninguna animación, física, procesamiento de entradas ni temporizadores. Cualquier desviación de esto es marcada durante el proceso de certificación de YouTube.

El contrato de pausa del SDK de Playables es estricto: cuando se activa `ytgame.system.onPause()`, el juego debe detenerse completamente y no ejecutar ninguna animación, física, procesamiento de entradas ni temporizadores. Cualquier desviación de esto es marcada durante el proceso de certificación de YouTube.

🛠️ Cómo arreglar

Registrar el

onPause

llamada de retorno y asegurarse de que detenga el bucle del juego, silencia todas las animaciones, deshabilita el manejo de entradas y limpia cualquier cola de acciones pendientes. En

onResume

, restaurar el estado desde donde se congeló: no volver a reproducir las entradas almacenadas. Pruebe esto explícitamente mediante la activación de pausa a través de la

Suite de pruebas de Playables

, no solo su propio botón de pausa en el juego.

⚠️ Error común

Tratar el pausa del SDK de YouTube como equivalente a presionar su botón de pausa en el juego. No son lo mismo. El pausa del SDK debe detener todo dentro del bucle del motor del juego.

Error #2: El estado de silencio no es persistente

**Cómo se ve

YouTube puede silenciar el audio de un juego en cualquier momento a través del SDK, por ejemplo, cuando el jugador está viendo un anuncio, cambia de contexto o tiene su dispositivo en silencio. El juego debe respetar este estado de silencio y mantener el audio apagado hasta que YouTube lo desactive explícitamente.

Los modos de fallo que vemos con más frecuencia:

El silencio se restablece en eventos internos. El juego silencia correctamente en respuesta a la señal de la SDK, pero si el jugador abre el menú de configuración del juego, hace clic en un botón de reinicio o transita a un nuevo nivel, el silencio se levanta. El audio vuelve, aunque YouTube todavía tenga el silencio activo.

El silencio no sobrevive a una recarga de página. Si la página se actualiza mientras el juego está silenciado (a través de la SDK), el juego se relanza con el audio activado. El estado de silencio se almacenó en memoria, no se persistió, por lo que la recarga lo borra.

El botón de silencio interno anula el silencio de la SDK. La SDK silencia el juego, pero el jugador puede presionar el control de audio del juego para recuperar el sonido. Es el control del juego que está anulando el comando externo de la SDK.

Por qué no supera la certificación

La SDK de Playables proporciona `ytgame.system.isAudioEnabled()` para comprobar el estado de audio actual y `ytgame.system.onAudioEnabledChange()` para escuchar los cambios. Los juegos deben confiar en estos en lugar de administrar su propio estado de audio paralelo que puede perder la sincronización.

🛠️ Cómo solucionar

Inicializar el estado de audio con

ytgame.system.isAudioEnabled()

al iniciar el juego, antes de reproducir cualquier sonido. Registrar

onAudioEnabledChange

y aplicar el nuevo estado de inmediato y de forma global cuando se active. Persistir el estado de silencio del SDK para que sobreviva a las recargas de la página: escríbelo en

ytgame.game.saveData()

para que el juego lo lea de nuevo en el siguiente lanzamiento. No permitir que los controles de audio en el juego anulen el estado del SDK; su botón interno solo debe funcionar cuando el SDK tenga el audio habilitado.

✅ Lista de verificación de pruebas

Pruebe esto específicamente: silenciar a través de la suite de pruebas, activar todos los eventos en el juego que tenga (menús, transiciones de nivel, reinicios, muertes) y confirmar que el audio permanece apagado en todo momento. Luego, actualice la página y confirme que permanece apagado después de la recarga.

Learn more

¿Listo para lanzar en YouTube Playables? Cree su cuenta y obtenga todo lo que necesita para publicar, monetizar y hacer crecer su juego a nivel global. [Comenzar](https://mcplay.mediacube.io/?utm_source=organic&utm_medium=banner&utm_campaign=blog)

[Comenzar](https://mcplay.mediacube.io/?utm_source=organic&utm_medium=banner&utm_campaign=blog)

Error #3: El progreso no se guarda entre sesiones

Cómo se ve

El jugador completa los niveles 1 al 5, cierra el navegador, vuelve a abrir el juego — y comienza de nuevo en el nivel 1, o peor, en el tutorial. No se guardó ningún progreso. El juego estaba almacenando el estado en localStorage o en una variable de sesión, ambos de los cuales se borran al cerrar o no están disponibles en el entorno de Playables.

Por qué no supera la certificación

YouTube Playables no permite que los juegos utilicen el almacenamiento local del navegador o servidores de guardado externos. Todos los datos de juego persistentes deben pasar por el SDK de Playables: `ytgame.game.saveData()` y `ytgame.game.loadData()`. Los juegos que no implementen esto perderán el progreso del jugador en cada sesión, lo que es una bandera de rechazo inmediata.

🛠️ Cómo arreglar

Reemplace cualquier

localStorage.setItem()

/

getItem()

llamadas con

ytgame.game.saveData()

y

ytgame.game.loadData()

. Estos aceptan una cadena serializada de hasta 3MB — serialice su estado de guardado como JSON, cárguelo al inicio y escríbalo cada vez que se realice un progreso significativo (completar nivel, punto de control, logro significativo). No espere hasta que la sesión termine para guardar y usar

onPause

como un desencadenador de guardado adicional, ya que el juego puede cerrarse desde la pausa.

💡 Consejo profesional

Si tu juego fue originalmente construido para móviles o escritorio con un sistema de guardado en la nube o almacenamiento de dispositivo, dedica tiempo a refactorizar esto. Es una de las fuentes de retraso más comunes para certificar una versión móvil en Playables.

Error #4: El juego intenta cargar activos desde URLs externas

Cómo se ve

El juego no se carga o se carga parcialmente con música, activos visuales o audio silencioso cuando se ejecuta en el entorno de Playables. En la consola del navegador, ves errores de red: solicitudes a CDNs externos, servidores de activos, API de música de transmisión o proveedores de fuentes de terceros que están siendo bloqueados.

A veces es obvio (el juego fue construido para transmitir su banda sonora desde un servicio externo), y a veces es sutil (una fuente web cargada desde Google Fonts, un píxel de análisis, un atlas de sprites único alojado en un CDN que nunca se incluyó en la compilación).

Por qué no pasa la certificación

YouTube Playables opera en un entorno aislado. No se permiten llamadas a API externas ni solicitudes a dominios externos. Todo lo que el juego necesita para ejecutarse debe estar incluido en la compilación en sí. Esto incluye: archivos de audio, atlas de texturas, fuentes, cadenas de localización, archivos de configuración y cualquier script de terceros.

🛠️ Cómo solucionar

Antes de enviar, abre la pestaña

Red

de tu navegador y ejecuta el juego por completo: pantalla de carga, menú principal, juego, muerte/juego terminado y transiciones de nivel. Filtra cualquier solicitud que vaya a dominios externos. Incluye esos activos localmente, o si son servicios de terceros (análisis, anuncios que no sean del SDK de YouTube), elimínalos por completo. Realiza la misma comprobación después de cada actualización de compilación.

📌 Mejor práctica

El SDK de YouTube Playables es la única dependencia externa permitida. Todo lo demás debe ser autocontenido. Esto incluye la música. Si tu juego utiliza una biblioteca de música de streaming, deberás empaquetar los archivos de audio directamente en la compilación.

Error #5: Los botones de anuncios recompensados están conectados de manera incorrecta

Cómo se ve

El desarrollador agregó un botón de anuncio recompensado, a menudo como una adición tardía específicamente para Playables, porque el juego original no tenía un mecanismo de recompensa. El botón aparece en la interfaz de usuario, parece correcto, pero al presionarlo no hace nada. No se solicita anuncio y no se otorga recompensa. A veces, el botón activa visualmente (una animación de toque) pero la llamada a `requestRewardedAd()` está ausente, colocada en el punto de ciclo de vida incorrecto o la promesa no se maneja.

Una falla relacionada: el anuncio recompensado se dispara, el usuario ve el anuncio, pero la recompensa nunca se entrega realmente — el valor de retorno de `isRewardEarned` no se verifica, o el código de entrega de recompensa está escrito pero nunca se conecta al controlador del botón.

Por qué no supera la certificación

La suite de pruebas de certificación de Playables verifica explícitamente que las solicitudes de anuncios recompensados completen su ciclo completo: se solicita el anuncio, se muestra y se otorga la recompensa condicionalmente en función del valor de retorno. Un botón que no produce un anuncio al presionarlo es un fallo de certificación.

🛠️ Cómo solucionar

Si los anuncios recompensados son nuevos en la mecánica de tu juego, no los agregues como un elemento de interfaz de usuario cosmético y envíalos. Construye y prueba el flujo completo primero. Utiliza la suite de pruebas de Playables en modo de sandbox para verificar que se dispara la solicitud de anuncio, se resuelve la promesa y se ejecuta la rama de recompensa. Si tu juego genuinamente no tiene un mecanismo que admita una recompensa (no hay moneda consumible, no hay sistema de vidas, no hay momento evitable), considera omitir los anuncios recompensados en lugar de implementar un stub roto.

🎮 MC Play Insight

Los anuncios recompensados agregados en el último minuto específicamente para Playables son la fuente más común de integraciones de anuncios rotos que vemos. Si estás adaptando esta función, dale la misma atención de prueba que le darías a la jugabilidad principal.

Learn more

Publica tu juego en YouTube Publica juegos más rápido, administra la monetización, recibe pagos rápidos y seguros en todo el mundo y obtén soporte técnico premium de un equipo que ayuda a los desarrolladores a crecer a nivel global. [Aplicar ahora](https://mediacube.io/en/form?form=cta&page=playables)

[Aplicar ahora](https://mediacube.io/en/form?form=cta&page=playables)

Error #6: Los cambios de orientación rompen el diseño

Cómo se ve — dos variantes

Variante A: el contenido se recorta. El juego gira correctamente cuando el dispositivo cambia entre retrato y paisaje, pero los elementos cerca de los bordes se cortan. El lienzo del juego se escala, pero la capa de la interfaz de usuario no se vuelve a posicionar para coincidir, por lo que los botones terminan detrás del área segura, el texto está parcialmente oculto o la ventana del juego recorta el contenido que estaba dentro de los límites antes de la rotación.

Variante B: el lienzo gira, la interfaz de usuario no. El juego adapta su lienzo a la nueva orientación correctamente, pero los iconos, los elementos HUD y los botones permanecen en sus posiciones de píxel originales que ahora son incorrectas para las nuevas dimensiones de la pantalla. En una pequeña pantalla móvil al cambiar a modo retrato, un botón que estaba cómodamente tamaño en modo paisaje se convierte en un objetivo de toque pequeño y no responde.

Por qué es importante

YouTube Playables se ejecuta en una amplia gama de dispositivos y relaciones de aspecto. Los jugadores se mueven entre orientaciones de forma fluida. Un juego que se rompe al cambiar la orientación crea una experiencia frustrante y recibirá una puntuación de compromiso más baja del algoritmo, lo que afecta directamente el descubrimiento.

🛠️ Cómo solucionar

Utilice patrones de diseño responsivos: ancle los elementos de la interfaz de usuario a los bordes de la pantalla utilizando posicionamiento relativo (porcentajes o flexbox), no valores de píxel absolutos. Pruebe ambas orientaciones explícitamente con la emulación de dispositivos de las herramientas de desarrollo del navegador. Preste atención a los bordes de inserción de área segura en dispositivos móviles: el notch y la barra inferior pueden cambiar el espacio disponible entre orientaciones. Si su juego está diseñado solo para una orientación, bloquéelo explícitamente y comúniquelo en su envío de compilación.

📋 Consejo de prueba

El manejo de la orientación es fácil de pasar por alto durante el desarrollo cuando principalmente está probando en un navegador de escritorio. Incorpórelo en su lista de verificación de prueba estándar.

Error #7: El juego sigue ejecutándose durante anuncios intersticiales

Cómo se ve

Se dispara un anuncio intersticial, aparece la superposición del anuncio en la pantalla, pero el juego continúa ejecutándose en segundo plano. El jugador no puede ver qué está sucediendo, pero el bucle del juego sigue activo. En un juego de rompecabezas, esto es ligeramente molesto (el temporizador avanza mientras el jugador ve un anuncio). En un juego de acción o supervivencia, es un error que termina la sesión: el personaje recibe daño, los enemigos avanzan y para cuando el anuncio termina, el jugador está muerto sin poder haber reaccionado.

Por qué es importante

Los anuncios intersticiales requieren que la atención del jugador esté en el anuncio, no en el juego. Un juego que no se pausa durante un anuncio está penalizando al jugador por el evento de monetización, lo cual es exactamente lo contrario de una buena experiencia del jugador. YouTube espera que los juegos se pausen durante todos los eventos de anuncios.

🛠️ Cómo solucionar

Tratar una solicitud de anuncio intersticial de la misma manera que una señal de pausa. Antes de llamar a

requestInterstitialAd()

, guardar el estado del juego y suspender el bucle del juego. Después de que se resuelve la promesa (ya sea que se mostrara un anuncio o no), reanudar. Manejar errores con la misma lógica de reanudación: el juego nunca debe quedar en un estado suspendido debido a un error de anuncio.

El patrón de implementación:

  • `pauseGame(); //` detener bucle del juego y entradas
  • `try { await ytgame.ads.requestInterstitialAd(); } catch (e) { / manejar con gracia / }`
  • `resumeGame(); //` siempre reanudar, independientemente del resultado

🎮 Consejo específico del género

Esto es especialmente crítico para supervivencia, corredor sin fin, defensa de torres y cualquier género en tiempo real donde el estado del juego cambia solo con el tiempo. Si tu tipo de juego se ajusta a esta descripción, prueba el flujo de intersticiales explícitamente en condiciones de juego.

Error #8: El juego solo funciona en modo pantalla completa

Cómo se ve

El juego renderiza una pantalla negra, un bucle de carga que nunca se completa o un diseño distorsionado al iniciarse en el reproductor incrustado de Playables estándar. Abrir la misma compilación en modo pantalla completa hace que todo funcione correctamente. El juego se construyó asumiendo la disponibilidad de pantalla completa, y el reproductor de Playables no la garantiza.

Esto es común en compilaciones portadas desde aplicaciones móviles que usaron un lanzamiento forzado en pantalla completa, o desde juegos de escritorio donde el desarrollador siempre probó en una ventana de navegador maximizada.

Por qué no supera la certificación

YouTube Playables ejecuta juegos en un contenedor incrustado dentro de la interfaz de YouTube. El juego debe renderizarse correctamente en cualquier dimensión y relación de aspecto que proporcione el contenedor. El modo pantalla completa puede estar o no disponible dependiendo del dispositivo, plataforma y contexto del usuario. Un juego que requiere pantalla completa para funcionar no puede superar la certificación.

🛠️ Cómo solucionar

Elimina cualquier requisito de pantalla completa de la inicialización de tu juego. Diseña el diseño para que funcione en las dimensiones proporcionadas por el contenedor. Usa los eventos de cambio de tamaño y orientación del lienzo para adaptarte dinámicamente. Prueba tu juego en una ventana de navegador resizable en varios tamaños. Si la pantalla completa es una función que deseas ofrecer (como una opción, no como un requisito), impléntala como un elemento de interfaz de usuario opt-in, no como una dependencia de lanzamiento.

Lista de verificación previa a la presentación

Antes de enviar tu compilación para precertificación, pasa por esta lista:

Pausa:

Activar pausa a través de la suite de pruebas de Playables. Confirmar que el bucle del juego se detiene, las animaciones se congelan, las entradas están bloqueadas y no se activan acciones en cola al reanudar.

Silenciar:

Silenciar a través de la suite de pruebas. Abrir todas las pantallas y activar todos los eventos del juego mientras está silenciado. Actualizar la página mientras está silenciado. Confirmar que el audio permanece apagado durante todo el proceso.

Guardados:

Completar varios niveles, cerrar el navegador por completo, volver a abrir y confirmar que el progreso se restauró mediante ytgame.game.loadData().

Red:

Abrir la pestaña de red del navegador y ejecutar el juego completo. Cero solicitudes a dominios externos (excepto el SDK de YouTube). Incluir todo localmente.

Anuncios recompensados:

Si se implementan, presionar todos los botones de anuncios recompensados y confirmar el ciclo completo: anuncio solicitado, anuncio mostrado (en la sandbox de la suite de pruebas), recompensa entregada.

Orientación:

Probar retrato y paisaje en la emulación de dispositivos móviles. Todos los elementos de la interfaz de usuario visibles, correctamente dimensionados y completamente táctiles en ambas orientaciones.

Interstitials:

Dispara un interstitial durante el juego activo. Confirma que el juego se pausa antes del anuncio y se reanuda correctamente después.

Tamaño del contenedor:

Prueba en una ventana del navegador que no sea de pantalla completa en varios tamaños. El juego debe renderizarse correctamente sin requerir el modo de pantalla completa.

Cómo te ayudamos a pasar la certificación más rápido

Cuando publicas a través de Mediacube, ejecutamos una pasada de pre-certificación completa utilizando nuestra plataforma interna MC Play antes de que tu build llegue a YouTube. Nuestro equipo de QA verifica cada elemento de la lista anterior y detecta problemas antes de que se conviertan en ciclos de rechazo.

Nuestro plazo de construcción a vivo más rápido es de 2 días hábiles. Un build bien preparado sin problemas de QA suele ir en vivo dentro de una semana. Si se encuentran problemas durante la pre-certificación, te damos un informe detallado (bugs específicos, pasos de reproducción y soluciones recomendadas) para que tu equipo sepa exactamente qué abordar.

Hemos sido un socio oficial de YouTube desde 2015 y hemos estado publicando en Playables desde septiembre de 2025. Cada juego en nuestro portafolio ha pasado por este proceso. Sabemos qué busca el equipo de certificación de YouTube y sabemos cómo hacer que los builds pasen.

Inicia la conversación y aplica aquí .

Do you want to stay up to date with all the news?

Subscribe to the newsletter from Mediacube

Try now