Visão geral: mensure e valide automaticamente a receita de compras in-app e assinaturas auto-renováveis para ter uma visão completa dos ciclos de vida do seu cliente e métricas precisas de ROAS.
Visão geral
Os anunciantes podem usar a receita de compras in-app (IAP) validadas e de assinatura para medir:
- Toda a receita de compras in-pp de produtos e assinaturas gerenciadas por meio do App Store Connect (iOS) ou do Google Play Console (Android).
- Reembolsos.
- Receita de transação pendente e adiada (Android).
- Eventos relacionados à assinatura que ocorrem dentro ou fora do seu aplicativo.
A solução de receita de IAP e assinatura também:
- Garante que nenhuma transação duplicada seja registrada. Para iOS, ela também garante que nenhuma duplicação seja registrada para compartilhamento familiar.
- Permite que a AppsFlyer encaminhe transações da Apple App Store para você (o anunciante).
- Fornece dados True Revenue, ou seja, dados de receita líquida que levam em consideração a comissão e os impostos da loja.
Os dados de compra e assinatura são originários de:
- O conector SDK de compra da AppsFlyer para Android e iOS (wrapper Unity incluído).
- Notificações do servidor App Store e Google Play (RTDN) enviadas para AppsFlyer.
Os dados de receita de compra e assinatura estão disponíveis através dos dashboards e relatórios da AppsFlyer. Eles também podem ser compartilhados com parceiros por meio de postbacks.
Considerações:
- Se usar esta solução de métrica de receita de assinatura e IAP, você não deve enviar eventos de compra in-app ou executarvalidateAndLogInAppPurchase, pois isso resultará na declaração de receita duplicada.
- A receita de assinatura pode começar a registrar as alterações do ciclo de vida do assinante para os assinantes existentes assim que eles lançam uma versão do aplicativo que inclui o conector do SDK de compra.
Fluxo:
- Um usuário faz uma compra in-app ou uma assinatura renovável automaticamente.
- O aplicativo faz uma transação na loja de aplicativos.
- O conector do SDK de compra da AppsFlyer detecta automaticamente a compra e envia sua carga para a AppsFlyer para validação e registro.
-
A AppsFlyer valida a compra com a loja relevante para garantir que não seja fraudulenta.
- Após a validação bem-sucedida, a AppsFlyer registra a compra ou assinatura.
- Se a validação de recebimento falhar, o evento será exibido no relatório de dados brutos de eventos in-app bloqueados (disponível para assinantes do Protect360).
- A AppsFlyer transfere a resposta para o conector SDK, que por sua vez transfere a resposta de validação de recebimento (sucesso ou falha) para o aplicativo.
-
Quaisquer notificações recebidas do servidor também são processadas pela lógica de negócios de receita de assinatura e compra da AppsFlyer.
- As notificações sobre transações relatadas anteriormente via conector SDK são validadas e processadas, resultando na criação interna de um evento de compra ou ciclo de vida.
- As notificações sobre transações desconhecidas são descartadas.
- Para iOS, todas as notificações do servidor podem ser redirecionadas para seus próprios servidores.
Fluxo de trabalho de integração de receita de assinatura e IAP
Siga com precisão a ordem das instruções de configuração listadas na tabela abaixo para garantir precisão otimizada e relatórios completos de IAP e receitas de assinaturas auto-renováveis e eventos de ciclo de vida. Deixar de fazer isso pode resultar em imprecisões permanentes nos relatórios. Detalhes completos de cada etapa estão incluídos nas aba depois da tabela.
Etapa | Tarefas |
---|---|
1 |
Configure notificações para IAP e receita de assinaturas do Google Play. |
2 |
Configure notificações para IAP e receita de assinaturas da iOS App Store. |
3 |
|
4 |
Integre a True Revenue tax API. Isso só será necessário se você quiser editar as taxas de imposto padrão. Caso contrário, os impostos serão informados para qualquer transação medida pelo ROI360. |
5 |
Teste a integração para garantir que:
|
6 |
Lance as versões do aplicativo Android e iOS com os conectores do SDK de compra. |
Etapa 1: Configure as notificações do Google Play
Antes de começar:
- A configuração da receita de IAP e assinatura consiste em etapas executadas na plataforma Google Cloud e na IU da AppsFlyer. Recomendamos que você mantenha as abas da plataforma Google Cloud e AppsFlyer abertas durante a configuração.
- A configuração na IU da AppsFlyer requer permissões de administrador.
Siga as instruções na aba abaixo para configurar notificações do Google Play:
1.1 :Vincule sua conta de desenvolvedor do Google Play ao seu projeto do Google Cloud
- No Google Play Console, acesse sua conta de desenvolvedor do Google Play.
- Vincule a conta ao seu projeto do Google Cloud. Para obter instruções, consulte este tópico de ajuda do Google.
- Ative a API do desenvolvedor do Google Play. Para obter instruções, consulte este tópico de ajuda do Google.
1.2 Crie uma conta de serviço
- Acesse o Google Cloud e abra o projeto que você acabou de vincular em 1.1.
- Em seu projeto, vá para IAM and Admin > Service Accounts e clique em Create service account.
- Na página Criar conta de serviço, preencha a etapa Informações da conta de serviço.
- Clique em Criar e continuar.
- Na etapa Conceder acesso ao projeto a esta conta de serviço, selecione a função de assinante Pub/sub.
- Clique em Continuar > OK.
1.3: Faça o download da chave privada da conta.
- Na página Contas de serviço , localize a conta de serviço relevante e clique em
e depois em Gerenciar chaves.
- Na aba Chaves da página da conta de serviço, clique em ADICIONAR CHAVE > Criar nova chave.
- Na caixa de diálogo Criar chave privada, selecione o tipo de chave JSON .
- Clique em Criar. O arquivo JSON de chave privada é baixado.
- Na AppsFlyer, vá para ROI360 > Configurações de receita.
- Selecione seu aplicativo na lista.
- Na aba Compras e assinaturas, clique em
para carregar o arquivo JSON.
1.4: Defina permissões de acesso à API
- No Google Play Console, vá para Configuração > Usuários e permissões.
- Na lista Contas de serviço, localize a conta de serviço que você criou em 1.2 clique em Gerenciar permissões do Play Console.
- Na aba Permissões, vá para a seção Permissões da conta e selecione ambos:
- Ver dados financeiros.
- Gerenciar pedidos e assinaturas.
- Clique em Convidar usuário e em Enviar convite.
Ou 1.5 Envie notificações do Google Play diretamente para a AppsFlyer
Selecione um dos dois métodos usados para receber dados de IAP e receita de assinatura do Google Play.
Ou:
- Crie um tópico onde a AppsFlyer receba diretamente as notificações RTDN do Google Play (continue nesta etapa)
ou
- Defina a AppsFlyer como assinante de seu tópico PUB/SUB pré-existente (vá para a próxima etapa).
Para criar um tópico onde a AppsFlyer receba diretamente as notificações RTDN, execute as seguintes etapas:
- Na AppsFlyer, vá para ROI360 > Configurações de receita > Compras e assinatura, selecione Permitir que o tópico da AppsFlyer obtenha mensagens RTDN diretamente do Google.
- Copie o tópico da AppsFlyer para a área de transferência.
- Em Google Play Console > Todos os aplicativos, selecione seu aplicativo. O painel é aberto.
- Acesse Configuração de monetização e, na seção Cobrança do Google Play, no campo Nome do tópico, cole o endereço do tópico da AppsFlyer que você copiou na subetapa 2.
- Clique em Salvar alterações.
OU 1.6 Encaminhe notificações do Google Play para a AppsFlyer
O outro método para receber notificações de IAP e assinatura é aplicável quando você já possui um tópico pré-existente que recebe notificações do Google Play. Nesse caso, defina a AppsFlyer como assinante do seu tópico PUB/SUB pré-existente em vez de criar um novo tópico (como na etapa anterior).
Para definir a AppsFlyer como assinante de seu tópico PUB/SUB pré-existente
- Na AppsFlyer, vá para ROI360 > Configurações de receita > Compras e assinaturas, selecione Encaminhar suas mensagens de tópico RTDN para a AppsFlyer.
- Copie o URL do ponto final para a área de transferência.
- Na plataforma do Google Cloud, em seu projeto, pesquise Pub/Sub.
- Em Pub/Sub, vá para a seção Tópicos e verifique se você tem um tópico de publicação/assinatura dedicado para assinaturas.
- Vá para a seção Assinaturas e clique em Criar assinatura.
- Digite o ID da assinatura.
- Selecione o tópico relevante do pub/sub no menu suspenso.
- Para Tipo de entrega, selecione Push.
- Insira o URL do ponto final que você registrou na subetapa 2.
- Para Data de expiração, selecione Nunca expirar.
- Clique em Salvar.
- Vá para a seção Assinaturas e copie o nome do tópico para a área de transferência.
- No Google Play Console, vá para Configuração de monetização e, na seção Faturamento do Google Play, no campo Nome do tópico, cole o nome do tópico que você copiou na etapa anterior.
- Clique em Salvar.
1.7 Configure serviços automáticos
- Na AppsFlyer, vá para ROI360 > Configurações de receita > Compras e assinaturas, ative um ou ambos:
- Validar compras com o Google Play .
- Atribuir e relatar assinaturas auto-renováveis.
- [Opcional] Marque Permitir que a AppsFlyer desduplique transações que já foram relatadas. Isso garante que nenhuma transação duplicada seja registrada.
- Clique em Salvar.
Etapa 2: Configure notificações da App Store do iOS
Antes de começar:
-
Configurar a receita de IAP e assinatura consiste em etapas realizadas na App Store Connect e na UI da AppsFlyer. Mantenha as abas da App Store Connect e da AppsFlyer abertas durante a configuração.
- A configuração na IU da AppsFlyer requer permissões de administrador.
Para configurar o IAP e a receita de assinatura:
-
No App Store Connect, vá para Recursos > Assinaturas e clique em Gerenciar para obter a chave secreta compartilhada do App Store Connect.
-
Na AppsFlyer, vá para ROI360 > Configurações de receita > Compras e assinaturas.
A página de configuração de receita é aberta. - Insira sua chave secreta compartilhada da App Store Connect.
- Copie o endpoint da AppsFlyer e insira-o em sua configuração da App Store Connect:
- [Opcional] Selecione para enviar notificações de servidor para seu endpoint e digite seu endpoint.
-
Na página de configuração de receita de assinatura e IAP da AppsFlyer, ative um ou ambos:
- Atribuir e relatar assinaturas auto-renováveis.
- Validar compras com a Apple App Store.
-
[Opcional] Marque Permitir que a AppsFlyer desduplique transações que já foram relatadas.
Isso garante que nenhuma transação duplicada seja registrada. -
[Opcional] Marque Desduplicar receita por mtivos de Compartilhamento familiar.
Isso garante que nenhuma receita duplicada seja registrada para compras de compartilhamento familiar. Eventos de receita para outros membros da família incluem o parâmetro purchase_ownership_type=FAMILY_SHARED e exibem receita zero.
Observação:
- A Apple só pode enviar notificações de servidor para um endpoint.
- Os clientes podem enviar notificações do servidor Apple de seu backend diretamente para o URL do endpoint de notificação, mas as solicitações devem ser exatamente como são recebidasda App Store.
Etapa 3: Integre o conector do SDK de compra
A integração do conector do SDK de compra permite que seu aplicativo registre compras in-app e assinaturas renováveis automaticamente. Você pode optar por registrar um ou ambos os tipos de receita na página Configurações de receita > Compras e assinaturas na AppsFlyer para Android e iOS.
Para integrar o conector do SDK:
- Peça ao seu desenvolvedor Android para integrar o conector do SDK de compra para Android da AppsFlyer.
- O conector de compra V1 para Android da AppsFlyer oferece suporte à biblioteca de faturamento 4 do Google.
- O conector de compra V2 para Android da AppsFlyer oferece suporte à biblioteca de faturamento 5 do Google.
- Diga ao seu desenvolvedor iOS para integrar o conector do SDK de compra do iOS da AppsFlyer.
Observação: para aplicativos criados usando a estrutura do Unity, consulte a documentação do conector do Unity
Etapa 4: Integre a API de imposto True Revenue
True Revenue é uma camada de lógica de negócios criada para atender à solução de receita de assinaturas e compras in-app da AppsFlyer. Ela calcula automaticamente o valor da receita líquida para cada transação recebida em tempo real e o inclui em relatórios. O imposto é informado por padrão para qualquer transação medida pelo ROI360 usando a configuração de taxa de imposto padrão. A configuração pode ser editada usando a API fiscal dedicada.
Para editar a configuração fiscal usando a API fiscal:
-
Dê ao seu desenvolvedor:
- O token da API V2 a ser usado como a chave de autorização.
- Os parâmetros e valores que contêm informações sobre quais impostos calcular, conforme descrito na tabela a seguir.
- Peça ao seu desenvolvedor para seguir as instruções da tax API para criar regras de taxa de imposto. Observação: A API permite um arquivo JSON no corpo da solicitação de post. Este arquivo JSON inclui todos os países e taxas de impostos suportados. O desenvolvedor pode editá-lo ou usá-lo como está na API.
Parâmetros e valores para usar na API
Parâmetro | Obrigatório | Observações | Registre o valor (para uso do seu desenvolvedor) |
---|---|---|---|
tax_name | Sim |
|
|
tax_rate | Sim |
|
|
tax_exclusive | Não |
|
|
país | Não |
|
|
subdivision | Não |
|
|
postal_code | Não |
|
|
deduction_order | Não |
|
Etapa 5: Testando IAP e receita de assinatura
É melhor validar as integrações de IAP e receita de assinatura em um ambiente Sandbox para garantir que o conector do SDK esteja devidamente integrado e que as notificações do servidor sejam configuradas e recebidas corretamente pela AppsFlyer.
Antes do teste, certifique-se de que seu desenvolvedor configure o ambiente Sandbox no SDK Connector (definindo o Sandbox
como true
). Isso permite que o ROI360 crie apenas eventos in-app Sandbox com receita 0 para testes. Assim, os dados de produção não são afetados.
Considerações sobre o ambiente Sandbox
No ambiente sandbox:
- Somente os eventos de compra inicial fazem com que o conector do SDK produza um evento que é registrado pela AppsFlyer. Um evento IAP é chamado af_purchase_sandbox_sdk. Um evento de assinatura é chamado af_ars_sandbox_sdk.
-
Todos os outros eventos de compra são descartados, o que significa que o conector SDK não produz um evento.
- As notificações do servidor de entrada só são processadas se o conector SDK primeiro registrar a transação original. Neste caso, um evento IAP é produzido e se chama af_purchase_sandbox_s2s. Um evento de assinatura é produzido e se chama af_ars_sandbox_s2s.
- Um evento não é produzido para nenhuma notificação de servidor para a qual o conector SDK não registrou primeiro a transação original.
-
Para iOS, certifique-se de que, em Notificações do servidor da loja de aplicativos, na conexão da loja de aplicativos, o ponto final da AppsFlyer esteja configurado como seu URL do servidor Sandbox.
- Para Android, os testes realizados por Testadores de Licença resultam em eventos Sandbox mesmo que o ambiente Sandbox no SDK não esteja configurado.
Testar receita de IAP e assinatura
Para testar receita de IAP e assinatura:
- Diga aos seus desenvolvedores para seguirem as instruções do Android , iOS e Unity para configurar o ambiente Sandbox no SDK Connector.
- Faça uma compra de teste. As transações realizadas pelo Testador de Licença no Google Play e pelo TestFlight no iOS também são compatíveis.
Observação: qualquer produto de assinatura pode ser testado apenas uma vez em cada dispositivo de teste. Em outras palavras, você não pode registrar várias compras de teste da mesma assinatura no mesmo dispositivo, pois elas não serão registradas. -
Verifique se o evento é exibido no painel Atividade da AppsFlyer. Um evento IAP é chamado af_purchase_sandbox_sdk. Um evento de assinatura é chamado af_ars_sandbox_sdk.Esses eventos incluem:
- Uma receita com valor 0 (para não distorcer os relatórios reais da AppsFlyer).
- Um parâmetro af_sandbox_revenue que inclui o valor da receita do produto comprado para que você se certifique de que a receita correta seja relatada.
- Se você estiver testando um produto por assinatura, dê algum tempo para que a AppsFlyer receba uma notificação do servidor. Geralmente isso ocorre alguns minutos após a compra inicial.
-
Verifique se um evento é exibido no painel Atividade da AppsFlyer. Uma compra de assinatura auto-renovável é chamada af_ars_sandbox_s2s. O evento inclui:
- Uma receita com valor 0 (para não distorcer os relatórios reais da AppsFlyer).
- Um parâmetro af_sandbox_revenue que inclui o valor da receita do produto comprado para que você se certifique de que a receita correta seja relatada.
Etapa 6: Lance a versão do aplicativo com o conector do SDK
Antes de seu desenvolvedor lançar a nova versão do aplicativo com o conector do SDK de compra integrado, certifique-se de que:
- Os eventos in-app que você deseja capturar como um IAP ou assinatura não são bloqueados por uma das regras de validação que você configurou na AppsFlyer.
- Seu desenvolvedor deve ter sinalizadores de área restrita marcados como falsos.
-
Para iOS, certifique-se de que, em Notificações do servidor da loja de aplicativos, na conexão da loja de aplicativos, o ponto final da AppsFlyer esteja configurado como seu URL do servidor Sandbox.
Referência
Eventos e parâmetros relacionados a IAP
As seções seguintes mostram os eventos relacionados a IAP que a AppsFlyer mede, e os parâmetros que são registrados para cada evento. Consulte o dicionário de parâmetros do evento para obter uma explicação dos parâmetros incluídos.
Todos os eventos gerados:
- São considerados eventos S2S.
- São acessíveis em relatórios de dados brutos (como eventos in-app orgânicos ou não orgânicos).
- Podem ser enviados por postbacks para parceiros.
- Podem ser usados no SKAN Conversion Studio.
Observação: dependendo da plataforma do dispositivo do usuário, alguns parâmetros nem sempre são preenchidos para um evento in-app.
Compra (af_purchase)
Descrição
Registrado quando um usuário faz uma compra.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_net_revenue
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
- af_net_revenue_factors
Compra cancelada (af_purchase_canceled)
Descrição
Registrado quando um usuário cancela uma compra.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Compra pendente (af_purchase_pending)
Descrição
Registrado quando um usuário faz uma compra, mas o pagamento ainda não foi processado.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Reembolso (af_purchase_refund)
Descrição
Registrado quando uma compra é reembolsada.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_discount_type
- event_revenue_usd
- event_revenue (incluído no evento quando a receita é maior que zero)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Compra de teste (af_purchase_sandbox_sdk)
Descrição
Registrado ao testar uma compra registrada por SDK em ambiente de área restrita.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Compra de teste (af_purchase_sandbox_s2s)
Descrição
Registrado ao testar uma compra relatada por S2S em um ambiente sandbox.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Eventos e parâmetros relacionados à assinatura
As seções seguintes mostram os eventos relacionados à assinatura que a AppsFlyer mede, e os parâmetros que são registrados para cada evento. Consulte o dicionário de parâmetros do evento para obter uma explicação dos parâmetros incluídos.
Todos os eventos gerados:
- São considerados eventos S2S.
- São acessíveis em relatórios de dados brutos (como eventos in-app orgânicos ou não orgânicos).
- Podem ser enviados por postbacks para parceiros.
- Podem ser usados no SKAN Conversion Studio.
Observação: dependendo da plataforma do dispositivo do usuário, alguns parâmetros nem sempre são preenchidos para um evento in-app.
Teste iniciado (af_ars_trial_started)
Descrição
Registrado quando um assinante inicia um período de teste.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Teste cancelado (af_ars_trial_canceled)
Descrição
Registrado quando um assinante cancela a renovação automática da assinatura durante o período de teste. Se um usuário não restaurar a auto-renovação dentro do período de teste, segue-se um evento de churn.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Churn do teste (af_ars_trial_churned)
Descrição
Registrado quando ocorre o churn de um assinante após um período de teste. Isso acontece após o cancelamento da renovação automática e a expiração do período de avaliação. Também pode acontecer após uma cobrança ou questão técnica com a renovação que leva ao churn.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Conversão do teste (af_ars_trial_converted)
Descrição
Registrado quando uma renovação com preço total começa, após um período de teste.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- af_revenue (incluído no evento apenas quando a receita for maior que zero.)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Início da assinatura (af_ars_subscription_subscription_started)
Descrição
Registrado quando se inicia uma assinatura com desconto ou a preço integral.
Observação:
- Novas assinaturas só podem ser registradas através do conector SDK.
- Para o iOS, se um assinante recompra uma assinatura que já possui, o conector SDK reporta uma validação de recibo bem sucedida de volta ao aplicativo, mas não registra uma nova transação na AppsFlyer.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (incluído no evento quando a receita é maior que zero)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Assinatura cancelada (af_ars_subscription_canceled)
Descrição
Registrado quando uma assinatura de renovação automática é cancelada no meio de um período de faturamento. Se um usuário não restaurar a auto-renovação dentro do período de faturamento, segue-se um evento de churn.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Assinatura pausada (af_ars_subscription_paused) - Somente Android
Descrição
Registrado quando um usuário pausa uma assinatura ativa.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Assinatura retomada (af_ars_subscription_resumed)
Descrição
Registrado quando uma assinatura de preço total é retomada após uma assinatura em que houve churn ou reembolso.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- af_reason
- event_revenue (incluído no evento quando a receita do evento é maior que zero)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Churn da assinatura (af_ars_subscription_churned)
Descrição
Registrado quando ocorre o churn de um assinante. Isso geralmente acontece após o cancelamento da renovação automática ou a expiração do período de cobrança. Também pode acontecer após uma cobrança ou questão técnica com a renovação que leva ao churn.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Assinatura reembolsada (af_ars_subscription_refunded)
Descrição
Registrado quando um reembolso é emitido para um assinante.
Observação:
- Este evento geralmente é gerado junto com um valor negativo. Nos casos em que é impossível detectar quais transações foram reembolsadas, ou os detalhes do reembolso não estão incluídos na notificação, o evento de reembolso não mostra nenhum valor.
Parâmetros
- app_id
- customer_user_id
- af_reason
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_refunded_transaction_ids
- event_revenue_usd
- event_revenue (incluído no evento quando a receita é maior que zero)
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_store
- af_environment
- af_period_type
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Carência de faturamento da assinatura (af_ars_subscription_billing_grace)
Descrição
Registrado quando uma renovação de assinatura falha devido a um problema de cobrança e o assinante entra no período de carência de cobrança.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Assinatura renovada (af_ars_subscription_renewed)
Descrição
Registrado quando uma assinatura de renovação automática é feita.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (incluído no evento quando a receita é maior que zero)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Assinatura alterada (af_ars_subscription_xgraded)
Descrição
Registrado quando um assinante faz upgrades, redução, ou cross-grades para um produto diferente.
Parâmetros
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (incluído no evento quando a receita é maior que zero)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Assinante existente (af_ars_existing_subscriber)
Descrição
Registrado quando o conector do SDK é notificado sobre um assinante no meio de um ciclo de cobrança, antes de receber uma notificação de acompanhamento do servidor que faz a transição do assinante para outro estágio relevante do ciclo de vida. Esse evento geralmente é gerado durante o período de integração e adoção do conector do SDK.
Parâmetros
- app_id
- customer_user_id
- país
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Compra de teste (af_ars_sandbox_sdk)
Descrição
Registrado ao testar uma compra registrada por SDK em ambiente de área restrita.
Parâmetros
- app_id
- customer_user_id
- país
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Compra de teste (af_ars_sandbox_s2s)
Descrição
Registrado ao testar uma compra relatada por S2S em um ambiente sandbox.
Parâmetros
- app_id
- customer_user_id
- país
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Dicionário de parâmetros
Os parâmetros para IAP e eventos de assinatura são exibidos em relatórios de dados brutos como suas próprias colunas ou preenchidos como parte do valor do evento.
Os parâmetros que possuem suas próprias colunas são:
- app_id
- customer_user_id
- country_code
- af_currency
- event_revenue_usd
- af_revenue
- android_id
- ip
- idfa
- appsflyer_id
Consulte o dicionário de campos de dados para obter mais detalhes sobre esses parâmetros.
A tabela a seguir descreve os parâmetros de dados brutos disponíveis em eventos ARS e VIAP.
Parâmetro | Observações | Produto |
---|---|---|
af_cancelation_date_ms | Data do cancelamento | IAP |
af_reason |
|
|
af_expires_date_ms |
A data de vencimento do atual ciclo de cobrança da assinatura |
Assinatura |
af_subscription_ownership_type |
FAMILY_SHARED significa que o usuário tem acesso através do compartilhamento familiar. PURCHASED significa que o usuário pagante fez a compra. |
Assinatura |
af_discount_id |
O ID da oferta apresentada ao usuário durante a compra inicial. O ID é preenchido apenas quando há um código de desconto. |
|
af_discount_type |
O tipo de desconto resgatado pelo usuário. Valores possíveis:
|
Assinatura |
af_original_transaction_id |
|
|
af_order_id |
|
|
af_purchase_token |
|
|
af_transaction_id |
|
|
af_purchase_state |
Valores possíveis:
|
IAP |
af_original_transaction_id |
|
|
af_refunded_transaction_ids |
|
|
af_product_id |
O ID do produto de assinatura |
|
af_purchase_date_ms |
A data de compra do evento in-app informado do ID do produto |
|
af_store |
A loja de aplicativos da qual o produto de assinatura foi comprado |
|
af_environment |
O ambiente do qual os dados são recebidos, seja produção ou sandbox. |
|
af_period_type |
|
Assinatura |
store_commission |
|
|
af_net_revenue |
Receita líquida calculada com base em todas as razões fatorizadas. Ver af_net_revenue_factors. |
|
af_net_revenue_factors |
|
|
af_net_revenue_tax_name |
|
|
af_net_revenue_tax_rate |
|
|
af_net_revenue_tax_exclusive |
|
|
af_net_revenue_country |
|
|
af_net_revenue_subdivision |
|
|
af_net_revenue_postal_code |
|
|
af_cuids |
|
Assinatura |
True Revenue
True Revenue é uma camada de lógica de negócios criada para atender à solução de receita de assinatura e compra no aplicativo da AppsFlyer. Ela calcula automaticamente o valor da receita líquida para cada transação recebida em tempo real e o inclui em relatórios. A True Revenue considera os seguintes fatores no cálculo da receita bruta para líquida:
-
Comissão da loja:
- É calculada e relatada automaticamente. Nenhuma ação da sua parte é necessária.
- Para compras, a comissão da loja é de 30%.
- Para as assinaturas, a comissão é calculada automaticamente por assinante, levando em consideração o tempo de vida do assinante, (App Store: começando com 30% de comissão e reduzindo para 15% após um ano, Play Store: 15% de comissão).
- Parâmetros de receita líquida relacionados estão disponíveis em relatórios de dados brutos.
- Imposto: o imposto é informado por padrão para qualquer transação medida pelo ROI360 usando a configuração de taxa de imposto padrão. A configuração pode ser editada usando a API fiscal dedicada.
Ao visualizar a receita real em relatórios, os parâmetros a seguir contêm os dados da receita líquida. Consulte o dicionário de parâmetros para saber mais detalhes.
Parâmetro | Fator de receita líquida |
---|---|
store_commission |
Comissão da loja |
af_net_revenue_tax_name |
Imposto |
af_net_revenue_tax_rate |
Imposto |
af_net_revenue_tax_exclusive |
Imposto |
af_net_revenue_postal_code |
Imposto |
af_net_revenue_country |
Imposto |
af_net_revenue_subdivision |
Imposto |
af_net_revenue |
|
af_net_revenue_factors |
|
Especificações e limitações
Especificação | Produto | Observações |
---|---|---|
Gravar a instalação e anonimizar os dados |
|
Não suportado |
Bibliotecas de faturamento Google V6 |
|
Não suportado |
Novas assinaturas |
Receita de assinatura |
Registrado apenas por meio do SDK de compra da AppsFlyer |
Alteração de preço |
Receita de assinatura |
Se a receita da assinatura não receber uma notificação originada no SDK com o preço do novo produto, a receita de assinaturas continua a informar o preço do produto anterior como receita. Assim que o novo preço do produto for recebido do SDK de compra, o novo preço será registrado. |
Receita bruta |
|
Suportado |
Receita líquida |
|
Compatível apenas com dados brutos |
Imposto |
Receita de assinatura |
Suportado |
Comissão de loja de receita líquida |
|
|
Reembolsos | IAP | Podem ser relatados até 180 dias após a compra original. |
Desduplicação |
|
Compatível com transações relatadas até 180 dias após a data do evento. |
Modo restrito do SDK |
|
As assinaturas ROI360 e VIAP são compatíveis no modo estrito do SDK. |
Moeda |
|
A receita é relatada na moeda original (usando o parâmetro event_revenue) e em USD (usando o parâmetro event_revenue_usd parameter). |