How can we help?

[Legacy] Atribuição de assinatura — eventos de servidor para servidor

  • Atualizado

Em resumo: Implemente eventos de servidor para servidor para registrar assinaturas (novas e renovadas) e enviar eventos de assinatura para a AppsFlyer conforme necessário. Observação: Este é um recurso legado. Saiba mais sobre o novo mecanismo de receita de assinaturas, totalmente automático e aprimorado mecanismo de receita de assinaturas.

Evento de assinatura de servidor para servidor

Para implementar eventos de servidor para servidor, você precisa desenvolver a lógica de backend. A lógica de backend rastreia as assinaturas (novas e renovadas) e envia eventos de assinatura para a AppsFlyer conforme necessário.

Envio de eventos de servidor para servidor para notificações de assinatura à AppsFlyer

Por padrão, a AppsFlyer não recebe notificações de renovação nem eventos de assinatura das lojas de aplicativos. Esta seção aborda como configurar uma conexão com a respectiva loja de aplicativos e repassar as informações de assinatura para a AppsFlyer como um evento de servidor para servidor.

Android / iOS

O gerenciamento de assinaturas no Android pode ser feito nos níveis de aplicativo e de servidor. No nível de Aplicativo, a comunicação é feita por meio da Google Play Billing Library. No nível de Servidor, ela é feita por meio da Google Play Developer API. A forma recomendada para gerenciar assinaturas é por meio da API Google Play Developer. Esta é a forma abordada neste artigo.

Etapa 1: Configure o endpoint do servidor para receber notificações relacionadas a assinaturas

Crie um endpoint do servidor que receba notificações relacionadas a assinaturas do Google Cloud. Em seguida, habilite as notificações de desenvolvedor em tempo real:

  1. Defina um endpoint de URL no seu servidor para usar nas atualizações de status da assinatura. Por exemplo, https://myserver/subscription-notifications.
  2. Configure o Cloud Pub/Sub no seu projeto da Google Cloud Platform (GCP).
  3. Habilite notificações em tempo real para desenvolvedores no seu aplicativo Android.

Etapa 2: Processar notificações de assinatura em tempo real

Depois de configurar um endpoint do servidor para receber notificações, escreva a lógica para processá-las. Por padrão, o Google envia notificações pelo Pub/Sub com subscriptionId e purchaseToken. A mensagem de notificação não contém nenhuma informação relevante sobre a assinatura em si. Você precisa pegar o token de compra e enviar uma solicitação para a API Google Play Developer para purchases.subscriptions

A notificação de assinatura contém o seguinte:

{
	"version": string,
	"packageName": string,
	"eventTimeMillis": 1578509686,
	"subscriptionNotification": SubscriptionNotification,
	"testNotification": AppsFlyerTest
}

Na notificação de assinatura, há um objeto chamado SubscriptionNotification. Ele contém o seguinte.

{
	"version": 1.0,
	"notificationType": 4,
	"purchaseToken": 0f43308f-bf3f-4fa1-8aef-d515c941334b,
	"subscriptionId": 123456789
}

O purchaseToken é o token que você envia para a API Google Play Developer para purchases.subscriptions para obter dados sobre a assinatura.

O subscriptionId é o valor que você armazena no seu banco de dados e associa ao ID da AppsFlyer.

Etapa 3: associe a assinatura ao ID da AppsFlyer e ao GAID no seu banco de dados

Depois de obter os dados da assinatura, você precisa criar um link entre o ID da assinatura, o ID da AppsFlyer e o GAID. O ID da AppsFlyer é obrigatório para enviar eventos de servidor para servidor para a AppsFlyer. Recomendamos fortemente incluir o GAID  ao enviar um evento de servidor para servidor. A inclusão dele permite que a AppsFlyer envie postbacks de eventos para SRNs (self-reporting networks). Isso também abre a opção de usar o AppsFlyer Audiences. Você pode obter o ID da AppsFlyer e o GAID de uma das seguintes maneiras:

O fluxo completo de atribuição de assinaturas no Android

Veja o fluxograma a seguir com o fluxo completo de atribuição de assinaturas:

google-play-server-notifications-flow.png

 

Enviando o evento para a AppsFlyer

Neste ponto, você já sabe que houve uma alteração no status da assinatura (compra, renovação, cancelamento) e a associou a um ID da AppsFlyer. Agora, verifique se o seguinte ocorre:

  1. Seu servidor reúne os dados necessários para o evento. Esses dados devem incluir o seguinte: receita, tipo de assinatura, ID da assinatura (item_id nos dados da Apple), ID da AppsFlyer, horário da renovação. Mapeamento recomendado (consulte o snippet de código abaixo):
    • af_revenue: receita
    • af_content_type: tipo de assinatura
    • af_content_id: ID da assinatura (item_id nos dados da Apple)
    • renewal: true/false (com base na alteração do status da assinatura)
    • eventTime: horário em que a notificação chega ao seu servidor
  2. Com base no tipo de evento (compra, renovação, cancelamento), o servidor envia o evento para a AppsFlyer como um evento de assinatura com todos os dados relacionados.

Formatação e envio do evento

Exemplo de solicitação de evento de assinatura:

HTTP POST https://api2.appsflyer.com/inappevent/<APP_ID>
HTTP/1.1
headers:
{
  authentication: '<YOUR_DEV_KEY>',
  Host: 'api2.appsflyer.com',
  Accept: 'application/json',
  'Content-Type': 'application/json'
}
body: 
{
  "appsflyer_id":"<APPS_FLYER_ID>",
  "customer_user_id":"123456",
  "eventName":"af_subscribe",
  "eventValue":"{\"af_revenue\":\"200\",\"af_content_id\":\"092\", \"af_content_type\": \"123\", \"renewal\":\"true\"}",
  "eventCurrency":"USD",
  "ip":"1.0.0.0",
  "eventTime":"2018-07-09 4:17:00.000",
  "af_events_api":"true"
}

Para saber como formatar e enviar o evento para o AppsFlyer, consulte o envio de eventos servidor a servidor.

This article was translated using AI and may contain errors. For the most accurate information, please refer to the English version using the language selector.


Share article: