Panel de campañas cruzado con las ventas reales
Un panel que baja el gasto de Meta por campaña y lo cruza contra las ventas del CRM, para decidir con euros cobrados y no con la atribución de la plataforma.
El Administrador de Anuncios te dice lo que él cree que ha vendido. El CRM te dice lo que ha cobrado la empresa. Casi nunca coinciden, y si tomas las decisiones de presupuesto mirando solo el primero acabas escalando el anuncio equivocado.
Este panel resuelve eso. Un proceso en Node consulta la Graph API de Meta y guarda en PostgreSQL el gasto, las impresiones, los clics y los registros de cada campaña, conjunto y anuncio. Por otro lado entran las ventas del CRM. Las dos fuentes se unen por UTM, así que para cada anuncio se puede responder la única pregunta que importa: cuánto costó y cuánto facturó.
Decisiones de diseño que cambiaron el resultado:
· Guardar las métricas en mi propia base de datos en vez de llamar a la API cada vez que alguien abre el panel. La cuota de la API de Meta es limitada y un panel que la consume en cada carga se cae el día que más lo necesitas. Además permite comparar contra días pasados, que es la mitad del trabajo.
· La unión se hace por UTM, no por el píxel. El píxel se pierde con los bloqueadores y con iOS; la UTM viaja dentro de la URL y llega al CRM.
· Interfaz en Next.js servida con pm2 detrás de Nginx, con la vista por campaña y la vista por anuncio separadas, porque son dos decisiones distintas: una es de presupuesto y la otra es de creatividad.