> ## Documentation Index
> Fetch the complete documentation index at: https://restoo.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Diagnóstico

> Qué comprobar cuando un evento no llega a una plataforma, el widget no se ve como debería o las cifras no cuadran.

Cuando algo no llega, casi siempre es una de tres cosas: el consentimiento todavía no se ha informado, la librería de la plataforma no está en la página, o tu Content Security Policy está bloqueando algo en silencio.

Esta página empieza por el síntoma y te lleva a donde está el arreglo.

## Comprobar que los eventos se disparan

Antes de dar la instalación por buena, compruébala con la herramienta de cada plataforma: la extensión de Chrome que publica o, donde no la hay, la consola del navegador. Abre la página donde se reserva —la tuya, o la página alojada por Restoo—, haz una reserva de prueba y mira qué eventos aparecen.

| Destino                              | Extensión                                                                                                                                                                                                                                                        |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GA4, Google Ads y Google Tag Manager | [Google Tag Assistant](https://chromewebstore.google.com/detail/tag-assistant/kejbdjndbnbjgmefkgdddjlbokphdefk)                                                                                                                                                  |
| Meta Pixel                           | [Meta Ads Data Advisor](https://chromewebstore.google.com/detail/meta-ads-data-advisor/fdgfkebogiimcoedlicjlajpkdmockpc)                                                                                                                                         |
| TikTok Pixel                         | [TikTok Pixel Helper](https://chromewebstore.google.com/detail/tiktok-pixel-helper/aelgobmabdmlfmiblddjfnjodalhidnn)                                                                                                                                             |
| OpenAI Pixel                         | OpenAI no publica ninguna. Añade `debug: true` al `init` del pixel y mira la consola —líneas `[oaiq]`— o la pestaña Red filtrando por `bzr.openai.com`: [resolución de problemas del pixel](https://developers.openai.com/ads/measurement-pixel#troubleshooting) |

Las extensiones leen las etiquetas de la página que las tiene, que es donde reenvía [Restoo Connect](/es/widget/connect), así que el iframe del widget no te oculta nada.

<Note>
  **Acepta el consentimiento antes de dar un evento por perdido.** Restoo Connect
  no envía nada hasta conocer la decisión del visitante, así que en una página con
  aviso de cookies sin responder no verás absolutamente nada, y eso es el
  comportamiento correcto.
</Note>

## Síntomas y causas probables

| Síntoma                                                                      | Causa probable                                                                                                                                                                                                                                                              |
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| No llega nada a ninguna plataforma                                           | El consentimiento nunca se informó: no hay [`cmp`](/es/widget/advanced-installation#param-cmp) declarada y no se llama a [`setConsent()`](/es/widget/advanced-installation#setconsent-signals)                                                                              |
| GA4 mide, pero las plataformas de publicidad están vacías                    | Alguna de las tres señales de publicidad está denegada, y [se exigen las tres](/es/widget/consent#requisitos-de-cada-destino) para cada evento                                                                                                                              |
| Llegan conversiones a GA4, pero las tasas de cruce son malas                 | `ad_user_data` denegada, así que [no se envía la identidad del cliente](/es/widget/consent#identidad-del-cliente)                                                                                                                                                           |
| GA4 no recibe nada aunque el visitante acepte todo                           | Falta [declarar para qué usas la propiedad](/es/widget/integrations#google-analytics-4). Sin esa respuesta, `ga4` no se activa                                                                                                                                              |
| Un destino no recibe nada y los demás sí                                     | Su librería no está cargada en la página —lo dice la consola— o el destino está [desactivado en esta instalación](/es/widget/connect#desactivar-un-destino-en-una-instalación)                                                                                              |
| Los primeros eventos se pierden y los siguientes llegan                      | Restoo.js carga **antes** que la librería de la plataforma: [tiene que ir después](/es/widget/connect#antes-de-empezar)                                                                                                                                                     |
| Tus colores y tipografías son los de por defecto, y ningún destino se activa | Tu CSP bloquea `connect-src`, así que el widget no puede leer los ajustes de tu cuenta: consulta [Content Security Policy](/es/widget/advanced-installation#notas-para-integradores)                                                                                        |
| El widget integrado no ajusta su altura al contenido                         | Tu CSP bloquea los scripts en línea, que es como se carga el redimensionador                                                                                                                                                                                                |
| Las conversiones llegan duplicadas                                           | Dos caminos activos hacia el mismo destino: [evitar conversiones duplicadas](/es/widget/bidding-optimization#evitar-conversiones-duplicadas-entre-ga4-google-ads-y-gtm)                                                                                                     |
| Un contacto cuenta como dos                                                  | La métrica filtra por `action_category` y no por `action_option`: [`action_taken`](/es/widget/events#actiontaken) emite uno al abrir el menú y otro al elegir el canal                                                                                                      |
| La campaña no se atribuye si el visitante navega antes de reservar           | Falta [Restoo Attribution Transfer](/es/widget/attribution-transfer) en todas las páginas, o su consentimiento                                                                                                                                                              |
| El OpenAI Pixel no recibe nada y los demás destinos sí                       | El ID guardado en tu cuenta no es el del pixel inicializado en la página —`measureSingle` descarta el evento sin avisar—, o el SDK conserva una negativa anterior de su propio consentimiento: comprueba que tu aviso de cookies llama a `oaiq("consent", true)` al aceptar |

## Lo que dice la consola

Restoo avisa por la consola del navegador cada vez que se salta una operación, y dice por qué. Todos los mensajes van prefijados, así que filtrando por `Restoo` los ves todos:

| Prefijo            | De dónde viene                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------------------- |
| `[Restoo]`         | Restoo.js: el montaje del widget, la lectura del CMP y la carga de Restoo Connect                   |
| `[RestooConnect]`  | El reenvío a cada destino: consentimiento que falta, librería que no está, configuración incompleta |
| `[Restoo consent]` | Una señal de consentimiento con un nombre o un valor que no se reconoce                             |

Dos avisos que conviene saber leer:

* **«Events discarded: consent has not been informed»** — no es un error de instalación, es que falta llamar a [`setConsent()`](/es/widget/advanced-installation#setconsent-signals) o declarar tu [`cmp`](/es/widget/advanced-installation#param-cmp). Sale una sola vez por carga.
* **«… event skipped: `gtag` / `fbq` / `ttq` is not available»** — el destino está activado en tu cuenta pero su librería no está en esta página. O la instalas, o [desactivas el destino aquí](/es/widget/connect#desactivar-un-destino-en-una-instalación).

<Warning>
  **`connect-src` es el que falla más callado.** Sin él el widget se carga y sigue
  aceptando reservas, pero no puede leer los ajustes de tu cuenta: tu marca vuelve
  a los valores por defecto y **ningún destino de analítica se activa nunca**, sin
  un solo error en ninguna parte. Si tu web tiene una CSP, es lo primero que hay
  que revisar.
</Warning>

## Siguientes pasos

<CardGroup cols={2}>
  <Card title="Restoo Connect" icon="chart-line" href="/es/widget/connect">
    Qué necesita cada destino en tu página para poder recibir los eventos.
  </Card>

  <Card title="Consentimiento" icon="shield-check" href="/es/widget/consent">
    Qué exige cada destino, señal a señal, y qué significa «desconocido».
  </Card>
</CardGroup>
