12 de octubre de 2026 · En Mercadito
Grabar la carta real sin tocar los datos del piloto
Para los reels de Mercadito había que enseñar la carta de verdad, con sus fotos, sus precios y el botón de pedir. Pero cada vez que alguien la abre, el piloto lo anota, y en una tabla de sólo altas lo anotado se queda.
Los vídeos cortos de Mercadito para Instagram y Facebook tenían que ser la carta real de los negocios, no una maqueta: abrirla, elegir, tocar «Pedir por WhatsApp». El problema es que eso es justo lo que mide el piloto. Abrir la carta manda una «vista»; pedir manda un «pedido» con sus productos, que suma también al «Más vendidos» del negocio. Las dos cosas van a menu_eventos, una tabla de la que nada se borra: una toma repetida diez veces son diez aperturas que nunca pasaron, para siempre en la serie que se va a analizar.
La grabación se hace con Chrome sin ventana, controlado por su protocolo de depuración y cuadro a cuadro, y el mismo protocolo deja detener cada petición antes de que salga. La regla es una: lo que no sea leer no sale de la computadora. Se contesta ahí mismo con un {ok: true}, la página cree que quedó anotado y sigue como siempre. Y el enlace a WhatsApp se corta con un 204: la página no se va, y del enlace se lee el mensaje que armó la carta, que es justo el que sale en pantalla en uno de los reels.
on('Fetch.requestPaused', ({ requestId, request }) => {
// el enlace a WhatsApp no sale: de él se lee el mensaje que armó la carta
if (request.url.startsWith('https://wa.me/')) {
registro.whatsapp.push(request.url);
return cdp('Fetch.fulfillRequest', { requestId, responseCode: 204 });
}
// lo que no es leer se contesta aquí: la vista y el pedido nunca llegan
if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method)) {
registro.contestadosAqui.push(request.method + ' ' + request.url);
return cdp('Fetch.fulfillRequest', {
requestId, responseCode: 200, body: btoa('{"ok":true}') });
}
return cdp('Fetch.continueRequest', { requestId });
});Cinco reels, cero eventos en el servidor: cada toma terminó con su auditoría en «llegaron al servidor: 0». Por el camino salieron las trampas de grabar una página que no está hecha para grabarse:
- Las secciones usan
content-visibility: auto: lo que está fuera de pantalla no se pinta, y su posición y su texto salen mal hasta que se pinta. Para medir dónde está cada producto, antes de grabar se fuerza el pintado. - Las fotos son perezosas y algunas pesan varios megas: se piden todas antes y se espera a que se decodifiquen, para que ningún cuadro salga con una foto a medias.
- Del directorio a la carta no hay evento
load: la navegación es del lado del cliente. Se espera a que cambie la dirección. - Una de las cartas abre de 7 a 10 de la noche y antes dice «Cerrado ahora». La toma se programó con
sleeppara las 19:05 y empezó a las 20:10: en macOS, el reloj desleepse detiene mientras la Mac duerme.
La regla de fondo es la misma de todo el piloto: un instrumento que se vigila a sí mismo. Si la carta sirve también para promocionar, la promoción no puede volverse ruido en la medición.