Passar para o conteúdo principal

Widde Pro para e-commerce

Vídeo é o canal mais subutilizado do varejo digital. A Widde Pro transforma qualquer loja em uma vitrine interativa: vídeos shoppable, provador virtual com AI e lives, instalados em minutos com um único script.

Plataforma operacional Última atualização · Abr 2026 CDN · cdn.widde.io

01 Instalação

A Widde Pro é distribuída como um único script CDN baseado em Web Components. Cole-o uma vez no template da loja — todos os blocos passam a funcionar e a configuração visual fica no painel administrativo.

Snippet único

Insira a tag abaixo logo antes do fechamento da </body>, ou use a área de scripts globais da sua plataforma (VTEX, Shopify, Nuvemshop etc.).

html
<script type="text/javascript" async
        src="https://cdn.widde.io/widde.1.1.0.js?v=1.0"></script>
    
→ Pronto!

Os blocos configurados no painel da Widde aparecem automaticamente nas páginas correspondentes. Não é necessário alterar templates de produto nem mexer no JavaScript do tema.

Modo debug · ambientes não-produção

Por padrão a Widde só carrega em domínios de produção, para não interferir em stagings. Para forçar o carregamento durante testes, adicione o parâmetro widde-local-debug à URL:

bash
https://staging.minhaloja.com/?widde-local-debug
    
→ Sobre a versão

A versão fixa no path do CDN garante estabilidade de produção. A Widde publica avisos de atualização pelo painel sempre que uma nova versão LTS é liberada.

02 Blocos

Blocos são Web Components que você cola no HTML da loja para exibir vídeos. A configuração visual — cores, espaçamento, dimensões — fica toda no painel Widde: nada de tocar no código depois da instalação.

widde-pro-highlights

Destaques

Vídeos no estilo stories do Instagram. Ótimo para promoções, lançamentos, categorias e variações de produto.

home categoria PDP
html
          <widde-pro-highlights></widde-pro-highlights>
        

Em páginas de produto, use a variante específica:

html
          <widde-pro-products-highlights></widde-pro-products-highlights>
        
widde-pro-carousel

Carrossel

Vitrine horizontal de vídeos. Indicado para storytelling, coleções curadas e conteúdo sequencial.

home categoria PDP
html
          <widde-pro-carousel></widde-pro-carousel>
        
widde-explorer

Explorar

Página completa de descoberta no estilo explore do Instagram. Veja a solução Explorar para detalhes da experiência.

página dedicada home preview
html
          <widde-explorer></widde-explorer>
        

Para uma versão compacta com pré-visualização:

html
          <widde-explorer-preview></widde-explorer-preview>
        
→ Onde colar

Cada bloco pode ser inserido no template da loja ou via construtor da plataforma (VTEX IO, seções do Shopify, blocos do Nuvemshop etc.). Os Web Components só renderizam quando o script Widde já carregou — não é preciso configurar ordem de carregamento.

Como inserir os destaques de produto

A implementação é simples e depende de alguém com acesso ao código da loja — tipicamente o desenvolvedor da plataforma. Basta adicionar a tag no HTML da página de produto (PDP), no local exato onde os destaques devem aparecer.

1

Tag a inserir

html
          <widde-pro-products-highlights></widde-pro-products-highlights>
        
2

Onde inserir

  • No template da página de produto (PDP / product page).
  • Na posição exata em que os destaques devem ser exibidos.
3

Exemplos práticos

Abaixo do título do produto

html
<h1>{{ product.name }}</h1>

<widde-pro-products-highlights></widde-pro-products-highlights>

<p>{{ product.description }}</p>

Abaixo do preço

html
<div class="product-price">
  {{ product.price }}
</div>

<widde-pro-products-highlights></widde-pro-products-highlights>

Dentro de uma seção dedicada

html
<div class="product-highlights-section">
  <h2>Destaques</h2>

  <widde-pro-products-highlights></widde-pro-products-highlights>
</div>
→ Observações importantes

A posição da tag no template define exatamente onde o conteúdo será renderizado.

Use a tag apenas em páginas de produto — ou em locais onde faça sentido exibir destaques contextuais ao item visualizado.

O desenvolvedor da plataforma saberá identificar o arquivo/template correto (PDP, product page, product-template etc.) conforme o tema ou framework em uso.

03 Video Commerce · Formatos

A Widde disponibiliza quatro formatos de widget de vídeo que podem ser distribuídos pela loja. Cada formato tem um papel diferente — bolinha flutuante, fileira de destaques na home, miniaturas dentro da PDP e carrossel de coleções — e pode ser customizado visualmente pelo lojista.

ViewType · Story
Story
Bolinha flutuante fixa no canto inferior esquerdo, acompanha o scroll em qualquer página da loja.
Story floating · bottom-left 1 coleção
ViewType · Highlight
Destaque da loja
Sequência de círculos horizontais na home. Similar aos Stories do Instagram — cada círculo abre uma coleção diferente.
Highlight shapper: circle N coleções
ViewType · HighlightTwo / Three
Destaque de produto
Vídeos exibidos como miniaturas dentro da galeria da PDP, ao lado das fotos do produto. O cliente alterna entre foto e vídeo no mesmo seletor.
HighlightTwo HighlightThree galeria do produto
ViewType · Carousel
Carrossel
Cards grandes com produto e preço abaixo. Navegação lateral com setas, ideal para vitrines de coleções com shoppable videos.
Carousel CarouselTwo wrapper: product

04 Provador AI

A Widde também oferece o Provador AI — uma solução que permite ao cliente visualizar como a peça fica em seu próprio corpo antes da compra. O fluxo abre direto na página de produto, com upload de foto e geração da imagem com IA.

1Ponto de entrada · PDP
R$ 399,90 R$ 299,90 até 3x de R$ 99,96 sem juros no cartão de crédito R$ 290,90 Economize R$ 9,00 3% DESCONTO Verifique se você selecionou uma variação Comprar Como fica em mim?
Botão "Como fica em mim?"
Exibido logo abaixo do CTA de compra na PDP. Identificado pelo ícone de sparkle (✨) e pelo estilo secundário (outline preto) para não competir com o botão primário Comprar.
PosiçãoAbaixo do CTA principal de compra
EstiloOutline preto · ícone sparkle
2Drawer aberto · AI
R$ 299,90 Bermuda Sarja Premium Vidic Preto Provador AI Visualize o caimento perfeito antes mesmo de tocar no tecido. Nossa tec- nologia analisa sua silhueta. SUA FOTO IA RESULTADO 01 CARREGUE SUA FOTO 02 VEJA O RESULTADO COM IA 03 ADICIONE A SACOLA Começar POWERED BY WIDDE
Drawer do Provador AI
Ao clicar no botão, abre um drawer lateral com o fluxo completo: upload da foto do cliente, geração da imagem via AI usando o produto da PDP, e CTA para adicionar à sacola.
01Carregue sua foto
02Veja o resultado com IA
03Adicione à sacola

05 Live Commerce

Transmissões ao vivo dentro do e-commerce com chat em tempo real, cupons de desconto, destaque de produto sincronizado e contagem de espectadores. A live ocupa o banner principal da loja e se transforma em mini-player flutuante ao scroll.

1Banner principal
TROCAS E DEVOLUÇÕES GARANTIDAS brand brand Live 43 Viewers Dermage Use o cupom: LIVE224 K Kamilly Vianna amando! Dermage
Banner principal
A live ocupa o banner principal da home assim que entra no ar. Mostra contagem de viewers, chat com mensagens fixadas (ex: cupons) e controles de som/fullscreen.
2Mini-player ao scroll
nprove C Stic... 169,00 R$ 118,28 EXOCARE... R$ 319,00 Hyalu... R$ 13... Mais vendidos Best-Seller PHOTO Photoage Water Best-Seller Ineout C... LIVE
Mini-player flutuante
Quando o cliente faz scroll para fora do banner, a live se transforma em um mini-player no canto inferior direito que continua tocando enquanto ele navega.
3Live em fullscreen
brand Live 39 Viewers DESTAQUE Hyaluage Acqua Filler R$ 139,00 Dermage Use o cupom: LIVE224 K Kamilly amando! Dermage CUPOM: LIVE22 Enviar mensagem...
Live em fullscreen
Ao tocar no mini-player ou abrir a live, o player ocupa a tela inteira. Inclui destaque do produto sincronizado pelo apresentador, chat ao vivo e input de mensagem.

Componentes da experiência

●
Pill LIVE + viewers
Indicador ao vivo com bolinha verde e contagem de espectadores em tempo real.
●
Chat ao vivo
Mensagens da loja (com selo de verificado) e dos espectadores aparecem sobrepostas no vídeo.
●
Cupons fixados
A loja pode fixar cupons de desconto e prazo limite no feed do chat.
●
Destaque de produto
O apresentador destaca o produto que está sendo mostrado, com nome e preço sincronizados.
●
Mini-player flutuante
A live continua tocando em um card no canto inferior direito enquanto o cliente navega.
●
Engajamento
Reações em tempo real (likes), input de mensagem e ícone de sacola para acesso rápido.

06 Explorar

Página completa cheia de vídeos no estilo explore do Instagram. Estimula a descoberta de produtos e funciona em duas variantes: um preview compacto embutido na home (ou em qualquer categoria) e a página dedicada com busca e abas de categoria.

Variantes

Componentes da experiência

●
Tile destaque
O primeiro card ocupa 2× o tamanho dos demais e exibe o produto vinculado com nome, preço e ícones de carrinho/sacola.
●
Grid responsivo
Layout de 4 colunas em desktop que se adapta automaticamente em telas menores, mantendo a hierarquia visual.
●
Busca + categorias
Versão página dedicada inclui campo de pesquisa e abas roláveis com as categorias configuradas pelo lojista.
●
CTA "Ver todos"
O preview compacto traz um botão para abrir a página completa do Explorar e continuar a descoberta.
→ Como inserir

Cole <widde-pro-explorer></widde-pro-explorer> em uma página dedicada (ex: /explorar) e <widde-pro-explorer-preview></widde-pro-explorer-preview> em qualquer ponto da home ou de uma categoria. As coleções, categorias e o tile destaque são configurados no painel da Widde — sem mexer no código.

07 Integrações

A Widde Pro conecta-se à loja em três pontos críticos: catálogo (preço/estoque), carrinho (adicionar produto a partir do vídeo) e analytics (atribuir vendas a quem assistiu e publicar as interações no Data Layer). Cada bloco abaixo detalha o contrato esperado.

08 Catálogo de Produto

A Widde precisa enxergar o seu catálogo para listar preços, estoques e variações nos vídeos. Nas plataformas suportadas, o conector é nativo — basta autorizar. Em sistemas próprios, você expõe um pequeno contrato REST/GraphQL que descrevemos abaixo.

Plataformas com conector nativo

VTEXShopifyNuvemshopTrayWakeBagyVndaLoja Integrada

Integração customizada

Loja headless ou plataforma sob medida? Implemente o contrato a seguir e nos envie a URL base. A Widde consome três operações: search, getById e o webhook onProductUpdate.

Modelo de produto

typescript
type ProductGateway = {
  title:        string;   
  mainImage:    string;   
  price:        number;   
  comparePrice: number;   
  handler:      string;   
  url:          string;   
  externalId:   string;   
};
  

Contrato do serviço

typescript
interface ProductService {
  
  search(term: string): Promise<ProductGateway[]>;

  
  getById(externalId: string): Promise<ProductGateway>;

  
  onProductUpdate(
    externalId: string,
    productData: ProductGateway
  ): Promise<ProductGateway>;
}
  

Checklist de homologação

  • Endpoints expostos sob HTTPS, com latência mediana abaixo de 400 ms.
  • Autenticação por Bearer token ou cabeçalho dedicado.
  • Webhook onProductUpdate notificando alterações em tempo real.
  • Imagens em URLs absolutas, públicas, sem expiração curta.
  • Preços em formato consistente (sempre centavos OU sempre decimal).
→ Como solicitar a homologação

Após implementar o contrato, envie URL base, credenciais e um par de IDs de teste para contato@widde.io. Nossa equipe valida em até 3 dias úteis.

09 Carrinho de Compras

Quando o cliente clica em "adicionar ao carrinho" dentro de um vídeo, a Widde chama a API do carrinho da própria loja, no browser do usuário. A sessão e os cookies já existentes carregam — nenhum dado pessoal passa pelos nossos servidores.

→ Por que client-side

Manter a chamada no browser preserva o fluxo de checkout da plataforma (cupom, frete, regras anti-fraude) e dispensa qualquer sincronização de sessão entre Widde e a loja.

Contrato esperado

A loja precisa expor quatro operações acessíveis via JavaScript: ler o carrinho, adicionar item, remover item e consultar dados de produto. Os tipos abaixo descrevem o formato esperado.

typescript
interface ICartItem {
  readonly id: string;
  readonly name: string;
  readonly price: Price;
  quantity: number;
  readonly productId: string;
  readonly mainImage: string;
  readonly cartItemId?: string;
}

interface ICart extends DomainEntity {
  readonly total: Price;
  readonly totalItems: number;
  readonly items: ICartItem[];
}

interface ICartAddResult {
  success: boolean;
  refetch?: boolean;
  error?: { causes: string[]; };
}

namespace CartInputs {
  interface Add {
    product: Product;
    quantity: number;
    cartId?: string;
    variantSelecteds?: Array<string>;
  }
}
  

Endpoints REST

A nomenclatura é apenas uma sugestão — a única exigência é que sejam acessíveis pelo browser do cliente, autenticados via cookie de sessão e respondam JSON.

GET /cart

Retorna o carrinho atual do usuário com itens, totais e moeda.

POST /cart/items

Adiciona um item ao carrinho. Aceita variant e propriedades customizadas.

json
{
  "externalId": "prod_123",
  "variantId": "var_M",
  "quantity": 2,
  "properties": { "color": "Blue" }
}
json · 200 OK
{
  "success": true,
  "refetch": true
}
DELETE /cart/items/:lineId

Remove uma linha inteira do carrinho. Operação idempotente.

GET /products/:externalId

Retorna dados atualizados de um produto (preço, estoque, variantes).

Códigos de status

Código Significado
200 / 2xxOperação concluída com sucesso.
401 / 403Falha de autenticação ou CSRF.
409Conflito de estoque ou regra de negócio.
422Erros de validação de payload.
5xxFalha interna — a Widde tenta novamente.

Causas reconhecidas em error.causes

OUT_OF_STOCK INVALID_VARIANT INVALID_QUANTITY PRODUCT_NOT_FOUND MIN_QTY_NOT_MET MAX_QTY_EXCEEDED CART_CLOSED
→ Requisitos técnicos

Os endpoints precisam aceitar CORS para o domínio da loja, validar CSRF onde aplicável e responder em JSON com status HTTP semânticos. A homologação inclui teste de consistência do getCartInfo e da remoção idempotente de itens.

10 Google Analytics 4

A Widde marca cada sessão que viu vídeo — você ganha uma audiência customizada no GA4 pronta para campanhas e atribuição. Há dois modos: automático, sem nada para configurar; ou via Data Layer, quando você quer plugar nos seus dispatchers de GTM.

Modo automático

Habilitado por padrão. Durante a instalação, a Widde cria uma audiência chamada Widde · Story Viewers dentro do seu GA4 e passa a separar usuários que assistiram vídeos dos que não assistiram. Atribuições e relatórios funcionam sem qualquer configuração extra.

→ Pré-requisitos

GA4 já configurado na loja (via gtag.js ou GTM) e permissão concedida durante o onboarding. Não há flags adicionais no HTML.

Envio via Data Layer

Use este modo quando você já tem um pipeline de eventos no GTM e prefere que a Widde apenas publique no dataLayer, deixando para você o disparo do evento em GA4 / outras ferramentas.

Insira a flag abaixo antes da tag de instalação da Widde:

html
<script>
  window.widdeSendDatalayer = true;
</script>
      

Formato do evento

json
{
  "event": "widde",
  "action": "story_view",
  "video_url": "https://app.widde.io/v/<storyId>",
  "page_url": "https://minhaloja.com/produto/abc",
  "widdeUid": "u_8f3a91c7"
}
CampoDescrição
eventSempre "widde".
actionSempre "story_view".
video_urlURL do vídeo com o ID único da story.
page_urlPágina em que o vídeo apareceu.
widdeUidID interno de rastreio — conecta visualização e conversão.
→ Quer todas as interações?

Este modo publica só o evento de atribuição widde e substitui o envio automático ao GA4. Para receber play, sacola, checkout, live e provador como eventos widde_*, sem mudar nada no envio ao GA4, veja Eventos no Data Layer.

Verificação e problemas comuns

SintomaComo diagnosticar
Eventos não chegam no Data Layer No console do browser, rode window.widdeSendDatalayer. O retorno precisa ser true e a flag precisa ter sido definida antes da tag da Widde.
Dimensão customizada não aparece No GA4, vá em Admin → Definições personalizadas e crie uma dimensão apontando para o parâmetro widdeUid.
Validação visual GTM em modo Preview ou GA4 → Real-Time Reports geralmente confirmam o evento dentro de poucos segundos.

11 Eventos no Data Layer

Os blocos da Widde rodam dentro de um Shadow DOM, que o rastreador de cliques da loja não consegue inspecionar. Para resolver isso, a própria Widde publica no dataLayer cada interação relevante (play no vídeo, adicionar à sacola, checkout, live, provador) já estruturada e com nomes padronizados, pronta para o seu GTM disparar para o GA4 ou qualquer outra ferramenta.

→ Só acrescenta, não substitui nada

Ligar esta publicação não altera nada do que a Widde já faz: os eventos continuam indo para os relatórios da Widde e o envio ao Google Analytics 4 continua exatamente como está configurado hoje. O dataLayer passa a receber uma cópia das interações, sem dados de usuário.

Duas flags diferentes

Flag O que publica no Data Layer Efeito no envio ao GA4
widdeDataLayerEvents
(esta seção)
Todas as interações, como eventos widde_*. Nenhum. O envio ao GA4 e aos relatórios da Widde continua igual.
widdeSendDatalayer
(Google Analytics 4)
Só o evento de atribuição widde. Substitui o envio automático ao GA4: o evento de atribuição só chega ao GA4 se o seu GTM repassá-lo.

As duas são independentes e podem ser usadas juntas.

Ativação

A publicação vem desligada e a Widde não a liga sozinha: quem precisa adicionar a flag é a loja ou a agência, no código da página ou pelo GTM.

html
<script>
  window.widdeDataLayerEvents = true;
</script>
  

Onde e quando definir

O script da Widde carrega de forma assíncrona, depois do site. Por isso a flag não precisa vir antes da tag da Widde: o SDK só lê o valor da flag quando acontece uma interação, sem ficar monitorando a variável.

RegraDetalhe
Onde colocar No <head> do template da loja, ou numa tag HTML personalizado do GTM com acionador Inicialização – Todas as páginas. Recomendamos o mais cedo possível na página.
Valor Exatamente o booleano true. Texto como "true" não ativa.
Definida antes da Widde Todas as interações são publicadas desde o início.
Definida depois da Widde As interações dos últimos 30 segundos (até 50) ficam guardadas e são publicadas junto com a próxima interação, ou quando o visitante sai da página. As anteriores a isso são descartadas.
Momento do push Logo depois da interação, quando o navegador fica livre (em até ~1 segundo), para não atrasar a resposta da página. Se o visitante sair da página antes disso, o push acontece na hora.
Em todas as páginas A flag vale para a página atual. Ela precisa estar presente em toda página onde houver blocos da Widde.
Nome do Data Layer Os eventos vão para window.dataLayer, o nome padrão do GTM. Se o container usa outro nome, os eventos não chegam até ele.
Desativar Remova a flag ou defina false: a publicação para nas interações seguintes.

Formato do evento

Cada interação gera dois pushes. O primeiro limpa o objeto widde: o GTM mantém na memória os dados de pushes anteriores e, sem esse reset, uma propriedade de um evento poderia aparecer no seguinte. É a mesma prática que o Google recomenda para o objeto ecommerce.

javascript
dataLayer.push({ widde: null });

dataLayer.push({
  event: 'widde_cart_add_item',
  widde: {
    widde_product: 'cart',
    event_type: 'cart_add_item',
    device_type: 'mobile',
    timestamp: '2026-10-05T14:32:10.123Z',
    product_id: '98765',
    product_name: 'Tênis Running Pro',
    product_price: 499.9,
    product_quantity: 1,
    story_key: 'a1b2c3',
    collection_key: 'd4e5f6',
    format_type: 'Carousel'
  }
});
RegraDetalhe
Nome do eventoSempre widde_ + o tipo do evento, em snake_case.
Nomes das propriedadesA mesma informação tem o mesmo nome em todos os produtos: o preço é sempre product_price, venha do vídeo, da live ou do provador.
PreçosSempre número, com ponto decimal (499.9). Nunca texto formatado.
Propriedade sem valorNão é enviada. Nunca aparece vazia nem como null.
MomentoNo instante da interação, um push por ação.

Configuração no GTM

Acionador

CampoValor
TipoEvento personalizado
Nome do evento^widde_
Usar correspondência de regexSim

Para acionar um evento específico, use o nome exato, por exemplo widde_cart_add_item, sem regex.

Variáveis

Crie uma Variável da camada de dados (versão 2) para cada propriedade que for usar, sempre com o caminho widde.<propriedade>: por exemplo widde.product_id, widde.product_price e widde.widde_product.

Envio para o GA4

Numa tag Google Analytics: evento GA4, use {{Event}} como nome do evento (repassa o widde_… como está), adicione as variáveis widde.* como parâmetros e associe ao acionador acima.

→ Não converta em eventos de e-commerce do GA4

Se a loja já dispara add_to_cart ou begin_checkout, não renomeie os eventos da Widde para esses nomes: a adição feita pela Widde também passa pelo carrinho da loja, e a mesma ação seria contada duas vezes. Mantenha os eventos widde_* como eventos personalizados. É justamente isso que isola o que veio da interação com a Widde.

Privacidade e consentimento

Nenhum evento carrega dados pessoais ou identificadores de usuário: nome, e-mail, telefone, foto, cookies, IDs de sessão e IDs de cliente do Google Analytics nunca são publicados. Interações que envolvem dados pessoais, como a captura de leads, também ficam de fora. A URL da página e o referrer não vão no evento: use as variáveis nativas do GTM (Page URL, Referrer).

Os eventos não são publicados quando o consentimento de análise é negado, ou seja, quando o último comando consent do Consent Mode do Google traz analytics_storage: 'denied'. Sem Consent Mode, a publicação segue normalmente e as tags do GTM continuam respeitando as regras de consentimento configuradas por você.

Eventos disponíveis

Todo evento traz widde_product, event_type, device_type e timestamp. A tabela de cada produto lista as propriedades adicionais; o significado de cada uma está no dicionário.

EventoQuando é emitidoPropriedades
widde_collection_viewO usuário clica em um vídeo da lista de vídeos exibida na página e abre o player em tela cheia: decidiu interagir com os vídeos.collection_key
widde_story_viewO usuário assiste 3 segundos ou mais de um vídeo. Uma vez por vídeo por página.story_key, collection_key, format_type, products
widde_story_likeO usuário curte o vídeo (ícone de coração). Descurtir não gera evento.story_key, collection_key, format_type
widde_story_shareO usuário compartilha o vídeo.story_key, collection_key, format_type
widde_media_progressO usuário sai de um vídeo depois de assistir 3 segundos ou mais. Indica quanto foi assistido.story_key, collection_key, format_type, watched_seconds, duration_seconds
widde_product_redirectO usuário clica para ir à página do produto a partir do vídeo.story_key, collection_key, format_type, dados do produto

Para medir a taxa de visitantes que decidiram assistir, combine widde_collection_view (abriu o player) e widde_story_view (assistiu de fato) com a contagem de visitantes da página no GA4.

Os eventos de carrinho só existem no fluxo da Widde: os botões nativos da página de produto nunca os disparam. Isso permite isolar as adições à sacola que vieram da interação com os vídeos ou com a live.

EventoQuando é emitido
widde_cart_product_infoO usuário abre o produto a partir do vídeo ou da live (botão na base do vídeo) e vê a escolha de tamanho/variação. Intenção inicial de compra.
widde_cart_product_info_buy_togetherO usuário abre a tela de "compre junto".
widde_cart_add_itemO usuário confirma a adição à sacola depois de escolher a variação. É a adição ao carrinho vinda da Widde.
widde_cart_remove_itemO usuário remove um produto da sacola Widde.
widde_cart_view_listO usuário abre a lista de itens da sacola.
widde_cart_checkout_startO usuário clica em finalizar a compra e segue para o checkout.

Propriedades: product_id, product_name, product_price e product_quantity (quando houver), mais a origem: story_key, collection_key, media_key e format_type nos vídeos, ou live_key na live.

Todos os eventos da live levam live_key. As interações com o carrinho dentro da live geram os eventos da aba Carrinho.

EventoQuando é emitidoPropriedades
widde_live_viewO visitante passa a ser contado como espectador da live.—
widde_live_watch_startedO espectador atinge o tempo mínimo assistindo: 10 segundos no player da página ou 2 segundos em tela cheia.qualifier_mode, qualifier_seconds
widde_live_watch_endedA sessão assistida termina: saiu da página, a live acabou ou o player foi fechado.watched_seconds, end_reason
widde_live_product_clickO espectador clica em um produto exibido na live.product_id, product_name, product_price
widde_live_coupon_appliedO cupom da live é aplicado ao carrinho.coupon_code, discount_type, discount_value, platform
widde_live_coupon_copiedO cupom é copiado em vez de aplicado (ex.: carrinho vazio).coupon_code, discount_type, discount_value, platform, coupon_copy_reason
widde_live_chat_messageO espectador envia uma mensagem no chat. O conteúdo da mensagem não é publicado.—

Todos os eventos do provador levam domain e os dados do produto da página: product_id, product_name, product_url, product_category, product_price, currency e, quando houver, ab_variant.

EventoQuando é emitidoPropriedades adicionais
widde_tryon_button_viewO botão do provador é exibido na página do produto.—
widde_tryon_widget_openO usuário abre o provador.—
widde_tryon_photo_sentO usuário envia a foto para gerar a prova.—
widde_tryon_result_viewedO resultado gerado é exibido.ai_model, image_resolution
widde_tryon_result_ratedO usuário avalia o resultado.ai_model, image_resolution, rating
widde_tryon_share_openedO usuário abre as opções de compartilhamento.share_method
widde_tryon_share_completedO usuário conclui o compartilhamento.share_method
widde_tryon_add_to_cartO usuário adiciona o produto ao carrinho a partir do provador.cart_flow

Dicionário de propriedades

Os nomes abaixo são estáveis. Novas propriedades podem ser adicionadas no futuro; as existentes não são renomeadas sem aviso.

PropriedadeTipoDescrição
widde_producttextoProduto Widde que gerou o evento: video, cart, live ou tryon.
event_typetextoTipo do evento sem o prefixo widde_ (ex.: cart_add_item).
device_typetextomobile, tablet ou desktop.
timestamptextoData e hora da interação, ISO 8601 em UTC.
product_idtextoID do produto na plataforma da loja (nos eventos de carrinho, o da variação escolhida).
product_nametextoNome do produto.
product_pricenúmeroPreço do produto no momento da interação.
product_urltextoURL da página do produto.
product_categorytextoCategoria do produto.
product_quantitynúmeroQuantidade adicionada à sacola.
currencytextoMoeda do preço, ISO 4217 (ex.: BRL).
productslistaProdutos associados ao vídeo, cada um com product_id, product_name, product_price e product_url.
story_keytextoIdentificador do vídeo na Widde.
collection_keytextoIdentificador da lista de vídeos (coleção) na Widde.
media_keytextoIdentificador da mídia na Widde.
format_typetextoFormato do bloco onde o vídeo está: Story, Highlight, HighlightTwo, HighlightThree, Carousel, CarouselTwo, Feed ou Explorer.
live_keytextoIdentificador da live na Widde.
watched_secondsnúmeroSegundos assistidos.
duration_secondsnúmeroDuração total do vídeo, em segundos.
qualifier_modetextoModo em que o espectador foi contado como "assistindo": hero (player na página) ou fullscreen (tela cheia).
qualifier_secondsnúmeroSegundos mínimos exigidos nesse modo.
end_reasontextoFim da sessão assistida: pagehide (saiu da página), liveFinished (live acabou) ou dismissed (fechou o player).
coupon_codetextoCódigo do cupom exibido na live.
discount_typetextopercentage (percentual) ou amount (valor fixo).
discount_valuenúmeroValor do desconto, conforme discount_type.
platformtextoPlataforma de e-commerce da loja.
coupon_copy_reasontextoPor que o cupom foi copiado em vez de aplicado: cart-empty, not-applicable, not-found, expired, min-purchase-not-reached, already-used, customer-restricted, unsupported ou transport-error.
domaintextoDomínio da loja onde o provador está.
ai_modeltextoModelo de IA que gerou a imagem.
image_resolutiontextoResolução da imagem gerada.
ratingtextoAvaliação do resultado: like ou dislike.
share_methodtextoCanal de compartilhamento: whatsapp, facebook, x, copy, download ou native.
cart_flowtextoComo o produto foi adicionado: widde_cart (carrinho Widde) ou native (botão da loja).
ab_varianttextoVariante de teste A/B da experiência Widde. Não é variante de produto.

Verificação e problemas comuns

SintomaComo diagnosticar
Nenhum evento widde_* aparece No console do browser, rode window.widdeDataLayerEvents: o retorno precisa ser o booleano true. Confira também se o Consent Mode não está com analytics_storage negado e se o container do GTM usa o nome padrão dataLayer.
Conferir os eventos publicados No console, rode dataLayer.filter(e => e.event && e.event.indexOf('widde_') === 0).
Propriedade de um evento aparece em outro Verifique se as variáveis usam o caminho widde.<propriedade> (versão 2). O reset { widde: null } antes de cada evento só funciona com variáveis da camada de dados.
Validação visual No GTM em modo Preview (Tag Assistant), interaja com o bloco Widde: os eventos widde_* aparecem na linha do tempo, com o objeto widde na aba Camada de dados.

12 Aplicativos

Em desenvolvimento

Estamos abrindo a Widde Pro para integrações de terceiros via app store. Conectores de e-mail marketing, CRM, suporte, fidelidade e ferramentas de atribuição vão poder se plugar diretamente nas coleções de vídeo.

Quer ser parceiro fundador? Escreva para contato@widde.io.

13 Plataformas suportadas

Conector nativo para as principais plataformas do mercado brasileiro e internacional. Em todas elas, a instalação é plug-and-play: autorize, cole o script e configure os blocos no painel.

Plataforma Conector Forma de instalação
VTEXNativoScript global no template ou via VTEX IO.
ShopifyNativoTheme custom code → seção Additional Scripts.
NuvemshopNativoCódigos externos → cabeçalho ou rodapé.
TrayNativoConfigurações → Códigos externos.
WakeNativoPainel → Templates → Scripts globais.
BagyNativoConfigurações da loja → Scripts.
VndaNativoEditor de tema → snippet global.
Loja IntegradaNativoPersonalizações → HTML personalizado.
Headless / sob medidaAPIImplemente o contrato de catálogo e do carrinho.

14 Suporte

Time técnico dedicado a parceiros e lojistas. Resposta em até um dia útil para dúvidas de implementação.

WIDDE · API Documentation v1 · stable