# Integração com RevenueCat

<Aside type="caution" icon="setting" title="É necessária a ajuda do desenvolvedor">
 Você precisará da ajuda de sua equipe de desenvolvimento para configurar a integração. Por favor, compartilhe este guia com eles.
</Aside>

[RevenueCat](https://www.revenuecat.com/) é uma plataforma de gerenciamento de assinaturas que simplifica as compras e assinaturas no aplicativo para empresas nas plataformas iOS, Android e web. Ele fornece ferramentas abrangentes para criar, analisar e aprimorar as assinaturas no aplicativo.

Ao integrar o Pushwoosh com o [RevenueCat](https://www.revenuecat.com/), as empresas podem enviar notificações push direcionadas, mensagens no aplicativo e outras mensagens aos usuários com base em eventos de assinatura enviados pelo RevenueCat para o Pushwoosh. Isso pode incentivar os usuários a renovar assinaturas, fazer upgrade para planos superiores ou aproveitar ofertas especiais, melhorando o engajamento, maximizando a receita e simplificando o gerenciamento de assinaturas.

## Casos de uso

#### Comunicação personalizada

As empresas podem usar a integração para personalizar a comunicação com os clientes. Por exemplo, uma plataforma de e-learning pode aumentar o engajamento do usuário enviando notificações push personalizadas ao detectar uma mudança no plano de assinatura. Essas notificações oferecem orientação na transição, recomendam cursos relevantes com base no novo plano e fornecem benefícios exclusivos alinhados à atualização.

#### Notificações de problemas de faturamento

Quando a assinatura de um usuário enfrenta um problema de faturamento, as empresas podem usar a integração do RevenueCat com o Pushwoosh para enviar prontamente notificações direcionadas. Por exemplo, um serviço de streaming pode notificar o usuário sobre o problema de faturamento e fornecer instruções para resolvê-lo, como atualizar as informações de pagamento.

#### Notificações de compras não renováveis

As empresas podem aproveitar a integração do RevenueCat com o Pushwoosh para transformar compras únicas em relacionamentos duradouros com os clientes. Por exemplo, um serviço de entrega de refeições pode enviar uma notificação push pós-compra agradecendo ao cliente e recomendando produtos relevantes ou promovendo um plano de assinatura para conveniência contínua. Isso promoverá a fidelidade do cliente, impulsionará oportunidades de upsell e potencialmente converterá compradores únicos em assinantes.

#### Promoções de upgrade de plano

Aplicativos com vários níveis de assinatura podem usar a integração para monitorar as assinaturas dos usuários e enviar solicitações de upgrade personalizadas. Por exemplo, um aplicativo de jogos pode usar notificações push para destacar os benefícios de níveis premium, como conteúdo exclusivo ou descontos, incentivando os usuários a elevar suas assinaturas.

## Eventos

A integração permite o rastreamento de vários eventos, criando-os automaticamente no Pushwoosh assim que o primeiro evento é enviado do RevenueCat. Esses eventos incluem:

| Evento                 | Nome do Evento      <div style="width:160px"></div>                   | Descrição                                                                                                                      | Atributos       <div style="width:200px"></div>                                                                                                   |
|---------------------- |--------------------------- |------------------------------------------------------------------------------------------------------------------------------ |--------------------------------------------------------------------------------------------------------------- |
| Compra inicial      | `RC_INITIAL_PURCHASE`      | Uma nova assinatura foi comprada.                                                                                        | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul>                                   |
| Compra não renovável | `RC_NON_RENEWING_PURCHASE` | Um cliente fez uma compra que não será renovada automaticamente.                                                                      | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul>                                   |
| Renovação              | `RC_RENEWAL`               | Uma assinatura existente foi renovada ou um usuário inativo se inscreveu novamente.                                                 | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul>                                   |
| Mudança de produto       | `RC_PRODUCT_CHANGE`        | Um assinante alterou o produto de sua assinatura.                                                                  |                                                                                                              |
| Cancelamento         | `RC_CANCELLATION`          | Uma assinatura ou compra não renovável foi cancelada.                                                                   |                                                                                                             |
| Problemas de faturamento       | `RC_BILLING_ISSUE`         | Ocorreu um problema ao tentar cobrar o assinante.                                                             |                                                                                                              |
| Alias de assinante   | `RC_SUBSCRIBER_ALIAS`      | Ocorre sempre que um novo `app_user_id` é registrado para um assinante existente.                                         |                                                                                                             |
| Assinatura pausada  | `RC_SUBSCRIPTION_PAUSED`   | A assinatura foi configurada para ser pausada no final do período.                                                         |                                                                                                              |
| Descancelamento      | `RC_UNCANCELLATION`        | Uma assinatura cancelada e não expirada foi reativada.                                                                    |                                                                                                             |
| Transferência            | `RC_TRANSFER`              | Uma transferência de transações e direitos foi iniciada entre um(s) ID(s) de Usuário do Aplicativo para outro.                            |                                                                                                             |
| Assinatura estendida | `RC_SUBSCRIPTION_EXTENDED` | Uma assinatura existente foi estendida (a data de expiração do período de assinatura atual foi adiada). |                                                                                                             |
| Expiração          | `RC_EXPIRATION`            | A assinatura de um cliente expira.                                                                                      | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li><li>expiration_at</li><li>purchased_at</li></ul> |

Você pode usar todos esses eventos em suas [jornadas do cliente](/pt/product/customer-journey/pushwoosh-journey-overview). Eventos com o atributo de preço podem ser usados com a [segmentação RFM](/pt/product/audience-data-and-segmentation/segmentation/rfm-segmentation).

## Configurando a integração

### Sincronizar User IDs e HWIDs entre o Pushwoosh e o RevenueCat

Para sincronizar eventos entre o RevenueCat e o Pushwoosh para o mesmo usuário, você precisa definir o UserID do Pushwoosh para corresponder ao App User Id do RevenueCat. Para isso, defina o appUserID do SDK do RevenueCat no SDK do Pushwoosh. [Saiba mais sobre o appUserID do RevenueCat](https://www.revenuecat.com/docs/customers/user-ids#provide-app-user-id-on-configuration)

#### Para Android

Defina o appUserID obtido do SDK do RevenueCat no SDK do Pushwoosh usando o método `Pushwoosh.getInstance().setUserId(appUserIDFromRC);`.

#### Para iOS

Defina o appUserID obtido do SDK do RevenueCat no SDK do Pushwoosh usando o método `[[Pushwoosh sharedInstance] setUserId: appUserIDFromRC];`.

### Enviar eventos do RevenueCat para o Pushwoosh

Depois de sincronizar os User IDs e HWIDs no Pushwoosh e no RevenueCat, ative a integração do Pushwoosh no seu painel do RevenueCat.

1. Navegue até o seu projeto no painel do RevenueCat e encontre o cartão de Integrações no menu à esquerda. Clique em **+ New** ou **Add integration**

<img src="/integrations-revenuecat-integration-1.webp" alt="Encontrando Integrações no painel do RevenueCat"/>

2. Selecione **Webhooks** no menu **Integrations**

<img src="/integrations-revenuecat-integration-2.webp" alt="Selecionando Webhooks no menu de Integrações"/>

3. Dê à integração um nome simples, como _Pushwoosh_, para fácil identificação.
4. Insira a seguinte URL no campo **Webhook URL**:

`https://integration-revenuecat.svc-nue.pushwoosh.com/integration-revenuecat/v1/post-event?pwapp=APP_CODE"`

<img src="/integrations-revenuecat-integration-3.webp" alt="Inserindo a URL do Webhook para a integração com o Pushwoosh"/>

Na URL, substitua **APP_CODE** pelo código do seu aplicativo Pushwoosh existente, que está localizado abaixo do nome do seu aplicativo na sua conta Pushwoosh.

<img src="/integrations-revenuecat-integration-4.webp" alt="Encontrando o código do aplicativo Pushwoosh"/>

5. No campo **Authorization header value**, insira seu **token da API do Pushwoosh.** Você pode encontrar este token em **Settings > API Access** no Pushwoosh.

<img src="/integrations-revenuecat-integration-5.webp" alt="Inserindo o token da API do Pushwoosh no cabeçalho de autorização"/>

6. Decida se deseja transmitir eventos para compras de produção (ao vivo), compras de sandbox (teste) ou ambos.
7. No menu suspenso **App**, especifique se os eventos de webhook devem ser despachados para um único aplicativo ou para todos os aplicativos dentro do projeto.
8. No menu suspenso **Event Type**, selecione se deseja enviar todos os eventos ou especifique quais eventos enviar para o Pushwoosh.

<img src="/integrations-revenuecat-integration-6.webp" alt="Configurando tipos de evento no webhook do RevenueCat"/>

9. Escolha mostrar todos os eventos, apenas eventos bem-sucedidos ou apenas eventos com falha.

<img src="/integrations-revenuecat-integration-7.webp" alt="Selecionando opções de exibição de eventos no webhook"/>

Além disso, você tem a opção de enviar um Webhook de teste.