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.
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:
- Define una URL de endpoint en tu servidor para usarla en las actualizaciones del estado de las suscripciones. Por ejemplo, https://myserver/subscription-notifications.
- Configura Cloud Pub/Sub en tu proyecto de Google Cloud Platform (GCP).
- 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:
- Recibir una notificación sobre un cambio en el estado de una suscripción.
- Asociar una suscripción con el ID de AppsFlyer y el GAID.
- Enviar a AppsFlyer un evento relacionado con una suscripción.
Apple llama a su servicio notificaciones de servidor a servidor. Este servicio está diseñado específicamente para suscripciones con renovación automática. La tienda de aplicaciones envía notificaciones de cambios en tiempo real en el estado de una suscripción. Puedes usar estas notificaciones y sus datos para enviar eventos relacionados con las suscripciones a AppsFlyer.
Paso 1: Configura el punto de conexión del servidor para recibir notificaciones relacionadas con las suscripciones
Configura un punto de conexión del servidor que reciba solicitudes post. Configura el punto de conexión de la siguiente manera:
- Ofrece soporte para App Transport Security (ATS) en tu servidor. La App Store debe establecer una conexión de red segura con tu servidor mediante protocolos ATS antes de enviar notificaciones. Para más información, consulta cómo evitar conexiones de red no seguras.
- Determina una URL de punto de conexión en tu servidor para usarla en las actualizaciones del estado de la suscripción. Por ejemplo, https://myserver/subscription-notifications.
- Configura la URL del estado de la suscripción de tu app en App Store Connect. Para obtener orientación, consulta Activar las notificaciones de estado para las suscripciones con renovación automática.
Paso 2: Conecta el punto de conexión del servidor a tu app:
Una vez configurado el punto de conexión, introduce la URL del servidor en el campo Subscription Status URL de App Store Connect:
Paso 3: Recibe la notificación y asígnala a los ID de AppsFlyer y al IDFA en tu base de datos
Ya estás listo para recibir notificaciones de Apple sobre suscripciones. Consulta la siguiente notificación de ejemplo:
{
"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:
Los datos de la notificación de actualización de estado de Apple no incluyen el precio de la suscripción. Debes implementar lógica de backend para hacer coincidir la notificación de Apple con el precio correcto de la suscripción.
Usas estos datos para enviar eventos relacionados con las suscripciones a AppsFlyer. Para hacerlo, debes asociar una suscripción con un ID de AppsFlyer y un IDFA. Te recomendamos encarecidamente incluir el IDFA al enviar un evento de servidor a servidor. Incluirlo permite a AppsFlyer enviar postbacks de eventos a las SRN (redes autoatribuidas). También te da la opción de usar AppsFlyer Audiences.
Puedes obtener el ID de AppsFlyer y el IDFA de una de las siguientes maneras:
El flujo completo de atribución de suscripciones en iOS
Consulta el siguiente diagrama de flujo para ver el flujo completo de atribución de suscripciones:
- Recibir una notificación sobre un cambio de estado de una suscripción.
- Asociar una suscripción con el ID de AppsFlyer y el IDFA.
- Enviar a AppsFlyer un evento relacionado con la suscripción.
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:
- 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
- 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.