arrow-return

Android e iOS: Como Configurar Subscrições Multi-Grupos com React Native

An image of Buzzvel Mobile Team, the author of this post
10 min de leitura

Partilhar


Guia Completo: Como Configurar Subscrições Multi-Grupos no RevenueCat com React Native (iOS e Android)

Neste guia completo, mostramos como configurar subscrições multi-grupos no RevenueCat utilizando React Native, tanto para iOS como para Android. Quer seja um principiante ou um programador experiente, o nosso passo-a-passo fornece os conhecimentos e dicas necessários para simplificar o processo de configuração. Estas estratégias práticas melhoram a experiência do utilizador da sua aplicação e aumentam o potencial de geração de receitas. No final deste guia, terá uma compreensão sólida de como implementar subscrições multi-grupos, tirar partido das compras dentro da aplicação e desbloquear novas fontes de receita para a sua app.


Conceitos-Chave Abordados

  • React Native: Framework para desenvolvimento de aplicações nativas utilizando React.

  • Subscrições Multi-Grupos: Gestão de múltiplos níveis ou grupos de subscrição dentro de uma app.

  • Integração Android & iOS: Configuração e personalização específicas por plataforma.


O Que é o RevenueCat?

O RevenueCat é uma plataforma poderosa para gestão de subscrições e compras dentro da aplicação, criada para ajudar programadores a desbloquear o seu verdadeiro potencial de receita. Quer esteja a implementar subscrições multi-grupos ou a simplificar o processo de compra in-app, o RevenueCat oferece todas as ferramentas necessárias. Neste artigo, vamos guiá-lo pela configuração de subscrições multi-grupos com compras integradas, ajudando a maximizar as receitas e melhorar a experiência do utilizador.


Compreender Subscrições Multi-Grupos

Antes de começar o processo de configuração, é essencial perceber o conceito de subscrições multi-grupos e as suas vantagens. Estas subscrições permitem aos utilizadores aceder a diferentes níveis ou categorias de conteúdo dentro da app, através de múltiplas subscrições. Isto pode incluir níveis de funcionalidades, conteúdos exclusivos ou serviços premium. Ao oferecer subscrições multi-grupos, disponibiliza mais opções e flexibilidade aos seus utilizadores, ao mesmo tempo que aumenta o potencial de receitas recorrentes.


Visão Geral do Problema

Um dos clientes da Buzzvel necessitava de uma funcionalidade específica que permitisse aos utilizadores gerir múltiplas subscrições em simultâneo.

Normalmente, as compras in-app na Apple Store e na Google Play Store foram concebidas para suportar apenas uma subscrição por utilizador — ou seja, uma subscrição activa de cada vez (por exemplo: Básica, Premium ou Gold).

No entanto, os requisitos deste cliente eram diferentes. Pretendia permitir aos utilizadores gerir várias subscrições em diferentes grupos dentro da aplicação. Por exemplo, um utilizador poderia ter uma subscrição "Básica" associada a cada subconta da aplicação. Esta funcionalidade é ideal para utilizadores que precisam de organizar e gerir múltiplas contas de forma eficiente.


Antes de Começar

Antes de iniciar o processo de configuração, certifique-se de que possui os seguintes elementos:

  1. Conta no RevenueCat

  2. Conta de programador no Google Play

  3. Conta de programador na App Store

  4. Configuração de compras in-app no Google Play

  5. Configuração de compras in-app na App Store


O Nosso Caso de Utilização

Perceber como funcionam as subscrições multi-grupos na prática é fundamental para compreender o conceito. Estas subscrições permitem que os utilizadores acedam a vários níveis ou categorias de conteúdo da app com uma subscrição associada a cada grupo. No nosso caso, a funcionalidade foi implementada para permitir aos utilizadores subscrever diferentes pacotes de armazenamento para anexos em grupos da aplicação (ex.: 200GB, 500GB, 1TB).

Num cenário típico, criaríamos os seguintes grupos de subscrição na Google Play e App Store:

  • Subscrição Básica

  • Subscrição Premium

  • Subscrição Gold

O problema identificado foi que, tanto a Google Play como a App Store, não permitem nativamente associar subscrições a grupos específicos. Assim, se um utilizador subscrever uma versão Básica ou Premium, essa subscrição será válida para toda a aplicação.


Como Resolvemos o Problema

Depois de organizarmos as subscrições nas lojas, reflectimos essas subscrições como produtos no RevenueCat (atenção aos IDs de subscrição configurados nas lojas). Em seguida, utilizámos o RevenueCat para estruturar esses produtos em Offerings.

Na Buzzvel, organizámos as nossas offerings da seguinte forma:


Grupo 1

  • group1_basic (android_group1_basic, ios_group1_basic)

  • group1_premium (android_group1_premium, ios_group1_premium)

  • group1_gold (android_group1_gold, ios_group1_gold)

Grupo 2

  • group2_basic (android_group2_basic, ios_group2_basic)

  • group2_premium (android_group2_premium, ios_group2_premium)

  • group2_gold (android_group2_gold, ios_group2_gold)

Grupo 3

  • group3_basic (android_group3_basic, ios_group3_basic)

  • group3_premium (android_group3_premium, ios_group3_premium)

  • group3_gold (android_group3_gold, ios_group3_gold)


Exemplo de Configuração

Apple Store

  • O Grupo 1 é um Grupo de Subscrição

  • ios_group1_basic é uma Subscrição dentro do grupo

Google Play

  • O Grupo 1 é uma Subscrição

  • android_group1_basic é um Plano Base / Oferta

RevenueCat

  • O Grupo 1 é um Offering

  • Exemplo de Package: group1_basic

  • Produtos associados: android_group1_basic e ios_group1_basic

E está feito! A partir daqui, pode consultar e gerir múltiplas subscrições através do RevenueCat.


Gestão de Subscrições

Para permitir que o utilizador subscreva através deste modelo, é necessário manter controlo entre os grupos. Na Buzzvel, utilizamos o RevenueCat como agregador de subscrições, uma vez que oferece um excelente SDK para React Native.

JavaScript

const [oferrings, setOferrings] = useState(null);
 const { user } = useAuth()

  async function loadOfferings() {
    const offerings = await Purchases.getOfferings();
    setOferrings(offerings);
  }
	
   const availablePlans = ["group1", "group2", "group3"];

  const currentPackages = useMemo(() => {
    const oferingId = user?.current_subscription?.offering_id;

    if (!oferrings) return [];

    if (oferingId) {
      const currentOferring = oferrings.all?.[oferingId];
      return currentOferring?.availablePackages ?? [];
    } else {
      const oferindIdAvailable = avaiablePlans[0];
      const currentOferring = oferrings.all[oferindIdAvailable];
      return currentOferring?.availablePackages ?? [];
    }
  }, [oferrings, subscription, avaiablePlans]);
  
  useEffect(() => {
	  loadOfferings()
  }, [])

A constante availablePlans pode ser substituída por uma lista de planos aos quais o utilizador já subscreveu. O identificador do plano pode ser obtido através do webhook configurado no RevenueCat após uma compra.

O objeto current_subscription é configurado dentro do objeto do utilizador após uma subscrição. Isto permite identificar a subscrição atual do grupo, possibilitando ao utilizador visualizar outros planos além daquele a que já aderiu.

O array currentPackages irá retornar a lista de pacotes disponíveis com base no grupo atual.

Depois disso, pode listar esse array num componente e adicionar uma ação de compra através de um botão.


Limitações

A principal limitação é o número reduzido de planos disponíveis.

Como visto neste tutorial, criar apenas uma subscrição exige um esforço considerável. O processo envolve:

  • Configurar as subscrições nas lojas (App Store / Google Play),

  • Ligá-las ao RevenueCat,

  • Integrar com o backend,

  • Configurar a resposta no webhook.

A gestão de subscrições nas lojas também é um desafio, já que não existe uma forma nativa de identificar grupos de subscrição se o utilizador quiser gerir a subscrição fora da aplicação (por exemplo, diretamente na Google Play Store ou nas definições de Subscrições no iOS). As subscrições são normalmente listadas apenas com o nome do nível (ex.: Básico, Premium, Gold), sem indicação do grupo.

Antes de configurar tudo, avalie bem o seu caso de uso e quantas contas/subscrições um utilizador poderá ter, e crie os grupos necessários desde o início. Por exemplo, nós criámos oito grupos para o nosso cliente, antecipando que seria difícil ultrapassar esse número. Se no futuro for necessário criar um novo grupo, o esforço valerá a pena, pois o cliente estará a pagar por nove subscrições.


Conclusão

Em suma, embora configurar e gerir subscrições multi-grupos para aplicações Android e iOS com React Native seja um processo complexo e que exige recursos, os benefícios são significativos. Ao tirar partido de ferramentas como o RevenueCat, os programadores conseguem implementar um modelo de subscrição mais sofisticado, que responde às diferentes necessidades dos utilizadores e maximiza o potencial de receita.

A nossa abordagem na Buzzvel demonstra que, com uma boa organização, integração cuidadosa e planeamento estratégico, é possível criar um sistema de gestão de subscrições escalável e eficiente.

Embora existam desafios — como a limitação do número de planos e a dificuldade de gestão fora da app — estes podem ser ultrapassados com planeamento inicial cuidadoso e monitorização contínua. No fim de contas, o esforço investido na criação de um sistema robusto de subscrições multi-grupos compensa, tanto na satisfação do utilizador como no crescimento sustentável do negócio.

Tags

React

Subscreve a
nossa newsletter

Junta-te a 1.000+ pessoas e recebe semanalmente dicas,
boas práticas e insights.