Introductory offer no App Store Connect: teste grátis no iOS
Por Mehdi Azizi
Publicado em , 8 min
Introductory offer é o teste grátis ou o preço reduzido no início de uma assinatura iOS, uma vez por grupo e por conta Apple. Veja como criar e exibir.
Uma introductory offer, ou oferta introdutória, é o preço inicial de uma assinatura autorrenovável: um teste grátis, um pagamento antecipado ou um pagamento conforme o uso. Cada cliente só tem direito a ela uma vez por grupo de assinaturas, então seu app precisa verificar a elegibilidade antes de escrever "teste grátis". Você cria a oferta na página de preços da assinatura, e o seu paywall precisa mostrar com clareza a duração da oferta e o preço cobrado depois.
No Solys e no TradaZen, o teste grátis de 7 dias fica na assinatura anual. O plano semanal não tem. Aqui estão os três tipos de oferta, quem tem direito, a criação e depois dois erros que cometi na exibição. O termo "oferta de lançamento" muitas vezes quer dizer a mesma coisa, inclusive no meu guia sobre os erros de paywall.
O que é uma introductory offer?
A ajuda do App Store Connect define como um preço reduzido ou um teste grátis, por tempo limitado, para o primeiro período de uma assinatura. Ela só vale para assinaturas autorrenováveis. No fim da oferta, a assinatura é renovada pelo preço normal, a menos que a pessoa cancele antes.
A oferta aparece na sua página da App Store para as pessoas elegíveis. Na compra, a Apple aplica a oferta automaticamente se a pessoa tiver direito. O seu trabalho é não prometer na tela uma oferta que a Apple não vai conceder.
Os três tipos de oferta introdutória
A documentação do StoreKit descreve três modos de pagamento. Veja cada um com um exemplo fictício: um anual de € 39,99 e um mensal de € 6,99, que não são os preços de nenhum dos meus apps.
| Tipo | Exemplo fictício | Pago no início | Depois |
|---|---|---|---|
| Teste grátis | 7 dias grátis | € 0 | € 39,99/ano |
| Pagamento antecipado | 3 meses por € 9,99 | € 9,99 uma vez | € 39,99/ano |
| Conforme o uso | € 2,99/mês, 3 meses | € 2,99 por mês | € 6,99/mês |
E aqui está o que a tela deve dizer em cada caso, sempre com esses preços fictícios:
- Teste grátis: "7 dias grátis, depois € 39,99 por ano." Durante o teste, a assinatura já começou, mas nada é cobrado antes do fim.
- Pagamento antecipado: "€ 9,99 pelos 3 primeiros meses, depois € 39,99 por ano." A pessoa paga uma única vez por todo o período com desconto.
- Pagamento conforme o uso: "€ 2,99 por mês durante 3 meses, depois € 6,99 por mês." O preço reduzido é cobrado a cada período.
Nos três casos, a frase traz o preço que será cobrado depois da oferta.
Quem tem direito à oferta introdutória?
A ajuda da Apple é clara: uma oferta possível por assinatura, mas uma única oferta introdutória por pessoa e por grupo de assinaturas. A documentação do StoreKit detalha os três casos:
- um novo assinante sempre tem direito;
- um ex-assinante que volta tem direito se nunca usou uma oferta introdutória nesse grupo;
- um assinante atual não tem direito, mesmo se trocar de plano dentro do mesmo grupo.
O direito segue a conta Apple que paga, não o iPhone nem a conta criada no seu app. Quem fez o teste, cancelou e reinstalou o app não tem mais direito. Mesmo assim, o produto continua anunciando a oferta: é daí que nasce a exibição enganosa.
Consequência direta: um teste no plano semanal consumiria o direito ao teste no anual, já que os dois estão no mesmo grupo. É por isso que meus testes ficam só no anual.
Outro limite: você pode ter uma oferta introdutória em andamento e uma oferta futura por país. Se duas ofertas se sobrepõem, a última criada substitui a outra. Em julho de 2026, no TradaZen, eu queria ao mesmo tempo um preço reduzido e um teste grátis no anual. Uma oferta por vez: era uma ou outra. Acabei criando uma segunda assinatura anual, mais barata, que leva o teste.
Criar a oferta no App Store Connect
Você precisa do papel Account Holder, Admin, App Manager ou Marketing. Os nomes são os da ajuda da Apple:
- Em Apps, abra o seu app e depois Subscriptions na barra lateral.
- Escolha o grupo e depois a assinatura.
- Na seção Subscription Prices, clique em View all Subscription Pricing e depois em Set up Introductory Offer.
- Escolha os países ou regiões e depois as datas de início e de fim. Se você começar hoje, a oferta entra em vigor na hora.
- Escolha Free, Pay up front ou Pay as you go, depois a duração e o preço.
- O App Store Connect sugere preços equivalentes para os 175 países. Ajuste se precisar e confirme.
Uma oferta criada não pode mais ser editada: para mudar a duração ou o preço, apague-a na aba Introductory Offers e crie de novo. Uma alteração pode levar até uma hora para chegar ao sandbox. A documentação do RevenueCat também recomenda esperar até 24 horas antes de concluir que uma oferta não está sendo aplicada.
As durações possíveis
O teste grátis dura 3 dias, 1 ou 2 semanas, 1, 2, 3 ou 6 meses, ou 1 ano, seja qual for a duração da assinatura. O pagamento antecipado cobre 1, 2, 3 ou 6 meses, ou 1 ano. O pagamento conforme o uso depende da duração da assinatura:
| Assinatura | Conforme o uso |
|---|---|
| 1 semana | 1 a 12 semanas |
| 1 mês | 1 a 12 meses |
| 2 meses | 2 a 12 meses, de 2 em 2 |
| 3 meses | 3, 6, 9 ou 12 meses |
| 6 meses | 6 ou 12 meses |
| 1 ano | 1 ano |
Nos meus apps, escolhi 7 dias, no anual. Não é uma regra da Apple, é uma escolha de produto, para rever com as suas próprias métricas.
Mostrar o teste só para quem tem direito
A Apple diz isso na mesma página de ajuda: se você mostra a oferta no seu app, confira se a pessoa pode mesmo aproveitá-la. Faça duas perguntas ao seu código: o produto tem um teste grátis, e essa pessoa ainda tem direito a ele?
A primeira se lê no produto. Atenção: uma oferta introdutória não é necessariamente grátis. No TradaZen, o anual padrão tinha um pagamento antecipado, um primeiro ano mais barato, e o teste ficava no outro anual. Os dois aparecem como "oferta introdutória". Por isso meu código lê o preço da oferta: zero é teste; acima disso, é uma oferta paga.
A segunda se pergunta à loja. Em Swift, o StoreKit 2 oferece isEligibleForIntroOffer, a partir do iOS 15. A Apple avisa que esse valor pode ser verdadeiro mesmo sem oferta configurada: daí a primeira pergunta. Com o RevenueCat num app Expo, é checkTrialOrIntroductoryPriceEligibility, que retorna elegível, inelegível, sem oferta ou desconhecido. Aqui está o princípio em TypeScript:
import Purchases, {
INTRO_ELIGIBILITY_STATUS as S,
type PurchasesStoreProduct,
} from "react-native-purchases";
type Essai = "oui" | "non" | "doute";
export async function essaiGratuit(p: PurchasesStoreProduct): Promise<Essai> {
if (!p.introPrice || p.introPrice.price > 0) return "non";
try {
const r = await Purchases.checkTrialOrIntroductoryPriceEligibility([
p.identifier,
]);
const statut = r[p.identifier]?.status;
if (statut === S.INTRO_ELIGIBILITY_STATUS_ELIGIBLE) return "oui";
if (statut === S.INTRO_ELIGIBILITY_STATUS_INELIGIBLE) return "non";
if (statut === S.INTRO_ELIGIBILITY_STATUS_NO_INTRO_OFFER_EXISTS)
return "non";
return "doute";
} catch {
return "doute";
}
}
O caso "doute" (dúvida) é o que realmente importa. O RevenueCat descreve a verificação dele como uma estimativa de melhor esforço, e a folha de pagamento da Apple mostra de qualquer forma as condições reais antes da confirmação. Para um status desconhecido, o RevenueCat recomenda mostrar o preço normal, para não enganar ninguém.
Aprendi o outro lado do problema no TradaZen. A primeira versão tratava um erro de leitura como uma recusa: pessoas que tinham direito ao teste não o viam. Hoje, meus apps só tiram o teste diante de uma recusa clara da loja, inelegível ou sem oferta. Na dúvida, mantém-se o que o produto exibe. É uma escolha minha, não a recomendação do RevenueCat: se você prefere a prudência, siga a deles. Nos dois casos, nunca confunda "não sei" com "não".
Se você usa os paywalls do RevenueCat, cada texto pode ter uma versão para as pessoas elegíveis à oferta, segundo a página deles sobre ofertas. O resto da configuração está no meu guia RevenueCat para uma assinatura iOS.
O que a 3.1.2 exige na tela
A guideline 3.1.2(a) permite o teste grátis numa assinatura, desde que você forneça as informações previstas pelo App Store Connect. A página da Apple sobre assinaturas detalha: no fluxo de compra de um teste, indique com clareza a duração e o preço cobrado no final. O valor cobrado também precisa ser o elemento de preço mais visível da tela.
A rejeição que o Solys recebeu em 10 de outubro de 2026 dizia isso: o teste grátis, o preço de lançamento e os preços calculados devem ficar subordinados ao valor cobrado. O teste pode ser anunciado, mas o preço cobrado depois precisa continuar sendo o preço mais legível da tela. As duas rejeições e a correção estão no meu guia sobre a guideline 3.1.2.
O erro inverso também existe: oferecer um teste sem dizer. Numa época, os botões dos meus paywalls diziam "Continuar". No Solys, "7 dias grátis" só existia no rótulo do VoiceOver, não como texto visível.
Testar a oferta no sandbox
Compre a assinatura com uma conta sandbox: o teste precisa aparecer na folha de pagamento da Apple. Para refazer o fluxo de um novo assinante, escolha Clear Purchase History nos ajustes da conta sandbox no iPhone. Segundo a documentação de sandbox da Apple, a conta volta a ser elegível às ofertas introdutórias.
Teste também uma conta que já fez o teste: seu paywall não deve mais anunciar nada grátis. Se o produto nem carrega, leia meu guia sobre o status Missing Metadata.
Configurar seu teste grátis sem erro
O iOS & Android Kit parte do código inicial dos meus apps: onboarding, paywall e assinaturas já estão programados, e a terceira etapa, "ligar o dinheiro", guia você na configuração dos produtos e do teste. A cadeia completa está descrita na página assinatura in-app iOS. Se você ainda está em dúvida sobre o modelo, comece por assinatura ou compra única.
Se você está preparando seu primeiro lançamento, faça seu diagnóstico gratuito: ele coloca as etapas na ordem e envia meu checklist anti-rejeição da Apple. Para dar um mês de presente ou reconquistar um ex-assinante, o próximo passo está no meu guia sobre os códigos de oferta.
Perguntas frequentes
O que é uma introductory offer na App Store?
É o preço inicial de uma assinatura autorrenovável: um teste grátis, um pagamento antecipado ou um pagamento conforme o uso. Ela é criada no App Store Connect, e a Apple a aplica automaticamente na compra para as pessoas elegíveis. Depois, a assinatura passa para o preço normal.
Um usuário pode fazer dois testes grátis?
Não no mesmo grupo de assinaturas: uma única oferta introdutória por grupo e por conta Apple. Reinstalar o app não devolve o direito. Já se ele assinar em outro grupo do seu app, pode aproveitar a oferta desse grupo.
Dá para acumular um teste grátis e um desconto?
Não na mesma assinatura ao mesmo tempo: uma única oferta introdutória em andamento por país. Você pode criar uma segunda assinatura com a outra oferta, ou usar um código de oferta, que pode vir em sequência à oferta introdutória, dependendo das suas configurações.
Preciso de uma nova versão do app para adicionar um teste?
Para a oferta em si, não: ela é configurada no App Store Connect e aplicada na compra. Mas se o seu paywall escreve "7 dias" fixo no código, vai precisar atualizar. Leia a duração no produto retornado pela loja, e a tela acompanha.
Um ex-assinante tem direito ao teste grátis?
Sim, se nunca usou uma oferta introdutória nesse grupo de assinaturas. Se já aproveitou, não tem mais direito, mesmo meses depois. Para trazê-lo de volta, a Apple oferece as ofertas de reconquista (win-back) e as ofertas promocionais.

