Novo por aqui? Comece pelo Getting Started antes de seguir esta página.
Crie e exiba paywalls visuais no seu app sem precisar publicar nova versão
TL;DR: Paywalls são telas de oferta criadas no dashboard e exibidas no app com uma linha de código. Esta página cobre como criar no dashboard, a API do SDK, pré-carregamento e integração com feature flags.
Paywalls são telas visuais que apresentam seus produtos e planos de assinatura para os usuários. Com o Paywallo, você cria paywalls no editor visual do dashboard e pode exibi-los no app chamando uma única linha de código.
A grande vantagem é que você pode atualizar design, textos, produtos e preços remotamente, sem precisar enviar uma nova versão para as lojas.
Um placement é um identificador que conecta seu código a uma campanha no dashboard (ex: 'premium_upsell', 'onboarding_offer'). Você define o nome no código e depois cria uma campanha no dashboard associada a esse mesmo nome — o SDK resolve qual paywall exibir automaticamente.
Paywallo.presentPaywall()| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
placement | string | Sim | Identificador do placement (ex: "onboarding", "settings") |
fallback | string | Não | ID do paywall fallback caso não haja campanha ativa |
O método presentPaywall() retorna uma Promise com este objeto:
| Propriedade | Tipo | Descrição |
|---|---|---|
presented | boolean | true se o paywall foi exibido |
purchased | boolean | true se o usuário completou uma compra |
cancelled | boolean | true se o usuário fechou sem comprar |
restored | boolean | true se o usuário restaurou compras anteriores |
productId | string? | ID do produto comprado (se purchased = true) |
error | Error? | Erro (se houver falha) |
Placements são "slots" onde você pode exibir paywalls. Cada placement pode ter uma ou mais campanhas ativas, e o Paywallo decide qual paywall mostrar baseado nas regras de segmentação.
onboarding — Mostrado após o tutorialsettings — Botão na tela de configuraçõesfeature_locked — Quando o usuário tenta acessar uma feature premiumapp_launch — Ao abrir o app (use com cuidado!)Configure placements e campanhas no dashboard em Campanhas. Você pode criar múltiplas campanhas para o mesmo placement e fazer testes A/B.
Quando você chama presentPaywall() ou presentCampaign(), o SDK precisa:
Isso pode causar um delay de 1-3 segundos até o paywall aparecer. Com preloadCampaign(), você faz tudo isso antecipadamente, e quando o usuário precisar ver o paywall, ele aparece instantaneamente.
O cache do preload dura 5 minutos. Após esse tempo, o SDK buscará os dados novamente na próxima chamada.
Boas Práticas de Pré-carregamento
Paywallo.init() para máximo tempo de cacheUse feature flags para controlar qual paywall exibir aos usuários, permitindo testes A/B e rollouts graduais.
Verifique uma feature flag antes de decidir qual paywall exibir
TypeScript
Usando getVariant para testes A/B
Eventos são rastreados automaticamente quando o usuário interage com a paywall
| Evento | Descrição | Propriedades |
|---|---|---|
| $paywall_viewed | Paywall foi exibida | placement, paywallId |
| $paywall_dismissed | Usuário fechou sem comprar | placement, paywallId |
| $paywall_purchased | Compra realizada | placement, paywallId, productId |
Boas Práticas