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.

📚 Este artigo faz parte do guia Como Testar A/B o Preço do seu Produto: o Guia Completo.
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:
- Upsell: oferecer uma versão mais cara do que a pessoa já está comprando ou usando. Num ecommerce, é o produto de linha superior (“leve o modelo Pro por mais R$ 80”). Num SaaS, é subir de plano ou de tier (“upgrade para o plano Business”). O upsell compete com a decisão original: ele reabre a pergunta “quanto eu quero gastar”, e por isso pode fazer parte do público hesitar de novo e desistir.
- Cross-sell: oferecer algo diferente e complementar ao que já foi decidido. Num ecommerce, é o acessório ou o produto relacionado (“adicione isso ao seu carrinho”). Num SaaS, é um add-on ou um módulo extra. O cross-sell soma a uma compra já fechada, então costuma ter menos atrito, mas ainda assim pode distrair e atrapalhar quem só quer terminar o checkout.
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:
| 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:
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:
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.
Cinco cuidados práticos, na ordem em que costumam ser esquecidos:
- 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.
- 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).
- 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.
- 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.
- 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
- Oferta forçada antes de concluir a compra. Segundo o Baymard Institute, em testes de usabilidade de checkout, 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 que exige uma decisão ativa antes de seguir em frente é percebido como agressivo, e isso se traduz em queda de conversão, não só em reclamação.
- Taxa de aceite fora da curva, sem explicação. Segundo a CartHook, plataforma voltada a upsells pós-compra, a taxa média de aceite gira perto de 4%, podendo passar de 10% em ofertas bem executadas e muito relevantes ao que já foi comprado. Uma taxa muito acima disso, sem uma explicação clara (oferta com desconto agressivo, produto quase gratuito), costuma ser sinal de que o cliente está aceitando por confusão ou por pressão de interface, não porque quer aquilo, e esse tipo de aceite tende a gerar devolução ou insatisfação depois.
- Upsell de plano empurrado sem sinal de uso real. Em SaaS, oferecer upgrade para quem não bateu limite nenhum (só por calendário, ou por meta interna de expansão) tende a converter pior e, quando converte, a cancelar mais rápido no ciclo seguinte. É canibalização de LTV disfarçada de vitória de curto prazo: o upgrade aparece como receita adicional no mês, e como churn no trimestre.
- Medir o upsell separado da canibalização do produto principal. Se o cross-sell empurra tanto que a pessoa troca o item principal do carrinho por uma versão mais barata para “caber” no orçamento total, o teste que olha só a oferta secundária nunca vai enxergar essa perda.
| 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
- Baymard Institute. 327 “Cross-Sells” Design Examples (inclui o dado sobre frustração de usuários com cross-sell obrigatório no checkout da Amazon). baymard.com/checkout-usability/benchmark/step-type/cross-sell.
- CartHook. What is the Conversion Rate for Post-Purchase Upsell? carthook.com/blogs/wiki/what-is-the-conversion-rate-for-post-purchase-upsell.
- Kohavi, R., Tang, D. & Xu, Y. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020. Material de apoio em experimentguide.com.
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.