> ## 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.

# Restoo Connect

> Conecta Restoo con GA4, Google Ads, Meta Pixel, TikTok Pixel, OpenAI Pixel o Google Tag Manager, con el consentimiento del visitante aplicado destino a destino.

Restoo Connect traduce los [eventos del widget de Restoo](/es/widget/events) a las llamadas nativas que esperan tus plataformas de analítica y publicidad. Puede enviar eventos directamente a **Google Analytics 4**, **Google Ads**, **Meta Pixel**, **TikTok Pixel** y **OpenAI Pixel**, o enviar los datos equivalentes a **Google Tag Manager**.

**Activa los destinos que uses [en tu cuenta de Restoo](/es/widget/integrations) y Restoo Connect se encarga del resto**: convierte cada evento en la llamada que espera cada plataforma y **aplica el consentimiento del visitante** destino a destino. Tú recoges el consentimiento; **averiguar qué puede recibir cada plataforma ya está hecho**.

## Antes de empezar

Lo que tienes que preparar depende de **dónde reserva tu cliente**, porque eso decide quién carga las etiquetas de medición.

**Si el widget está incrustado en tu web**, las etiquetas las tienes en tu página y Restoo Connect solo reenvía a las que ya estén ahí: **no instala ninguna**, tampoco dentro del iframe. Cada destino necesita la suya instalada y cargada **antes** de Restoo.js; si no, se pierden los primeros eventos. Y el consentimiento lo recoges tú: se lo pasas con [`setConsent()`](/es/widget/advanced-installation#setconsent-signals) o declarando tu [plataforma de consentimiento](/es/widget/consent#qué-es-una-plataforma-de-gestión-de-consentimiento).

**Si tus clientes reservan en la página alojada por Restoo**, no tienes que preparar nada en tu web: Restoo carga las etiquetas que tengas configuradas en tu cuenta —GA4, Google Ads, Meta Pixel, TikTok Pixel y OpenAI Pixel— y recoge el consentimiento con su propio aviso de cookies. La excepción es Google Tag Manager, que no se carga nunca en las páginas alojadas por Restoo.

Cada destino dice lo que necesita en [su apartado](#destinos). Si su librería no está disponible, Restoo Connect registra una advertencia y se salta esa operación; los demás siguen funcionando.

<Note>
  **¿Ya gestionas tus etiquetas con Google Tag Manager?** Entonces no necesitas
  los destinos directos: [activa `gtm` en tu
  cuenta](/es/widget/integrations#google-tag-manager) y las etiquetas de tu
  contenedor reparten cada evento como ya hacían. Solo funciona con el widget en
  tu propia web, que es donde está tu contenedor. Y si necesitas más de lo que da
  este modelo, sáltate Restoo Connect y construye tu integración a partir de los
  [eventos del widget](/es/widget/events).
</Note>

Y no envía nada a un destino hasta conocer la decisión del visitante: cada uno necesita sus propias señales de consentimiento. En [Consentimiento](/es/widget/consent#requisitos-de-cada-destino) tienes las de cada destino, el requisito adicional de `customer_identified` y la única excepción, `gtm`.

## Desactivar un destino en una instalación

Lo único que puede declarar una página es **desactivar un destino aquí**, porque es lo único que tu cuenta no puede saber: si la librería de una plataforma está realmente instalada en esta página concreta.

```js theme={null}
widget.create({ connect: { gtm: false } });
```

**Parámetros**

<ParamField body="connect" type="object">
  Destinos que hay que desactivar para esta instalación. `false` es el único valor admitido:
  cualquier otro, incluido el nombre de un destino desconocido, se ignora y se registra como una
  advertencia en la consola.

  Merece la pena hacerlo en una página que no tenga instalada la librería de un destino: si se deja
  activado, cada evento que debería enviar se salta con una advertencia.

  <Expandable title="propiedades">
    <ParamField body="ga4" type="false">
      Deja de enviar a Google Analytics 4 desde esta instalación.
    </ParamField>

    <ParamField body="googleAds" type="false">
      Deja de enviar conversiones a Google Ads desde esta instalación.
    </ParamField>

    <ParamField body="metaPixel" type="false">
      Deja de enviar al Meta Pixel aquí, incluido el Advanced Matching.
    </ParamField>

    <ParamField body="tiktokPixel" type="false">
      Deja de enviar al TikTok Pixel desde esta instalación.
    </ParamField>

    <ParamField body="openaiPixel" type="false">
      Deja de enviar al OpenAI Pixel desde esta instalación.
    </ParamField>

    <ParamField body="gtm" type="false">
      Deja de enviar a `window.dataLayer` desde esta instalación.
    </ParamField>
  </Expandable>
</ParamField>

```html theme={null}
<!-- Carga los scripts de las plataformas activadas antes del widget de Restoo. -->
<script
  type="module"
  src="https://best-burger.myrestoo.net/js/restoo-widget"
></script>
<script>
  window.addEventListener("restoo:loaded", () => {
    window
      .Restoo("best-burger")
      .create({
        // Esta landing no tiene contenedor de GTM; el resto de destinos
        // vienen de la cuenta.
        connect: { gtm: false },
      })
      .bindTriggers();
  });
</script>
```

Restoo Connect se inicializa antes de que se emita el primer evento del widget. Si tu cuenta no tiene ningún destino activado —o esta instalación los desactiva todos—, **no se inicializa**: no sale ningún evento hacia ningún destino.

<Warning>
  No envíes el mismo evento al mismo destino dos veces. Si GTM reenvía los
  eventos de Restoo a una propiedad de GA4, no actives además el destino directo
  `ga4` para esa propiedad, ni al contrario: consulta [evitar conversiones
  duplicadas](/es/widget/bidding-optimization#evitar-conversiones-duplicadas-entre-ga4-google-ads-y-gtm).
</Warning>

## Destinos

Qué envía cada destino y qué necesita para recibirlo. Los identificadores y las etiquetas de conversión [se guardan en tu cuenta](/es/widget/integrations).

Lo que aparece como **«En tu página»** es lo que te toca a ti si lo incrustas en tu web; alojado en Restoo lo pone Restoo.

### Google Analytics 4

El destino `ga4`. Envía los eventos directamente mediante `gtag("event", …)`. En la [referencia de eventos de Google Analytics 4](/es/widget/connect-mappings#google-analytics-4) tienes las correspondencias de eventos y los modelos de datos.

**En tu página:** carga [`gtag.js`](https://support.google.com/analytics/answer/9539598) y configura tu [propiedad de GA4](https://support.google.com/analytics/answer/14183469) con `gtag("config", "G-…")`.

**En tu cuenta:** guarda el [ID de medición y declara para qué usas esa propiedad](/es/widget/integrations#google-analytics-4). Esa respuesta decide [qué consentimiento exige `ga4`](/es/widget/consent#ga4-con-una-propiedad-que-alimenta-publicidad); mientras no la des, Restoo aplica el caso estricto.

### Google Ads

El destino `googleAds`. Envía las conversiones directamente mediante `gtag`. El correo y el teléfono hasheados se adjuntan a través de las conversiones mejoradas de Google cuando están disponibles. En [Conversiones de Google Ads](/es/widget/connect-mappings#google-ads) tienes las correspondencias de conversiones y su configuración.

**En tu página:** carga `gtag.js` y configura tu [cuenta de Google Ads](https://support.google.com/google-ads/answer/6366720) con `gtag("config", "AW-…")`.

**En tu cuenta:** guarda [el ID de conversión y una etiqueta por acción](/es/widget/integrations#google-ads). Solo las acciones que tengan etiqueta disparan una conversión, y [qué dispara cada una](/es/widget/connect-mappings#google-ads) está en la referencia.

Cada reserva dispara **una sola** conversión de reserva —`booking_lead` o `booking_confirmed`, según el estado con el que nace—, así que nunca se cuenta dos veces. Ninguna de las dos envía `value` ni `currency`.

### Meta Pixel

El destino `metaPixel`. Envía los eventos de captación de leads admitidos mediante `fbq("trackSingle", pixelId, …)` y gestiona el Advanced Matching mediante `fbq("init", pixelId, userData)`. En la [referencia del Meta Pixel](/es/widget/connect-mappings#meta-pixel) tienes las correspondencias de eventos y sus parámetros.

**En tu página:** [instala el Meta Pixel](https://www.facebook.com/business/help/952192354843755) para que `fbq` esté disponible.

**En tu cuenta:** guarda el [ID del pixel](/es/widget/integrations#meta-pixel). Es lo que asocia el correo y el teléfono hasheados del cliente con ese pixel, así que decide quién recibe datos personales; por eso una página no puede apuntar este destino a otro sitio.

### TikTok Pixel

El destino `tiktokPixel`. Envía los eventos de captación de leads admitidos mediante `ttq.instance(pixelId).track(…)` y actualiza los datos de cruce del cliente mediante `ttq.instance(pixelId).identify(…)`. En la [referencia del TikTok Pixel](/es/widget/connect-mappings#tiktok-pixel) tienes las correspondencias de eventos y sus parámetros.

**En tu página:** [instala el TikTok Pixel](https://ads.tiktok.com/help/article/get-started-pixel) para que `ttq` esté disponible.

**En tu cuenta:** guarda el [ID del pixel](/es/widget/integrations#tiktok-pixel), obligatorio para poder activar este destino. Restoo Connect usa el `ttq` que ya está inicializado en tu página y acota cada llamada a ese pixel, así que los demás pixels de la página no reciben nada.

### OpenAI Pixel

El destino `openaiPixel`, el pixel de ChatGPT Ads. Envía los eventos de captación de leads admitidos mediante `oaiq("measureSingle", pixelId, …)` y fija los datos de cruce del cliente mediante `oaiq("init", { pixelId, user })`. En la [referencia del OpenAI Pixel](/es/widget/connect-mappings#openai-pixel) tienes las correspondencias de eventos y sus datos.

**En tu página:** [instala el OpenAI Pixel](https://developers.openai.com/ads/measurement-pixel) para que `oaiq` esté disponible. Ese SDK arranca con su propio consentimiento concedido, así que tu aviso de cookies tiene que llamar a `oaiq("consent", false)` antes del `init` y a `oaiq("consent", true)` cuando el visitante acepte, como indica [su documentación](https://developers.openai.com/ads/measurement-pixel#control-measurement-consent). Ese interruptor gobierna todo lo que tu página envíe a ese pixel y Restoo Connect no lo toca: aplica [el suyo](/es/widget/consent#requisitos-de-cada-destino), destino a destino.

**En tu cuenta:** guarda el [ID del pixel](/es/widget/integrations#openai-pixel), obligatorio para poder activar este destino. Restoo Connect usa el `oaiq` que ya está inicializado en tu página y acota cada llamada a ese pixel, así que los demás pixels de la página no reciben nada.

### Google Tag Manager

El destino `gtm`. Envía a `window.dataLayer` la correspondencia de eventos compatible con GA4. En la [referencia de Google Tag Manager](/es/widget/connect-mappings#google-tag-manager) tienes las correspondencias de eventos y dónde queda cada dato.

**En tu página:** instala tu [contenedor de GTM](https://support.google.com/tagmanager/answer/14847097) para que `window.dataLayer` esté disponible.

**En tu cuenta:** guarda el [ID de tu contenedor de GTM](/es/widget/integrations#google-tag-manager). GTM sigue siendo tuyo: Restoo no lo carga nunca.

**El consentimiento de tus etiquetas lo aplicas tú**, porque `window.dataLayer` no es un destino sino un enrutador: [qué exige `gtm` y qué no](/es/widget/consent#requisitos-de-cada-destino).

## Comprobar que los eventos se disparan

Antes de dar la instalación por buena, haz una reserva de prueba con la extensión de Chrome de cada plataforma y mira qué eventos aparecen. Las extensiones, la tabla de síntomas y lo que dice la consola están en [Diagnóstico](/es/widget/diagnostics).

## Siguientes pasos

<CardGroup cols={2}>
  <Card title="Mapeo de eventos" icon="table" href="/es/widget/connect-mappings">
    Las correspondencias completas de eventos, sus parámetros y la configuración
    de Google Ads.
  </Card>

  <Card title="Pujas y optimización" icon="bullseye" href="/es/widget/bidding-optimization">
    Elige hacia qué eventos optimizar las campañas en cada plataforma.
  </Card>
</CardGroup>
