Server-to-Server Events API

Introducción

El objetivo de esta API es permitirte enviar eventos que ocurren fuera de la aplicación móvil  directamente al servidor de AppsFlyer.  Por ejemplo, si tienes una interfaz web y una móvil, puedes registrar en AppsFlyer todos los eventos de ambos orígenes. 

 Nota

El Tipo de contenido se debe configurar como application/json.

URL: https://api2.appsflyer.com/inappevent/{app_id}  

Ejemplo en Android: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp

Ejemplo en iOShttps://api2.appsflyer.com/inappevent/id123456789

Es importante prestar especial atención a que el ID de la aplicación en iOS contenga el encabezado "id" antes del ID. De lo contrario, la solicitud finaliza con HTTPS 200 OK, pero el evento no se registra.

 Important!

The JSON payload must be passed as a string and the event value must be stringified.

Make sure that the JSON payload includes the parameter "af_events_api" :"true"
This parameter ensures that the event is structured as a rich event to enable automatic mapping of the event values to various partners.

See examples below.

Método: POST

Encabezado - "authentication"= {dev-key}

La dev key se encuentra en  Panel de control >> Configuración de aplicación >> Dev Key

iOS Android
{
    "appsflyer_id": {This is a mandatory field, AppsFlyer Device ID must be used },  // e.g. 1415211453000-6513894
    "idfa":{idfa},
    "customer_user_id": {customer_user_id}, // Customer User ID optional parameter
    "bundle_id":{bundle_id},
    "eventName": {The event name}, // e.g. "af_purchase"
    "eventValue": {A JSON containing a rich in-app event value - must be stringfied},
    "{

        \"af_revenue\":\"6\",
        \"af_content_type\":\"wallets\",
        \"af_content_id\":\"15854\"

    }",
    "eventCurrency": {Event currency}, // e.g "USD"
    "ip": {device IP},
    "eventTime": {Event timestamp in UTC}, // e.g  "2014-05-15 12:17:00.000"
    "af_events_api" :"true"
}

 Nota

Todos los caracteres reservados (https://tools.ietf.org/html/rfc3986#section-2.1) deben codificarse como porcentaje antes de formar la URI.

Parameters

  1. Parámetros obligatoriosappsflyer_id (ID de dispositivo de AppsFlyer), eventName, eventValueaf_events_api
  2. Highly recommended parameters: idfa for iOS and advertising_id for Android.
    If you wish to map your in-app events from organic users with external partners, these parameters are MANDATORY. 
  3. Optional - eventValue can be with an empty value, i.e., "eventValue":"", (no space is needed)
  4. Optional - IP address (ip) should be the IP of the mobile device (during the event occurrence)
  5. Optional - The customer user ID field (customer_user_id) is a user identifier parameter, mapped to the Customer User ID field in the Raw Reports. The Customer User ID SDK API attaches this value automatically to all SDK originated in-app events. Make sure to include this field will ALL your S2S events to enjoy the same functionality.

Programación Temporal de los Eventos

Los eventos de servidor a servidor se pueden enviar en tiempo real o por lotes

 Nota

Cuando usas S2S (servidor a servidor), no puedes enviar eventos directamente desde JavaScript. Debes crear un servidor local para enviar la solicitud a AppsFlyer.

También puedes usar el parámetro opcional eventTime para especificar la hora a la que ocurre el evento (en zona horaria UTC). Si el parámetro no se incluye en el mensaje, AppsFlyer usará la marca temporal del mensaje HTTPS recibido. 

El formato de eventTime es: "yyyy-MM-dd HH:mm:ss.SSS" (p. ej. "2014-05-15 12:17:00.000")  

En el modo por lotes, para registrar los eventos con sus marcas de tiempo real, se deben enviar todos a AppsFlyer antes de las 02:00 AM (UTC) del día siguiente.   

 Nota

El número máximo de solicitudes S2S es de 60K por minuto o 1K por segundo. Contacta a tu Gerente de Atención al Cliente si tienes requisitos diferentes.


Los eventos con marcas temporales pasadas que no se envíen antes de las 2:00 AM se registrarán a la hora a la que se enviaron.

Ejemplo 1

Activación de evento: 2 de mayo @ 22:00

Evento enviado a los servidores de AppsFlyer: 3 de mayo @ 01:00

El evento se registra en la plataforma de AppsFlyer con la hora real a la que ocurrió el evento (2 de mayo @ 22:00).

Ejemplo 2
Activación de evento: 2 de mayo @ 22:00

Evento enviado a los servidores de AppsFlyer: 4 de mayo @ 09:00

El evento se registra en la plataforma de AppsFlyer a la hora a la que se envió a Appsflyer y no a la hora real a la que ocurrió el evento (4 de mayo @ 09:00).

Códigos de Respuesta del Servicio

200
OK when the request has been processed by the AppsFlyer system.
401
No autorizado: cuando la clave incluida en el encabezado de autenticación no es la dev-key de esta aplicación.
400
Solicitud errónea: cuando la solicitud no cumplió por lo menos uno de los criterios de validación.
500
Error interno del servidor: esto indica un error en el servidor.

Si tus servidores están protegidos por un firewall, deberás agregar a la lista blanca las respuestas de los intervalos de direcciones IP de AWS para recibir los mensajes de respuesta.

Ejemplo de Mensaje de Solicitud

{
    "appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
     }",
	"eventCurrency": "USD",
	"ip": "1.2.3.4",
	"eventTime": "2014-05-15 12:17:00.000",
	"af_events_api" :"true"
}


En este caso, AppsFlyer recibe un evento in-app S2S que representa un evento de compra con ingresos, así como propiedades adicionales tales como tipo de contenido, etc.

De esta manera, AppsFlyer puede, según la configuración del anunciante, enviar tales eventos in-app enriquecidos a fuentes de medios con fines avanzados de targeting, optimización y creación de audiencias.

Obtener el ID de Dispositivo de AppsFlyer

appsflyer_id es un parámetro obligatorio en los mensajes de eventos de servidor a servidor. AppsFlyer usa este parámetro para atribuir el evento al dispositivo original y a la fuente de medios atribuida. 

Hay varias formas de obtener este ID.

1. Desde el dispositivo móvil, usando la API del SDK de AppsFlyer (Android / iOS)

2. Mediante la API Pull o Push (haz clic en el enlace para obtener más información sobre la API Push o la API Pull)

3. Exportar el reporte de instalación de raw data

 Consejo

Cuando pruebes mensajes S2S, si estás usando raw data o las API Push o Pull, busca el registro con la fuente de medios "s2s_test". Este es tu dispositivo de prueba y su ID de dispositivo de AppsFlyer es el ID que necesitas.

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 4 de 10