Skip to main content

Pré-requisitos

  • Conta criada em app.testly.com.br
  • Projeto React 16.8+ (Vite, CRA ou Next.js)
  • Node.js 14+

Instalação


Passo 1 — Configure o Provider

Envolva sua aplicação com o TestlyProvider no arquivo raiz. Você configura isso uma única vez.
API Key: Pegue a sua em app.testly.com.br/settings → seção API Key. Ela tem o formato tk_live_....A API Key identifica sua organização. O experimento que você criou no dashboard só funciona com a API Key da mesma conta. Se usar a key errada, o SDK retorna variant: null.
App.tsx
.env

Desenvolvendo localmente?

O Testly tem duas chaves por organização para você nunca misturar dados de teste com dados reais: Configure as duas no seu projeto:
.env
.env.local
Pegue ambas as chaves em app.testly.com.br/settingsChave de API → abas “Produção” e “Desenvolvimento”.
Dev Mode: quando você usa a chave tk_test_, o dashboard do Testly filtra os experimentos e métricas para mostrar apenas dados de teste — suas métricas reais ficam protegidas. Ative o Dev Mode no toggle da sidebar para ver esses experimentos.

Passo 2 — Crie o experimento no dashboard

  1. Acesse app.testly.com.br e clique em Novo Experimento
  2. Preencha o nome — o slug é gerado automaticamente (ex: homepage-cta-test)
  3. Defina o KPI de conversão (ex: cta_clicked)
  4. O experimento é criado já em estado ativo (running)
O dashboard mostra o código pronto para copiar em cada experimento — incluindo a API Key e o slug correto.

Passo 3 — Integre no seu app

Você tem duas opções para integrar o experimento. Escolha a que preferir:
Depois de criar o experimento, o dashboard mostra a aba “Pedir pra IA” com um prompt pronto — sua API Key, slug e evento de conversão já preenchidos.Cole no Claude Code, Cursor, Windsurf ou qualquer IA do seu editor. Ela faz tudo:
O prompt completo com sua API Key real está disponível na aba “Pedir pra IA” após criar o experimento no dashboard.

Como funciona


Múltiplos experimentos

Você pode usar vários useExperiment no mesmo componente ou em componentes diferentes:
Cada experimento é independente. Um usuário pode estar no control do hero-headline e no variant-b do pricing-layout ao mesmo tempo.

Troubleshooting

Causa mais comum: a API Key no TestlyProvider não corresponde à organização onde o experimento foi criado.Checklist:
  1. Abra app.testly.com.br/settings → copie a API Key da seção API Key
  2. Confirme que essa mesma key está no TestlyProvider do seu app
  3. Verifique se o experimento está listado no seu dashboard (não no de outra conta)
  4. Confirme que o slug no useExperiment('...') é idêntico ao slug exibido no dashboard
Ative o debug para ver o que o SDK está recebendo:
O SDK retorna null quando o experimento não está em estado running. Isso acontece quando:
  • O experimento foi pausado ou arquivado no dashboard
  • O experimento foi concluído automaticamente (winner encontrado)
  • A API Key usada pertence a uma organização diferente da que criou o experimento
Solução: Verifique o status do experimento no dashboard. Se estiver draft ou paused, ative-o.
Isso não deveria acontecer — o SDK usa cache local para manter consistência.Causas possíveis:
  • Código limpando o localStorage em algum lugar
  • Navegação privada (sem persistência entre abas)
  • userId diferente sendo gerado a cada render
Para testar, use config={{ debug: true }} e verifique os logs no console.
Checklist:
  • convert('nome_do_evento') está sendo chamado?
  • ✅ O nome do evento usa snake_case (ex: cta_clicked, não CTA Clicked)?
  • ✅ A impressão foi registrada antes? (automático, mas verifique com debug: true)
  • ✅ O experimento está em estado running?
O plano gratuito permite 1 experimento ativo e 10.000 impressões/mês.Se você atingiu o limite de impressões, o SDK continua funcionando — mas novas impressões não são registradas (conversões nunca são bloqueadas).Para criar mais experimentos sem afetar seus limites, ative o Dev Mode no painel lateral e use a chave tk_test_ — experimentos de teste são ilimitados.Para aumentar os limites de produção, faça upgrade para o Pro — R$79/mês, experimentos ilimitados, 100k impressões.

Próximos Passos

useExperiment

Referência completa do hook principal

Exemplos práticos

Hero section, pricing, CTA — veja implementações reais

Configuração avançada

Debug mode, dedupConversions, userId customizado

Integração com IA

Use Claude Code ou Cursor para implementar experimentos automaticamente