Precificação

Teste A/B de Upsell e Cross-Sell: um Framework Prático

Teste A/B de upsell e cross-sell: onde testar, qual métrica usar e como evitar que a oferta canibalize a conversão geral ou a receita futura.

Ilustração abstrata de setas geométricas sobrepostas subindo em degradê verde e teal, sugerindo upgrade de oferta, sem texto ou logotipo

Teste A/B de upsell e cross-sell funciona como qualquer outro teste de oferta: duas versões, tráfego dividido ao acaso, e uma decisão baseada em receita, não em achismo. O erro que a maioria comete não é estatístico, é de métrica: medir só a taxa de aceite do upsell isolado, ou só a conversão do produto complementar, esconde o efeito real. A métrica certa é a receita incremental por visitante (em ecommerce) ou por cliente (em SaaS) do funil inteiro, porque uma oferta pode converter muito bem sozinha e, ao mesmo tempo, reduzir quantas pessoas fecham a compra, ou aumentar o cancelamento alguns meses depois. Este artigo complementa o guia completo de teste A/B de preço e cobre onde testar (checkout, pós-compra, dentro do produto), o que medir de verdade, um exemplo trabalhado com números reais e as armadilhas que fazem um upsell agressivo demais destruir mais receita do que cria.

Upsell e cross-sell não são a mesma oferta

Os dois termos viram sinônimo no dia a dia, mas o risco de cada um é diferente, e isso muda como você deve desenhar o teste:

Em ambos os casos, o teste A/B segue o mesmo framework: variar a oferta (ou o momento em que ela aparece), medir o efeito na receita agregada, e vigiar guardrails específicos do canal. A diferença fica na leitura dos resultados, não no desenho.

Onde a oferta aparece: os pontos de teste em ecommerce e SaaS

Antes de decidir a métrica, decida o timing. Ecommerce e SaaS têm jornadas diferentes, e cada ponto de oferta carrega um risco distinto:

Pontos de oferta de upsell e cross-sell em ecommerce e SaaSNa jornada de ecommerce, a oferta pode aparecer no carrinho ou na confirmação do pedido. Na jornada de SaaS, pode aparecer quando o uso bate um limite ou no momento de renovação do plano.Jornada ecommerceProdutovisita a páginaCarrinhocross-sell aquiCheckoutpagamentoConfirmaçãoupsell pós-compraJornada SaaSTrialcadastroAtivaçãoprimeiro usoUso contínuoupsell in-appRenovaçãoupgrade de plano
Cada ponto destacado em verde é um lugar plausível para testar upsell ou cross-sell. Quanto mais cedo na jornada, maior o risco de atrapalhar a conversão principal; quanto mais tarde, menor o risco imediato, mas o teste demora mais para capturar efeitos de longo prazo, como churn.
Contexto Onde a oferta costuma aparecer Cuidado principal
Ecommerce, antes do checkout Cross-sell no carrinho (“quem comprou isso também levou”) Atrito extra pode reduzir a conclusão do checkout; teste isolado da oferta, sem mudar mais nada na página
Ecommerce, pós-compra Upsell ou cross-sell na página de confirmação do pedido, com a venda principal já garantida Menor risco ao guardrail de conversão, mas exige um passo extra de aceite que pode incomodar se aparecer toda hora
SaaS, dentro do produto Upsell de plano quando o uso bate um limite (armazenamento, usuários, chamadas de API) O timing importa: cobrar por um limite genuíno converte melhor e irrita menos do que empurrar upgrade sem motivo aparente
SaaS, renovação de contrato Upgrade oferecido no momento de renovar ou de expandir o time Ciclo de decisão mais longo; o teste precisa cobrir pelo menos um ciclo de cobrança inteiro para capturar cancelamento tardio

A métrica que decide o teste (e por que a óbvia engana)

Aqui está o erro que invalida a maioria dos testes de upsell e cross-sell que você vê por aí: escolher como métrica primária a taxa de aceite da própria oferta, isolada do resto do funil. Uma oferta pode ter uma taxa de aceite excelente e, ainda assim, ser um resultado ruim para o negócio, porque ela pode ter afastado gente da compra original, ou porque o cliente que aceitou cancela mais cedo do que quem não recebeu a oferta.

A métrica primária correta é a receita incremental por visitante (ecommerce) ou por cliente (SaaS) do funil inteiro: some a receita de todo mundo que passou pelo teste, dos dois lados, e divida pelo total de pessoas que entraram no experimento. Trate como métricas de apoio e de guarda:

O que medir Por que engana ou por que funciona
Errado (isolado): taxa de aceite do upsell Ignora o efeito na conversão geral e no churn futuro; uma oferta pode “vencer” isoladamente e ainda assim reduzir a receita do conjunto
Errado (isolado): ticket médio só de quem aceitou Mede só quem já converteu com a oferta, não diz nada sobre quem a oferta afastou do funil
Certo: receita incremental por visitante/cliente do funil inteiro Captura ganho de ticket médio e perda de conversão ao mesmo tempo; é a única leitura que não pode ser enganada por canibalização
Guardrail: conversão geral (checkout completo, ou ativação do plano) Não pode cair de forma relevante; se caiu, a oferta está afastando gente, não só reposicionando escolha
Guardrail (SaaS): churn ou cancelamento no ciclo seguinte Upsell aceito sob pressão tende a cancelar mais cedo; sem esse guardrail, você comemora um upgrade que vira churn dali a dois meses

Note o padrão: a métrica errada quase sempre “vence” mais fácil, porque ela mede só a parte boa da história. A métrica certa é mais difícil de mover, e é exatamente por isso que ela é a que importa.

Um teste de upsell pós-compra, com números reais

Vamos simular um teste comum: um upsell mostrado na página de confirmação do pedido (depois do pagamento, então sem risco à conversão do checkout em si). O controle (A) mostra o cross-sell atual, genérico; a variação (B) mostra uma oferta reformulada, mais relevante ao que a pessoa acabou de comprar.

Primeiro, o guardrail. A conclusão do checkout precisa ficar igual nos dois lados, porque a mudança só acontece depois do pagamento: de 8.000 visitantes que chegam ao carrinho em cada variação, 6.000 completam a compra dos dois lados, uma taxa de 75% em ambos.

Agora, a oferta em si. Dos 6.000 pedidos de cada lado, o cross-sell pós-compra (preço fixo de R$ 79) foi aceito por 480 pedidos em A (8,0%) e 570 pedidos em B (9,5%). Cole 6.000 visitantes e 480 conversões no controle, e 6.000 e 570 na variação, na calculadora abaixo:

Calculadora de significância estatística
Controle (A)
Variação (B)
Controle (A) · Taxa-
Variação (B) · Taxa-
Melhora relativa-
valor-p-
IC 95% da diferença-

Teste z bilateral de duas proporções. "Sem significância" quase sempre quer dizer que falta amostra, não que as versões são iguais.

O resultado: melhora relativa de +18,75%, valor-p de 0,0036 (bem abaixo de 0,05), com intervalo de confiança de 95% da diferença entre +0,49 e +2,51 pontos percentuais. B vence com folga estatística.

Como o preço do upsell é fixo (R$ 79 nos dois lados), a receita incremental por pedido vinda da oferta é proporcional à própria taxa de aceite: R$ 6,32 por pedido em A (480 × R$ 79 ÷ 6.000) contra R$ 7,51 por pedido em B (570 × R$ 79 ÷ 6.000), o mesmo ganho de +18,75%. Somando ao valor médio do pedido antes do upsell (R$ 180, igual dos dois lados, porque o guardrail de conversão não mudou), a receita total por visitante que chegou ao carrinho sobe de R$ 139,74 para R$ 140,63:

Receita por visitante antes e depois da mudança no upsell pós-compraCom a mesma conversão geral de 75% dos dois lados, a receita por visitante sobe de R$ 139,74 sem a nova oferta para R$ 140,63 com a nova oferta, um ganho vindo inteiramente do upsell pós-compra.receita por visitante que chegou ao carrinhoR$ 139,74A · oferta atualR$ 140,63B · oferta novaupsell: +18,75%
A diferença na receita agregada por visitante vem inteiramente do upsell pós-compra: o guardrail (conclusão do checkout, 75% nos dois lados) não se moveu.

Um detalhe importante: essa equivalência entre taxa de aceite e receita incremental só vale porque o preço do upsell é fixo dos dois lados. Se você testar upsells com preços diferentes (por exemplo, oferecer um item mais caro na variação), a taxa de aceite sozinha pode enganar de novo, e você precisa calcular a receita agregada na mão, exatamente como no teste de ancoragem de preço.

Como desenhar o teste sem contaminar os grupos

O desenho certo evita dois problemas: medir o efeito errado, e medir um efeito real de forma suja.

Sorteio único e estável para não contaminar os grupos do testeO visitante é sorteado uma única vez, no primeiro ponto de contato, e vê a mesma versão (controle ou variação) em todos os pontos seguintes da jornada, até a medição agregada de receita.Visitante1º contatosorteioúnicoA · em todos os pontoscarrinho, checkout, confirmaçãoB · em todos os pontoscarrinho, checkout, confirmaçãoMediçãoreceita agregada?
Se o mesmo visitante visse o controle no carrinho e a variação na confirmação, a conversão dele não pertenceria a nenhum dos dois grupos, e poluiria os dois.

Cinco cuidados práticos, na ordem em que costumam ser esquecidos:

  1. Isole a variável testada. Mude só a oferta ou só o momento em que ela aparece. Se você também mexer no preço, no design da página ou no produto recomendado ao mesmo tempo, não vai saber o que causou o efeito.
  2. Sorteio único e estável desde o primeiro contato. O visitante entra no experimento na primeira vez que cruzaria com a oferta, e mantém a mesma versão em todo o resto da jornada, incluindo visitas de retorno antes de decidir (comum em SaaS B2B).
  3. Guardrail combinando com o canal. Em ecommerce, o guardrail imediato é a conclusão do checkout. Em SaaS, some um guardrail de médio prazo: cancelamento ou downgrade no ciclo de cobrança seguinte, não só no dia da oferta.
  4. Duração cobrindo o ciclo certo. Uma oferta pós-compra em ecommerce pode ser lida em dias. Um upsell de plano em SaaS precisa rodar por pelo menos um ciclo de cobrança completo, porque o risco de cancelamento aparece depois, não na hora do aceite.
  5. Ambas as versões ao vivo ao mesmo tempo. Nunca compare “este mês com a oferta nova” contra “mês passado com a antiga”: sazonalidade de vendas (datas comemorativas, fim de trimestre em B2B) distorce qualquer leitura de receita.

As armadilhas: quando o upsell agressivo destrói mais do que cria

Erro Sinal de alerta Correção
Medir só a taxa de aceite da oferta “O upsell converteu ótimo!” sem checar o resto do funil Meça receita incremental por visitante/cliente do funil inteiro
Ignorar o guardrail de conversão geral Conclusão de checkout ou ativação caiu, mas ninguém olhou Trate a conversão geral como métrica de guarda obrigatória
Ignorar o guardrail de churn (SaaS) Upgrade parece um sucesso no mês, cancelamento sobe no seguinte Rode o teste por pelo menos um ciclo de cobrança completo
Oferta forçada antes do checkout Etapa extra e obrigatória para prosseguir com a compra Prefira pós-compra, ou torne a etapa pré-compra opcional e discreta
Testar oferta e preço ao mesmo tempo Mudou o produto recomendado e o desconto junto Isole uma variável por teste

Faça isso automático na Donnu

Pare de adivinhar se o seu upsell aumenta ou destrói a receita. A Donnu A/B mede o teste pela métrica que de fato decide, a receita agregada por visitante ou por cliente, com o mesmo motor de significância bayesiana usado em qualquer experimento seu, e com guardrails configuráveis para conversão geral e para churn no ciclo seguinte. Você não precisa montar essa conta na mão toda vez que testar uma oferta de upsell ou cross-sell.

Comece um teste grátis de 14 dias e rode o próximo teste de oferta medindo o que realmente move a receita. Veja também o guia completo de teste A/B de preço, a ancoragem de preço em teste A/B e o teste A/B de paywall freemium.


Leia também: Teste A/B de preço: o guia completo · Ancoragem de preço em teste A/B · Teste A/B de paywall freemium

Referências

Perguntas frequentes

Qual a diferença entre upsell e cross-sell num teste A/B?
Upsell é oferecer uma versão mais cara do que a pessoa já está comprando ou usando (um plano maior, uma versão premium do mesmo produto). Cross-sell é oferecer algo diferente e complementar (um acessório, um add-on, um serviço extra). O desenho do teste é parecido nos dois casos: o que muda é o risco. Upsell compete diretamente com a decisão original (pode fazer a pessoa hesitar de novo); cross-sell soma à compra já decidida, então costuma ter menos atrito.
Qual é a métrica certa para testar upsell ou cross-sell?
Nunca a taxa de aceite da oferta isolada. A métrica primária correta é a receita incremental por visitante (em ecommerce) ou por cliente (em SaaS) do funil inteiro, porque uma oferta pode ter uma taxa de aceite ótima e ainda assim reduzir quantas pessoas fecham a compra, ou aumentar o cancelamento meses depois. Trate a conversão geral e, em assinatura, o churn subsequente como métricas de guarda (guardrail), não como coadjuvantes.
Upsell agressivo demais pode piorar a conversão geral?
Sim, e há dado real sobre isso: segundo o Baymard Institute, 66% dos usuários que passaram por uma etapa separada e obrigatória de cross-sell no checkout da Amazon relataram frustração extrema com aquela etapa. Cross-sell e upsell que forçam uma decisão ativa antes de concluir a compra são percebidos como agressivos, e isso é mensurável na sua conversão geral, não só em pesquisas de satisfação.
Como evitar que os grupos do teste se contaminem?
Sorteie o visitante ou cliente uma única vez, no primeiro ponto de contato com a oferta, e mantenha essa mesma versão em todos os pontos seguintes da jornada (carrinho, checkout, confirmação, ou dentro do app). Se a pessoa vê a oferta de controle no carrinho e a variação na página de confirmação, a conversão dela não pertence a lado nenhum e polui os dois grupos.
Devo testar o upsell no checkout ou depois da compra?
Depende do que você está disposto a arriscar. Uma oferta antes do pagamento pode aumentar o ticket médio, mas compete com a decisão de compra e pode derrubar a conversão geral (o seu guardrail). Uma oferta pós-compra, com a venda principal já garantida, tende a ter mais aceite e menos risco ao guardrail principal, ao custo de aparecer um passo a mais depois da confirmação. Teste os dois pontos separadamente: são experimentos diferentes, com riscos diferentes.