AD

Google Ads Source & Reasoning Lab

Contrato visual: evidencia pagada → reconciliación → razonamiento → decisión humana.

Agent 0.5.2 · paid signals

Google Ads entra como fuente. No como estratega.

Este Lab separa dos responsabilidades que no deben mezclarse: leer y normalizar señales reales de Google Ads y razonar después sobre SEO + Ads. El collector es read-only y no cambia campañas. The Thinker recibe evidencia reconciliada y puede producir una recomendación que pasa por revisión humana.

LAB ONLY · no API calls · no Supabase writes
Collector actualStub / not implemented
Conexión objetivoAdmin multi-account
Persistencia objetivoSnapshots Ads dedicados
DecisiónThinker + Human Review
Flujo canónico

1 · Google Ads Source

Autorización, descubrimiento de cuentas y lectura read-only.

oauth_identitycustomer_idlogin_customer_idaccount_path
  • Una identidad Google puede descubrir varias cuentas accesibles.
  • La asignación es cuenta Ads ↔ proyecto.
  • MCC/subcuenta queda explícito, no inferido.
  • Una cuenta no se considera conectada hasta superar test de lectura.
→

2 · The Scout / Collector

Recolecta hechos y los normaliza. No interpreta estrategia.

campaignad_groupkeyword_textsearch_termlanding_urlimpressionsclickscostconversionsconversion_value
  • Purchased keyword y search term permanecen separados.
  • Fechas, dispositivo, país y red se conservan.
  • Sin fuente disponible: continúa y registra ausencia.
→

3 · Paid Search Reasoning Lens

Cruza Ads con señales orgánicas y negocio sin mutar campañas.

Ads + GSCAds + GA4Ads + SemrushAds + Web
  • Demanda pagada que convierte pero no tiene cobertura SEO.
  • Coste alto en términos donde orgánico ya es fuerte.
  • Landing Ads rentable sin equivalente orgánico adecuado.
  • Desalineación entre intención, landing, search term y URL SEO.
  • Brand / non-brand como dimensión explícita, no supuesto.
→

4 · Thinker → Human Review

La salida es una decisión o recomendación, nunca una ejecución automática.

ads_recommendationseo_opportunitylanding_gapneeds_review
  • Puede recomendar investigar, mantener, crear activo SEO o probar paid.
  • No pausa, activa ni edita campañas.
  • No cambia pujas ni presupuesto.
  • No publica sin aprobación.
Modelo de conexión para esta tarde

Identidad Google

Credencial OAuth reutilizable para descubrir cuentas. No equivale a una cuenta Ads concreta.

Cuenta accesible

`customer_id`, nombre, tipo manager/no-manager y ruta de acceso. Todavía no está asignada a un proyecto.

Asignación a proyecto

Proyecto + `customer_id` + `login_customer_id` cuando aplique + estado del test de lectura.

Estados que debe mostrar Admin

not_configured

No hay cuenta Ads elegida para el proyecto.

configured_unverified

Hay `customer_id`, pero Traxxo todavía no ha confirmado lectura válida.

connected

La cuenta existe, la ruta de acceso es válida y el test read-only funciona.

connected_no_data

Lectura válida, pero el rango consultado no contiene datos. No mostrar ceros como si fueran métricas reales.

error

Token, permisos, developer token, customer path o API request fallan.

stale

Hubo datos válidos, pero su frescura ya no cumple el umbral definido.

Contrato de salida mínimo del collector
google_ads_signal { project_id source_account_id login_customer_id? campaign_id campaign_name campaign_status ad_group_id? ad_group_name? keyword_text? // palabra comprada por el anunciante search_term? // consulta real del usuario match_type? final_url? impressions clicks cost_micros conversions conversion_value device? country? network? date collected_at }
Límites

Permitido en v1

  • Leer cuentas y jerarquía accesible.
  • Seleccionar una cuenta para un proyecto.
  • Ejecutar test read-only.
  • Guardar snapshots de evidencia pagada.
  • Cruzar señales en capas posteriores.

Bloqueado en v1

  • Crear o editar campañas.
  • Pausar/activar anuncios o keywords.
  • Cambiar pujas o presupuestos.
  • Interpretar un cero placeholder como dato real.
  • Fusionar `keyword_text` y `search_term` sin trazabilidad.