How can we help?

[Legacy] Atribución de suscripciones—eventos de servidor a servidor

  • Actualización

De un vistazo: Implementa eventos de servidor a servidor para registrar suscripciones (nuevas y renovadas) y enviar eventos de suscripción a AppsFlyer según sea necesario. Nota: Esta es una función heredada. Saber más sobre el nuevo mecanismo de ingresos por suscripciones, totalmente automático y mejorado subscription revenue mechanism.

Evento de suscripción de servidor a servidor

Para implementar eventos de servidor a servidor, debes diseñar la lógica del backend. La lógica del backend realiza el seguimiento de las suscripciones (nuevas y renovadas) y envía eventos de suscripción a AppsFlyer cuando es necesario.

Envío de eventos de servidor a servidor a AppsFlyer para notificaciones de suscripción

AppsFlyer no recibe de forma predeterminada notificaciones de renovación ni eventos de suscripción de las tiendas de aplicaciones. En esta sección se explica cómo configurar una conexión con la tienda de aplicaciones correspondiente y pasar la información de suscripción a AppsFlyer como un evento de servidor a servidor.

AndroidiOS

La gestión de suscripciones en Android se puede realizar en el nivel de la aplicación y en el del servidor. En el nivel de la app, la comunicación se realiza mediante Google Play Billing Library. En el nivel del servidor, se realiza mediante Google Play Developer API. La forma recomendada para gestionar suscripciones es mediante Google Play Developer API. Esta es la forma que se analiza en este artículo.

Paso 1: Configura el endpoint del servidor para recibir notificaciones relacionadas con suscripciones

Crea un endpoint del servidor que reciba notificaciones relacionadas con suscripciones desde Google Cloud. A continuación, activa las notificaciones de desarrolladores en tiempo real:

  1. Define una URL de endpoint en tu servidor para usarla en las actualizaciones del estado de las suscripciones. Por ejemplo, https://myserver/subscription-notifications.
  2. Configura Cloud Pub/Sub en tu proyecto de Google Cloud Platform (GCP).
  3. Activa las notificaciones de desarrolladores en tiempo real para tu aplicación de Android.

Paso 2: Gestiona las notificaciones de suscripción en tiempo real

Una vez que configures un endpoint del servidor para recibir notificaciones, escribe la lógica para gestionarlas. De forma predeterminada, Google envía notificaciones mediante Pub/Sub con subscriptionId y purchaseToken. El mensaje de notificación no contiene ninguna información relevante sobre la suscripción real. Debes tomar el token de compra y enviar una solicitud a la API para desarrolladores de Google Play to purchases.subscriptions

La notificación de suscripción contiene lo siguiente:

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

En la notificación de suscripción, hay un objeto llamado SubscriptionNotification. Contiene lo siguiente.

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

purchaseToken es el token que envías a la API para desarrolladores de Google Play a purchases.subscriptions para obtener datos sobre la suscripción.

El subscriptionId es el valor que almacenas en tu base de datos y asocias con el ID de AppsFlyer.

Paso 3: Asocia la suscripción con el ID de AppsFlyer y el GAID en tu base de datos

Una vez que obtengas los datos sobre la suscripción, debes establecer un enlace entre el ID de la suscripción, el ID de AppsFlyer y el GAID. El ID de AppsFlyer es obligatorio para enviar eventos de servidor a servidor a AppsFlyer. Te recomendamos encarecidamente incluir el GAID cuando envíes un evento de servidor a servidor. Incluirlo permite a AppsFlyer enviar postbacks de eventos a las SRN (redes de autorregistro). También te abre la opción de usar AppsFlyer Audiences. Puedes obtener el ID de AppsFlyer y el GAID de una de las siguientes maneras:

El flujo completo de atribución de suscripciones en Android

Consulta el siguiente diagrama de flujo para ver el flujo completo de atribución de suscripciones:

google-play-server-notifications-flow.png

 

Enviar el evento a AppsFlyer

En este punto, ya sabes que se ha producido un cambio en el estado de una suscripción (compra, renovación, cancelación) y lo has asociado con un ID de AppsFlyer. Ahora, asegúrate de que ocurra lo siguiente:

  1. Tu servidor recopila los datos necesarios para el evento. Estos datos deben incluir lo siguiente: ingresos, tipo de suscripción, ID de suscripción (item_id en los datos de Apple), ID de AppsFlyer y hora de renovación. Asignación recomendada (consulta el fragmento de código que aparece a continuación):
    • af_revenue: ingresos
    • af_content_type: tipo de suscripción
    • af_content_id: ID de suscripción (item_id en los datos de Apple)
    • renewal: true/false (según el cambio en el estado de la suscripción)
    • eventTime: la hora a la que la notificación llega a tu servidor
  2. Según el tipo de evento (compra, renovación, cancelación), el servidor envía el evento a AppsFlyer como un evento de suscripción con todos los datos relacionados.

Dar formato al evento y enviarlo

Ejemplo de solicitud de evento de suscripción:

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 cómo dar formato al evento y enviarlo a AppsFlyer, consulta envío de eventos de servidor a servidor.

This article was translated automatically and may contain errors. The English version is the most accurate - use the language selector below to switch.

Share article: