A validação de compras no aplicativo (IAP) é um processo no qual a Singular avalia os eventos de receita em seus aplicativos (Android e iOS) e detecta compras inválidas/fraudulentas de usuários para que elas não distorçam suas métricas de receita.
Para obter mais informações sobre a configuração de eventos em sua integração de SDK, consulte o guia de SDKapropriado e Testando eventos e receita.
Perguntas gerais
As compras inválidas geralmente são causadas pelos seguintes tipos de fraude:
-
Fraude de usuário: Usuários reais invadem/enganam o aplicativo para obter favores/itens baseados em IAP sem pagar por eles.
-
Fraude de marketing: Editores fraudulentos enviam eventos de receita falsos para aumentar seus KPIs e fazer parecer que trazem usuários de qualidade.
O Google Play e a Apple App Store geram recibosdigitais quando os usuários fazem transações financeiras por meio de aplicativos para Android e iOS. Cada recibo codifica os detalhes da compra e é assinado criptograficamente pelo Google/Apple.
Você pode enviar o recibo de compra para a Singular juntamente com seus eventos de receita, permitindo que a Singular verifique a legitimidade da compra.
Quando a Singular recebe um evento de receita com um recibo, ela verifica o seguinte:
- A Singular recebeu um recibo.
- O recibo não foi reutilizado (ou seja, enviado em uma transação anterior).
- A assinatura no recibo é válida.
- No iOS, a Singular verifica a assinatura usando o certificado da Apple.
- No Android, a Singular usa a chave de licenciamento do aplicativo, se ela tiver sido fornecida.
- Os detalhes do recibo correspondem aos detalhes do aplicativo e da transação
Se a Singular descobrir que o evento de receita é inválido, ele será renomeado para __iapinvalid__.
Observação: para ajudar a tornar o processo ainda mais seguro, você pode fornecer o seguinte:
- Chave de licenciamento do Android: Permite que a Singular verifique os recibos criptograficamente no Android. Para obter mais informações, consulte Adição de sua chave de licenciamento do Google Play.
- O identificador da SKU do produto e o identificador da transação. Para obter mais informações, consulte a documentação do SDK(Unity, React Native, Android, iOS) ou a documentação do S2S
Para enviar recibos de compra, use o método de relatório IAP correto de acordo com sua plataforma e tipo de integração:
- Rastreamento de receita no Unity
- Rastreamento de receita no React Native
- Rastreamento de receita no Android
- Rastreamento de receita no iOS
- Rastreamento de receita no S2S
A falta de recibos pode indicar receita fraudulenta.
Quando você tiver uma versão do seu aplicativo que envia recibos para a Singular para cada compra e essa nova versão estiver disponível na loja de aplicativos, todos os novos eventos (dessa versão em diante) deverão ter recibos incluídos.
Para que a Singular rejeite a receita de qualquer compra que não venha com um recibo, ative a opção Rejeitar IAP sem recibo para seu aplicativo na página Aplicativos.
Observação: A receita de usuários que instalaram ou atualizaram o aplicativo antes de ativar essa opção não será rejeitada. A data exata é mostrada ao lado do botão de alternância.
Quando a validação de compra estiver ativada, somente a receita válida será mostrada no campo Revenue (Receita ) nos relatórios.
Os seguintes campos aparecem nos registrospara os tipos Event e Postback:
Campo | O que procurar |
Event name | Se o recibo for inválido, o nome do evento será __iapinvalid__. |
Event revenue | Se o recibo for inválido, a receita do evento será 0. |
Received revenue event | O nome original do evento. |
Received revenue | A receita original reivindicada. |
Is revenue receipt included | Se foi fornecido um recibo para a compra. |
Is revenue valid | Se a compra foi considerada válida. |
Postbacks internos do BI
A Singular envia os seguintes parâmetros:
Parâmetro | O que procurar |
event_name | Se o recibo for inválido, o nome do evento será __iapinvalid__. |
amount | Se o recibo for inválido, a receita do evento será 0. |
received_revenue_event | O nome original do evento. |
received_revenue | A receita original reivindicada. |
purchase_receipt_included | Se foi fornecido um recibo para a compra. |
purchase_receipt_valid | Se a compra foi considerada válida. |
Postbacks personalizados
Para configurar postbacks personalizados, consulte a seção Macrosde eventoem Macros de postback e parâmetros de passagem.
Observação: se você quiser receber postbacks para receitas rejeitadas, poderá configurar postbacks para o evento __iapinvalid__