O Desafio Multiplataforma
A maioria dos apps móveis é lançada tanto no iOS quanto no Android, mas cada plataforma lida com as compras no app de forma diferente. A Apple usa o StoreKit e as App Store Server Notifications. O Google usa a Billing Library e as Real-Time Developer Notifications. Validar compras e manter a atribuição de afiliados em ambas as plataformas exige uma abordagem unificada.
Por Que a Validação Multiplataforma Importa
Sem uma validação de compras unificada, você enfrenta diversos problemas:
- As conversões de afiliados em uma plataforma podem ser perdidas ou contabilizadas incorretamente
- Os cálculos de comissão podem diferir entre as plataformas
- Seus relatórios mostram dados fragmentados que são difíceis de analisar
- Usuários que trocam de dispositivo entre clicar em um link de afiliado e fazer uma compra podem perder sua atribuição
Uma camada de validação unificada resolve esses problemas ao fornecer uma única fonte de verdade para todas as compras, independentemente da plataforma.
A Abordagem de Gerenciamento de Assinaturas
A forma mais simples de lidar com a validação multiplataforma é por meio de um serviço de gerenciamento de assinaturas como o RevenueCat ou o Adapty. Esses serviços:
- Fornecem um único SDK que funciona tanto no iOS quanto no Android
- Validam recibos com os servidores da Apple e do Google
- Normalizam os eventos de compra em um formato unificado
- Enviam eventos de webhook para todas as mudanças no ciclo de vida da assinatura
O Insert Affiliate recebe esses eventos de webhook normalizados e os associa às atribuições de afiliados, independentemente de qual plataforma processou o pagamento de fato.
Essa arquitetura significa que você escreve o código de tratamento de compras uma única vez (por meio do SDK de gerenciamento de assinaturas) e o rastreamento de afiliados funciona automaticamente em ambas as plataformas.
Abordagem de Integração Direta com as Lojas
Se você preferir não usar um serviço de gerenciamento de assinaturas de terceiros, o Insert Affiliate também se integra diretamente com as App Store Server Notifications (V2) e com as Google Play Real-Time Developer Notifications.
Para iOS: Configure as App Store Server Notifications para enviar eventos ao endpoint do Insert Affiliate. As notificações incluem dados de transação em JWTs assinados que o Insert Affiliate verifica e processa.
Para Android: Configure o Google Cloud Pub/Sub para encaminhar as Real-Time Developer Notifications ao Insert Affiliate. As notificações contêm mudanças de estado de assinatura e de compra.
Com a integração direta, seu app trata o processamento de compras nativamente em cada plataforma, enquanto o Insert Affiliate cuida da camada de atribuição de afiliados.
Mantendo a Atribuição Entre Plataformas
O desafio crítico é conectar o clique no link de afiliado à compra final quando esses eventos acontecem em plataformas diferentes:
Cenário 1 — Mesmo dispositivo: O usuário clica em um link de afiliado no seu iPhone, instala pela App Store e faz a compra. Esse é o fluxo padrão e a atribuição funciona por meio do deep linking e do SDK do Insert Affiliate.
Cenário 2 — Web para app: O usuário clica em um link de afiliado em um navegador de desktop e, mais tarde, instala no celular. O deferred deep linking do Insert Affiliate lida com isso ao armazenar a atribuição no servidor e associá-la quando o usuário cria uma conta.
Cenário 3 — Entre dispositivos: O usuário clica em um link de afiliado em um dispositivo e faz a compra em outro. A atribuição em nível de conta lida com isso — quando o usuário faz login no dispositivo de compra, a atribuição armazenada conecta a compra ao afiliado original.
Lidando com Tipos de Compra
Diferentes tipos de compra exigem diferentes abordagens de validação:
Assinaturas com renovação automática: Ambas as plataformas enviam notificações de servidor para compras iniciais, renovações, cancelamentos e novas tentativas de cobrança. Essas são as mais simples de rastrear porque a plataforma notifica você de cada mudança de estado.
Compras consumíveis: Nenhuma notificação de servidor é enviada para consumíveis em qualquer uma das plataformas. Seu app deve validar o recibo no momento da compra e reportar o evento ao Insert Affiliate por meio do SDK.
Compras não consumíveis: Semelhante aos consumíveis — valide no momento da compra e reporte por meio do SDK.
Testando em Múltiplas Plataformas
Teste o fluxo completo em ambas as plataformas de forma independente:
- Clique em um link de afiliado de teste em cada plataforma
- Conclua compras em sandbox em cada plataforma
- Verifique se a atribuição aparece corretamente no painel do Insert Affiliate
- Confirme se os eventos de webhook de ambas as plataformas são recebidos e processados
- Valide se os cálculos de comissão são consistentes entre as plataformas
Existem ambientes de sandbox tanto para a Apple (App Store sandbox) quanto para o Google (faixas de teste no Google Play Console). Use-os extensivamente antes de entrar em produção.
Melhores Práticas
Use um serviço de gerenciamento de assinaturas, a menos que tenha um motivo específico para não fazê-lo. O custo de engenharia de manter integrações diretas com as APIs da Apple e do Google é significativo e contínuo, à medida que ambas as plataformas atualizam seus sistemas.
Qualquer que seja a abordagem escolhida, garanta que todos os eventos de compra passem por um único sistema de atribuição (Insert Affiliate), para que seus relatórios sejam unificados e precisos em todas as plataformas.
