Doors.city
Marketplace de puertas + automatización de ads controlada por costo.
Sitio de comercio Drupal para puertas blindadas e interiores con configurador custom, junto con automatización Google Ads en Symfony 7 que corre campañas Search controladas por costo contra una región ucraniana. Objetivo: CPC < 3 UAH, CPA < 120 UAH, cero spend desperdiciado.
- Sector
- Comercio · Ucrania
- Tecnologías
- Drupal 10 · Constructor React · /sklad-export.json · Symfony 7.1 · PostgreSQL 16 · google-ads-php v18+ · Claude API · gtag.js · Hetzner CX22 · UI ucraniana

- Modelos de puertas
- 109
- CPC objetivo
- < 3 ₴
- CPA objetivo
- < 120 ₴
- Spend desperdiciado
- 0
Marketplace + motor de ads, cableados juntos
Doors.city es un sitio de comercio Drupal para puertas blindadas e interiores con configurador custom, grid de precios de entrega, y un constructor (React) que permite a compradores diseñar una puerta antes de ordenar. El catálogo expone un feed `/sklad-export.json` para herramientas downstream.
Sobre ese catálogo se sienta una app Symfony 7 de automatización Google Ads que ingesta el feed JSON, corre `KeywordPlanIdeaService` contra los nombres de producto, genera candidatos de campaña + ad-group + ad-copy, y corre un optimizador nocturno que pausa cualquier keyword con ≥ 30 clicks y 0 conversiones.
El objetivo no es "publicar ads" — es el CPA más bajo alcanzable por un operador en una región ucraniana. Manual CPC con biblioteca de keywords negativas le gana a PMax hasta que tengas ≥ 30 conversiones/mes para alimentar Target CPA.
Correr Google Search Ads rentables para 109 SKUs contra una región ucraniana sin un marketer pago — y mantener spend desperdiciado (≥30 clicks, 0 conversiones) en cero, automáticamente.
Drupal commerce + feed JSON de productos + orquestador Google Ads en Symfony 7. Keyword Planner via google-ads-php, biblioteca de negativos, copy RSA generado por Claude API (operador confirma antes de publicar), optimizador nocturno de bids, y tracking de conversiones gtag.js en la tienda.
Nueve piezas que lo mantienen unido
- 01
Catálogo Drupal commerce
109 modelos de puertas con taxonomía completa (material, serie, dimensiones, niveles de precio, fotos). PHP 8.3, MariaDB, multi-idioma ready.
- 02
Configurador de puertas
SPA React montada en el sitio Drupal permite a compradores configurar dimensiones, acabado, cristal y herrajes antes de cotizar. Comparte taxonomía Drupal.
- 03
Feed /sklad-export.json
Endpoint único expone el catálogo completo con deltas incrementales `?since=`. Usado por el orquestador Symfony y Google Merchant Center (fase 3).
- 04
Orquestador ads Symfony 7
PHP 8.3 + PostgreSQL 16 corriendo en una caja Hetzner separada de €4. Modelo de datos multi-tenant: cuentas Google Ads arbitrarias × feeds fuente.
- 05
UI Keyword Analyzer
KeywordPlanIdeaService + GenerateKeywordHistoricalMetrics envueltos en UI admin mostrando volumen / rango CPC / competencia / tendencia por keyword.
- 06
Biblioteca de keywords negativas
Negativos curados ("барато", "usado", "reparación") + overrides por campaña + auto-sugerencias de reportes de spend desperdiciado.
- 07
Asistente AI de ad copy
Claude API genera candidatos de headline/descripción RSA desde metadata de producto. Operador elige de shortlist; nada se publica sin confirmación.
- 08
Motor de optimización de bids
Runner nocturno de reglas: sube / baja / pausa bids por CPA, ROAS, CTR, quality score. Wasted-spend killer: 30 clicks 0 conversiones → auto-pausa.
- 09
Tracking de conversiones
gtag.js en doors.city trackea clicks en teléfono, envíos de formulario, y vistas de página gracias. Realimenta Target CPA cuando volumen cruza 30 conv/mes.
Dos cajas, un feed
doors.city corre en el host Drupal existente. La automatización Google Ads está aislada en su propia caja Hetzner CX22 de €4 para que un deploy Symfony no tumbe la tienda. PostgreSQL 16, gRPC via php-grpc a Google Ads API v18+.
- Drupal 10
- Catálogo commerce · taxonomía · PHP 8.3
- Constructor React
- Configurador de puertas en Drupal
- /sklad-export.json
- Feed incremental de catálogo
- Symfony 7.1
- Orquestador Google Ads · Doctrine ORM
- PostgreSQL 16
- Mirror de campañas + productos
- google-ads-php v18+
- gRPC · Keyword Planner · Search Ads
- Claude API
- Generación de candidatos RSA
- gtag.js
- Conversiones teléfono + form + gracias
- Hetzner CX22
- Caja dedicada €4/mes · aislada de Drupal
- UI ucraniana
- uk_UA en todo · inglés solo en logs
¿Necesitas ads rentables sobre un catálogo ajustado?
La mayoría del tooling Google Ads asume que tienes un equipo de marketing y presupuestos escala-PMax. Este stack está construido para un operador y una región — el formato más barato controlable, automatizado donde no rompe atribución.
Window Calculator Builder
Calculadora de precios de ventanas y constructor de pedidos

Hablemos.
Cuéntanos qué estás construyendo. Recibirás respuesta y una primera estimación en 24 horas.
Rellenar el brief →