> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/dapta-docs-es/dforms/connect/tracking-and-pixels.md).

# Seguimiento y píxeles

Añade Google Tag Manager, el píxel de Meta, PostHog o el código de seguimiento de HubSpot a la página pública de un formulario, entiende cuándo se dispara cada etiqueta, incluida la conversión Lead de

**Seguimiento y píxeles** te permite medir el tráfico que llega a un formulario con las herramientas que ya usas. Pegas un ID, publicas, y la etiqueta correspondiente se carga en la página pública del formulario. En el editor no se carga nada, y tampoco se carga nada de una herramienta cuyo ID dejaste vacío.

Esto es opcional. dForms ya cuenta por su cuenta vistas, inicios, respuestas y abandono en [Analíticas](/dapta-docs-es/dforms/results/analytics.md); los IDs de seguimiento sirven para coser el tráfico del formulario a tus propios informes de campaña.

***

**Paso 1:** Abre el formulario en el editor y haz clic en la pestaña **Conectar**. Pasa de largo **Integraciones** hasta la sección **Seguimiento y píxeles**.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-160aa466cb4be35d642728df96c43f7bf9afbc9c%2Fforms-tracking-and-pixels-01-connect-tab.png?alt=media" alt="La pestaña Conectar del editor mostrando las tarjetas de Integraciones y el comienzo de la sección Seguimiento y píxeles"><figcaption><p>La pestaña <strong>Conectar</strong> tiene <strong>Integraciones</strong>, <strong>Seguimiento y píxeles</strong>, <strong>Correos</strong> y <strong>Protección contra spam (captcha)</strong>.</p></figcaption></figure>

***

**Paso 2:** Llena solo los campos de las herramientas que uses. Todos los campos son opcionales e independientes.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-1c27542ce712b82e86d9e593cf874f775bcc8b32%2Fforms-tracking-and-pixels-02-fields.png?alt=media" alt="Los cinco campos de seguimiento llenos, cada uno con su texto de ayuda: ID de Google Tag Manager, ID del píxel de Meta, Clave del proyecto de PostHog, Host de PostHog e ID de seguimiento de HubSpot"><figcaption><p>Cinco campos, cinco etiquetas. Deja un campo vacío y esa etiqueta no se carga nunca.</p></figcaption></figure>

| Campo                             | Qué pegas                  | Qué hace en la página del formulario                                                                                                                                                                                                     |
| --------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ID de Google Tag Manager**      | `GTM-XXXXXXX`              | Carga tu contenedor de GTM para que se disparen tus etiquetas, y empuja un evento `form_lead` cuando alguien completa el formulario.                                                                                                     |
| **ID del píxel de Meta**          | `123456789012345`          | Dispara un `PageView` al cargar el formulario y un `Lead` cuando alguien lo completa.                                                                                                                                                    |
| **Clave del proyecto de PostHog** | `phc_...`                  | Captura una pageview en PostHog para analítica de producto.                                                                                                                                                                              |
| **Host de PostHog (opcional)**    | `https://us.i.posthog.com` | Por defecto usa la nube de PostHog en EE. UU.; configura tu URL de ingesta de la UE o autoalojada.                                                                                                                                       |
| **ID de seguimiento de HubSpot**  | `12345678`                 | Carga el código de seguimiento de HubSpot de tu portal en la página del formulario. Si insertas este formulario en páginas que ya cargan tu código de seguimiento de HubSpot, déjalo vacío: la inserción pasa la visita de esas páginas. |

> **💡 Tip:** El campo **Host de PostHog** solo importa si tu proyecto no está en la nube de PostHog de EE. UU. Tiene que ser una dirección completa, por ejemplo `https://eu.i.posthog.com`. Cualquier otra cosa se rechaza con **Introduce una URL http(s) completa, p. ej. <https://eu.i.posthog.com>.**

***

**Paso 3:** Haz clic en **Publicar**. Los IDs de seguimiento son parte de tu borrador, así que solo llegan a los visitantes cuando el formulario está publicado.

<figure><img src="https://365551146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMUYDYzjmxpzlYaw0gcaZ%2Fuploads%2Fgit-blob-85416a940cbbb2a916466de0ca33594add491339%2Fforms-tracking-and-pixels-03-staged-until-publish.png?alt=media" alt="El aviso de preparación sobre los campos de seguimiento y el botón Publicar en la barra superior, ambos marcados en rojo"><figcaption><p>El aviso lo dice claro: los IDs de seguimiento se preparan con tu borrador, las <strong>Integraciones</strong> no.</p></figcaption></figure>

El aviso sobre los campos dice: «Estos IDs se guardan con el resto de tu borrador: haz clic en Publicar para ponerlos en el formulario público. Las integraciones de arriba se guardan en vivo de inmediato.»

Esa diferencia vale la pena recordarla:

* **Seguimiento y píxeles**: se guardan en el borrador, en vivo tras **Publicar**.
* **Integraciones** (webhook, HubSpot): se guardan en el formulario en vivo en el momento en que las cambias, sin publicar.

Mira [Guardado automático, borradores y publicación](/dapta-docs-es/dforms/builder/autosave-and-publishing.md) para el resto del ciclo del borrador.

***

## Cuándo se dispara cada etiqueta

Las reglas son las mismas para todas las herramientas, así que lo que mides se mantiene predecible:

* Las etiquetas se cargan **solo en la página pública del formulario**. El editor, la vista previa y el panel nunca las cargan.
* Cada visita produce **exactamente una pageview**: una carga del contenedor de GTM, un `PageView` de Meta, un `$pageview` de PostHog, un script de seguimiento de HubSpot.
* Pasar de una pregunta a la siguiente no dispara **nada**. Un formulario de diapositivas es una sola página para tu analítica, tenga los pasos que tenga.
* Completar el formulario dispara **una conversión**: un `Lead` de Meta y un evento `form_lead` en el `dataLayer` de GTM. Mira la sección siguiente.

> **⚠️ Nota:** dForms no muestra un banner de cookies ni de consentimiento en el formulario público. Si tus visitantes necesitan uno, gestiona el consentimiento en tu propio contenedor de GTM y condiciona ahí tus etiquetas.

***

## La conversión de un formulario completado

Cuando alguien completa el formulario:

* con un **ID del píxel de Meta**, el píxel dispara el evento estándar `Lead`;
* con un **ID de Google Tag Manager**, el formulario empuja `{ event: 'form_lead' }` al `dataLayer`. En GTM, crea un activador de tipo **Evento personalizado** con el nombre de evento `form_lead` y asígnale tus etiquetas de conversión.

Tres reglas mantienen honesto el conteo:

* Se dispara solo después de que dForms guardó la respuesta completa. Una respuesta parcial, o un envío que falló, nunca la dispara.
* Se dispara una vez por visita. Un doble clic, o recargar la pantalla de agradecimiento en la misma pestaña, no cuenta dos veces.
* Sale antes de la redirección de la [pantalla final](/dapta-docs-es/dforms/logic/ending-screen.md), así que un final que redirige sin espera no la cancela.

## LinkedIn, TikTok, Google Ads y todo lo demás

Solo hay cinco campos, y no hay un campo aparte para LinkedIn Insight, el píxel de TikTok, Google Ads ni ninguna otra herramienta. Cárgalas mediante **Google Tag Manager**: pon aquí el **ID de Google Tag Manager** y luego añade cada etiqueta dentro de tu contenedor, con `form_lead` como activador de sus etiquetas de conversión. Un ID en el formulario, tantas etiquetas como quieras en GTM.

## Los parámetros UTM se capturan solos

No necesitas un píxel para saber de dónde vino un lead. Cuando alguien abre un formulario con parámetros de campaña en el enlace, por ejemplo:

```
https://app.dforms.ai/acme/f/lead-qualification-quiz?utm_source=linkedin&utm_medium=cpc&utm_campaign=spring
```

`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` y `utm_content` se guardan con la respuesta. Desde ahí viajan con ella:

* a HubSpot, mediante los cinco mapeos de UTM en [Elementos del formulario](/dapta-docs-es/dforms/connect/hubspot/form-elements.md);
* a tu endpoint, en el objeto `utm` del [payload del webhook](/dapta-docs-es/dforms/connect/webhooks/payload-reference.md).

Cuando el formulario está insertado con el fragmento completo, también cuentan las UTMs de tu página: si el `src` del iframe no tiene parámetros `utm_`, se guardan los de la dirección de tu página. Mira [Lo que tu página le cuenta al formulario](/dapta-docs-es/dforms/share/embed.md#lo-que-tu-pagina-le-cuenta-al-formulario).

La nota al pie de los campos dice lo mismo: «Los parámetros UTM se capturan automáticamente y puedes mapearlos a propiedades de HubSpot en Integraciones.»

> **⚠️ Nota:** Las claves `utm_` están reservadas para la captura de campaña. Una pregunta cuya clave de campo empieza por `utm_` nunca se prellena desde la URL. Mira [Campos ocultos y prellenado por URL](/dapta-docs-es/dforms/builder/hidden-fields-and-url-prefill.md).

## Formularios insertados

* Los IDs de seguimiento que pones aquí se cargan dentro del iframe, en la página propia del formulario, y se disparan ahí. La página que rodea al formulario no se entera: su propio píxel o contenedor de GTM no ve el `Lead`, y `form_lead` cae en el `dataLayer` del marco, no en el de tu página.
* Algunos navegadores, Safari entre ellos, limitan el seguimiento dentro de un marco de otro sitio, así que las conversiones de un formulario insertado se miden con menos fiabilidad que en el enlace directo.
* Para HubSpot, un formulario insertado no necesita el **ID de seguimiento de HubSpot**: el script de inserción pasa la visita de tu página. Mira [Página de origen y atribución en HubSpot](/dapta-docs-es/dforms/connect/hubspot/attribution.md).

## Rutas de página en tus disparadores

Los enlaces de formulario tienen la forma `https://app.dforms.ai/{código de cuenta}/f/{slug}`. Los enlaces antiguos llevaban el handle de una persona del equipo en lugar de la `f`, y **Editar enlace** puede cambiar el slug. Un activador de GTM o de Google Analytics que mira una ruta antigua con handle solo se dispara con quien todavía usa ese enlace viejo. Un activador para un slug que cambiaste deja de dispararse, porque la dirección vieja lleva a la gente a la nueva antes de que se cargue ninguna etiqueta. Usa `/f/{slug}`, o solo el slug. Mira [Tu enlace público](/dapta-docs-es/dforms/share/public-link.md).

## Qué se recoge

Un formulario sin IDs de seguimiento hace **cero peticiones a terceros**, con una excepción: con la [protección contra spam](/dapta-docs-es/dforms/connect/spam-protection.md) activa, la verificación de Cloudflare se carga en cuanto la persona empieza a responder (mira sus [notas de privacidad](/dapta-docs-es/dforms/connect/spam-protection.md#privacidad)).

El propio dForms guarda las respuestas, el puntaje, las marcas de tiempo y las UTMs de un envío, más la página donde se respondió:

* la dirección de la página: la dirección propia del formulario con solo sus parámetros `utm_` en un enlace directo, la dirección completa de tu página cuando el formulario está insertado con el fragmento completo, o lo que el navegador reporta como página de origen (normalmente solo el dominio de tu sitio) con un iframe solo;
* el título de la página;
* la cookie de HubSpot de quien visita, solo cuando llegó una y el webhook o la integración de HubSpot del formulario la van a usar.

No guarda direcciones IP, agentes de usuario, dispositivos ni países. Lee [Seguridad y privacidad](/dapta-docs-es/dforms/security-and-privacy.md) para el cuadro completo.

## Qué sigue

* [Analíticas](/dapta-docs-es/dforms/results/analytics.md): vistas, inicios, tasa de finalización y abandono, medidos por dForms.
* [Elementos del formulario: UTMs, puntaje, resultado, fecha de envío](/dapta-docs-es/dforms/connect/hubspot/form-elements.md): envía las UTMs capturadas a propiedades de HubSpot.
* [Página de origen y atribución en HubSpot](/dapta-docs-es/dforms/connect/hubspot/attribution.md): enlaza las respuestas con las páginas que la persona vio antes en HubSpot.
* [Referencia del payload y las cabeceras](/dapta-docs-es/dforms/connect/webhooks/payload-reference.md): dónde van las UTMs y la página en el cuerpo del webhook.
* [Guardado automático, borradores y publicación](/dapta-docs-es/dforms/builder/autosave-and-publishing.md): por qué los IDs esperan al **Publicar**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dapta.ai/dapta-docs-es/dforms/connect/tracking-and-pixels.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
