Formulários multi-step: mensurar abandono sem achismo

Formulário multi-step sem tracking de etapa esconde o abandono: você só vê “não converteu” e chuta se o problema é o campo CPF, o step de empresa ou a lentidão do submit. Instrumentar start, step_N, validation_error e success — com o mesmo form_id — transforma CRO e mídia em decisão com evidência. O form longo deixa de ser caixa-preta.
Por que thank-you page não basta?
A thank-you mede o fim. Em multi-step, a maior parte da perda acontece no meio: fricção de campos, medo de pedir cartão cedo, drop no mobile teclado, erro de validação silencioso. Sem eventos de etapa, o time discute opinião de UX sem dados.
Além disso, mídia otimiza generate_lead no fim; se o step 2 mata 60% dos iniciantes, o ajuste pode ser de formulário — não de lance. Tracking de step alimenta priorização correta.
Contrato mínimo de eventos
Padronize: form_start (primeira interação ou view do step 1), form_step_view / form_step_complete com índice e nome do step, form_validation_error com campo, form_submit_success e, se possível, form_submit_error técnico. Inclua form_id, form_name, step_index, step_name.
Dispare complete do step quando o usuário avança de verdade — não no clique se a validação bloqueia. O dataLayer deve refletir o estado real do componente.
- form_id estável entre releases
- step_index numérico + step_name legível
- Erros de validação com field_name
- Success só após confirmação real do backend
- Mesmo contrato em A/B de formulário
Como montar o funil no GA4
Use Explorations em funil com form_start → steps → success, quebrado por device, source/medium e form_id. Compare taxa step-a-step. Mobile costuma sofrer em campos longos e upload; desktop em campos de qualificação chatos.
Envie step_name como parâmetro registrado. Sem registro, você analisa no DebugView e perde escala no UI.
| Evento | Quando disparar | Parâmetros-chave | Uso |
|---|---|---|---|
| form_start | Início real do fluxo | form_id, form_name | Denominador do funil |
| form_step_complete | Avanço validado | step_index, step_name | Drop por etapa |
| form_validation_error | Falha de validação | field_name, step_index | CRO de campo |
| form_submit_success | Backend OK / thank-you | form_id, lead_id? | Conversão / Ads |
| form_submit_error | Falha técnica | error_type | Ops / confiabilidade |
GTM, listeners e forms “não padrão”
Forms em React/Vue raramente funcionam com listeners genéricos de form submit do GTM. Prefira dataLayer push no código do wizard. Para ferramentas (Typeform embed, HubSpot, RD), use callbacks/webhooks oficiais e normalize no GTM.
Cuidado com auto-save de step que dispara complete cedo demais. Complete = intenção de avanço confirmada.
Privacidade nos parâmetros
Não mande PII em parâmetros de analytics (e-mail em claro, CPF, telefone). Use field_name genérico (“email”, “phone”) nos erros, não o valor digitado. Valor de lead e matching para ads seguem fluxos próprios com hashing/consentimento.
Ligar form ao CRM e à qualidade
Grave no lead quantos steps completou, tempo total e variante do form. Se SQL cai quando o form encurta, o tracking de step + scoring mostra o trade-off. Multi-step existe para qualificar — meça se a qualificação está cara demais em abandono.
Para mídia, mantenha conversão de sucesso no fim; use steps como diagnóstico, não como conversão primária (salvo estratégia explícita de microconversão).
Experimentação em multi-step
Teste uma hipótese por vez: remover um campo, mudar ordem, unificar steps. A métrica primária pode ser success rate; a guarda é qualidade SQL. Instrumentação de step permite ver se o ganho veio de um gargalo específico.
Sem sticky variant no form_id/experiment_id, o funil misturado mente.
Operação contínua
Alarme de queda na taxa step 1→2 pós-release, dashboard semanal de erros de validação top fields, e revisão trimestral de campos que não correlacionam com SQL. A DataScroll trata multi-step como funil de produto dentro do marketing — com dono e backlog de CRO.
Checklist prático
- Contrato dataLayer de start/step/error/success
- form_id e step_name padronizados
- Success amarrado a confirmação real
- Funil GA4 por device e canal
- Parâmetros registrados no GA4
- Sem PII nos parâmetros de erro
- Lead no CRM com metadados de step/tempo
- Alarme de regressão pós-deploy do form
Erros comuns
- Trackear só o submit final
- Disparar step_complete no clique sem validação
- Listeners GTM genéricos em SPA form
- Enviar valores de campos (PII) no dataLayer
- Usar step view como conversão de Ads
- Mudar nomes de step a cada release sem versionar
- Encurtar form sem medir impacto em SQL
Formulário longo e funil opaco?
A DataScroll instrumenta cada etapa do form para priorizar CRO e mídia com evidência de onde o lead desiste.