VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/SEO, testes A/B e envio de arquivos

Testes A/B da página de produto

Lê quais testes A/B estão rodando para o visitante, com a versão dele em cada um, e registra que ele viu o teste.

A loja pode comparar duas versões de um elemento da página de produto para ver qual vende mais. Um teste A/B (experimento) tem um elemento testado, uma variante a (o que existe hoje) e uma variante b (o valor novo). O servidor decide a variante de cada visitante com uma conta fixa sobre o id do teste e o id do visitante: o mesmo visitante cai sempre na mesma variante, em qualquer aparelho em que esteja logado. A porcentagem que vai para a b é configurada pela loja.

Os elementos testáveis são um conjunto fechado de quatro: cta_label (texto do botão de compra), social_proof_badges (selos de prova social), price_history_badge (selo do histórico de preço) e reviews_position (posição das avaliações). As conversões (adicionar ao carrinho, pedido, receita) são contadas pelo servidor; o front-end só informa que o visitante viu o teste.

Quem é o visitante: o cliente logado (pelo token) ou, sem login, o valor do cabeçalho X-Session-ID.

Ler os testes ativos

GET/api/v1/storefront/pdp-experiments/activeAutenticada

Consulta os testes A/B em andamento e a variante do visitante

Devolve todos os testes em andamento e, para cada um, a variante deste visitante. Sem identificação do visitante (nem token, nem X-Session-ID), a lista vem vazia: não é erro. A resposta tem Cache-Control: private, max-age=60.

Cabeçalhos

Authorizationstring
Bearer <token> do cliente logado. Opcional.
X-Session-IDstring
Identificador do visitante sem login. Use o mesmo do carrinho.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/pdp-experiments/active" \
  -H "X-Session-ID: $SESSION_ID"

Resposta

200Testes ativos
json
{
  "experiments": [
    {
      "id": "9d1f4c1e-2b3a-4a58-8e0b-3f2a6d5b7c10",
      "element_key": "cta_label",
      "variant": "b",
      "variant_b_value": "Quero esse!"
    }
  ]
}

Na loja de teste não havia testes em andamento, e a resposta real foi {"experiments":[]}. O exemplo acima ilustra o formato.

Campos da resposta

experimentsarray
Testes em andamento. Vazio quando não há teste ou quando o visitante não foi identificado.
experiments[].iduuid
Id do teste. É o {id} de Registrar exposição.
experiments[].element_keystring
cta_labelsocial_proof_badgesprice_history_badgereviews_position
Elemento testado.
experiments[].variantstring
ab
Variante deste visitante.
experiments[].variant_b_valuestring
Valor da variante b (por exemplo, o novo texto do botão). Use quando variant for b; na a, mantenha o seu valor atual.

Erros

StatusQuandoCorpo
500Falha ao ler{"error":"failed to resolve experiments","detail":"..."}

Registrar que o visitante viu o teste

POST/api/v1/storefront/pdp-experiments/{id}/exposureAutenticada

Registra que o visitante viu um teste A/B

Grava o evento "exposição": o visitante foi exposto a este teste, na variante que o servidor calcula para ele. Chame uma vez por sessão e teste, quando o elemento testado aparece. É idempotente: repetir não duplica. Se o teste não está em andamento (terminou, parou ou ainda é rascunho), a resposta é 200 mas nada é gravado. Sem corpo.

Parâmetros de caminho

iduuidobrigatório
Id do teste (experiments[].id).

Cabeçalhos

Authorizationstring
Bearer <token> do cliente logado. Opcional.
X-Session-IDstring
Identificador do visitante sem login. Obrigatório sem token.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/storefront/pdp-experiments/$EXPERIMENT_ID/exposure" \
  -H "X-Session-ID: $SESSION_ID"

Resposta

200Exposição registrada
json
{ "ok": true }

Erros

StatusQuandoCorpo
400Sem token e sem X-Session-ID{"error":"experiment id and subject required"}
404O teste não existe{"error":"experiment not found"}
500id que não é UUID{"error":"failed to record exposure","detail":"o valor \"xyz\" não é um uuid válido. ..."}
Troque o X-Session-ID e a variante muda

Como a variante é calculada a partir do identificador do visitante, um X-Session-ID novo a cada visita (ou o login, que passa a usar o id do cliente) pode mudar a variante exibida. Use um identificador de visitante estável e saiba que o login redefine o assunto do teste. O detail do 500 por id inválido é uma frase em português.

Veja também

  • Resolver URLs
  • Visão geral de SEO, testes e envios
Anterior
Resolver URLs amigáveis
Próxima
Reordenar produtos para o cliente
Nesta página
  • Ler os testes ativos
  • Exemplo de requisição
  • Resposta
  • Erros
  • Registrar que o visitante viu o teste
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também