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.
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:
- Defina um endpoint de URL no seu servidor para usar nas atualizações de status da assinatura. Por exemplo, https://myserver/subscription-notifications.
- Configure o Cloud Pub/Sub no seu projeto da Google Cloud Platform (GCP).
- 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:
- Receber uma notificação sobre uma mudança no status de uma assinatura.
- Associar uma assinatura ao ID da AppsFlyer e ao GAID.
- Enviar um evento relacionado à assinatura para a AppsFlyer.
A Apple chama seu serviço de notificações de servidor para servidor. Esse serviço foi projetado especificamente para assinaturas com renovação automática. A App Store envia notificações sobre mudanças em tempo real no status de uma assinatura. Você pode usar essas notificações e os dados delas para enviar eventos relacionados a assinaturas para a AppsFlyer.
Etapa 1: Configure o endpoint do servidor para receber notificações relacionadas à assinatura
Configure um endpoint de servidor que receba solicitações post. Configure o endpoint da seguinte forma:
- Dê suporte ao App Transport Security (ATS) no seu servidor. A App Store precisa estabelecer uma conexão de rede segura com o seu servidor usando protocolos ATS antes de enviar notificações. Para obter mais informações, consulte preventing insecure network connections.
- Determine um endpoint de URL no seu servidor para usar nas atualizações de status da assinatura. Por exemplo, https://myserver/subscription-notifications.
- Configure a URL de status da assinatura do seu aplicativo no App Store Connect. Para obter orientação, consulte Ativar notificações de status para assinaturas com renovação automática.
Etapa 2: Conecte o endpoint do servidor ao seu aplicativo:
Depois que o endpoint estiver configurado, insira a URL do servidor no campo Subscription Status URL no App Store Connect:
Etapa 3: Receba a notificação e associe-a aos IDs da AppsFlyer e ao IDFA no seu banco de dados
Agora você está pronto para receber notificações da Apple sobre assinaturas. Consulte o exemplo de notificação a seguir:
{
"latest_receipt": "ewoXXXXX",
"latest_receipt_info": {
"original_purchase_date_pst": "2019-07-29 21:13:18 America/Los_Angeles",
"quantity": "1",
"unique_vendor_identifier": "XXX",
"original_purchase_date_ms": "1564459998000",
"expires_date_formatted": "2019-08-06 04:13:17 Etc/GMT",
"is_in_intro_offer_period": "false",
"purchase_date_ms": "1564459997000",
"expires_date_formatted_pst": "2019-08-05 21:13:17 America/Los_Angeles",
"is_trial_period": "true",
"item_id": "1452171111",
"unique_identifier": "00000",
"original_transaction_id": "0000000",
"expires_date": "00000000",
"app_item_id": "0000000",
"transaction_id": "00000000",
"bvrs": "00000",
"web_order_line_item_id": "00000000",
"version_external_identifier": "000000",
"bid": "com.XXX",
"product_id": "XXXXX",
"purchase_date": "2019-07-30 04:13:17 Etc/GMT",
"purchase_date_pst": "2019-07-29 21:13:17 America/Los_Angeles",
"original_purchase_date": "2019-07-30 04:13:18 Etc/GMT"
},
"environment": "PROD",
"auto_renew_status": "true",
"password": "*****",
"auto_renew_product_id": "com.XXXX",
"notification_type": "INITIAL_BUY"
}
Importante!
Os dados da Notificação de Atualização de Status da Apple não contêm o preço da assinatura. Você deve implementar uma lógica de backend para associar a notificação da Apple ao preço correto da assinatura.
Você usa esses dados para enviar eventos relacionados a assinaturas para a AppsFlyer. Para fazer isso, você precisa associar uma assinatura a um ID da AppsFlyer e ao IDFA. Recomendamos fortemente incluir o IDFA ao enviar um evento de servidor para servidor. Incluí-lo permite que a AppsFlyer envie postbacks de evento para SRNs (self-reporting networks). Isso também oferece a opção de usar o AppsFlyer Audiences.
Você pode obter o ID do AppsFlyer e o IDFA de uma das seguintes maneiras:
Fluxo completo de atribuição de assinatura no iOS
Consulte o fluxograma a seguir para ver o fluxo completo de atribuição de assinatura:
- Receber uma notificação sobre uma alteração no status da assinatura.
- Associar uma assinatura ao ID da AppsFlyer e ao IDFA.
- Enviar um evento relacionado à assinatura para a AppsFlyer.
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:
- 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
- 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.