De un vistazo: Utilice la API web de servidor a servidor (Web-S2S) para reportar eventos y conversiones a PBA que no son notificados por el SDK Web.
API de eventos web de servidor a servidor para PBA
La API Web-S2S para la atribución basada en personas complementa el SDK web, lo que permite a los marketers reportar los eventos que se producen en sus sitios web pero que quedan fuera del ámbito del SDK web. Por ejemplo, un visitante del sitio web (un usuario web), dispara un evento de pago en línea, procesado por sistemas backend. Tras el procesamiento, el backend, utilizando la API S2S, reporta el evento a AppsFlyer.
Los eventos enviados por la API S2S:
- se registran de forma similar a los eventos reportados por el SDK web,
- se incluyen en los paneles de control de PBA si se establecen como eventos de conversión,
- rellenan el raw data de PBA con el campo event_source configurado como web S2S.
Instrucciones de uso de la API
Crea tu llamada a la API utilizando las secciones siguientes.
No. | Elemento | Observaciones |
---|---|---|
1 | ID de usuario único |
|
2 | Marca de tiempo |
|
3 | Ingresos y divisas | Debes rellenar eventRevenueCurrency y eventRevenue incluso si están incluidos en eventValue. Hazlo porque los utilizamos en nuestros paneles de control. |
Conceptos básicos de la API
La implementación de la API requiere las siguientes credenciales disponibles en el panel de control:
- ID de paquete (también conocido como ID del paquete de marca)
- Clave de desarrollador web
Para obtener las credenciales:
- En AppsFlyer, en el menú superior, selecciona Mis aplicaciones > Ver paquetes de marcas.
Aparece la lista de paquetes. - Copia y registra lo que corresponda:
- ID de paquete de marca
- Clave de desarrollador web
Conceptos básicos de la API Web S2S
Ruta |
|
Método HTTP | POST |
Tipo de contenido aceptado |
application/json |
Limitación de la carga útil de JSON |
Tamaño de la carga útil de JSON: máximo 1 KB |
Limitación de la tasa |
Volumen de limitación POST: 60 000 POST por minuto. Para aumentar el límite, contacta a tu CSM. |
TLS |
|
Método setCuId
Nombre del método |
setCuId |
Caso de uso |
Al asociar un CUID a un visitante de tu sitio web. Por ejemplo, cada vez que hagas coincidir el |
Ruta del método |
|
Carga útil |
La carga útil de JSON consta de los parámetros que se enumeran a continuación. Todos los parámetros son obligatorios. |
Ejemplo de setCuId de Curl
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999"}
Método del evento
Nombre del método |
event |
Caso de uso | Envío |
Ruta del método |
|
Información detallada | La sección Detalles del método Event de este artículo contiene detalles sobre la carga útil, un ejemplo de Curl, un ejemplo de Python y sugerencias de pruebas. |
Detalles del método Event
Parámetros de carga útil
Los parámetros de carga útil se dividen en identificadores de usuario y parámetros de evento.
- ID de usuario: debes enviar al menos un parámetro de ID de usuario.
- Evento: envía los parámetros obligatorios y los parámetros opcionales según sea necesario.
Parámetros de identificador de usuario (envía al menos un parámetro)
Parámetro de ID de usuario | Descripción |
---|---|
customerUserId |
El ID de usuario del cliente (CUID) es un identificador único establecido por ti.
|
afUserId |
El ID de usuario único asignado por el SDK web a cada usuario que visita tu sitio web. Deberás transmitir el valor de la cookie a tus servidores de backend.
|
Parámetros del evento
Nombre de parámetro | Obligatorio | Descripción |
---|---|---|
webDevKey |
Sí |
Rellénalo utilizando la clave de desarrollador web disponible en el panel de control.
|
eventType | Sí |
Identificador de atributo de evento para uso interno de AppsFlyer. Siempre ajustado en EVENT.
|
eventName | Sí |
|
timestamp | No |
Hora en que se produjo el evento en milisegundos. Se envía como una marca de tiempo Unix de 13 dígitos.
|
eventValue | No |
Asignación de parámetros del evento que describen el evento. Utiliza este parámetro para enviar eventos in-app enriquecidos, como el SKU del producto y el precio del artículo.
|
eventRevenueCurrency | No |
Código de moneda de un evento de ingresos, como código de moneda ISO 4217 de tres caracteres.
|
eventRevenue | No |
Ingresos (valor monetario) asignados a un evento. Nota: Si los ingresos se reportan en eventValue, indícalo también en eventRevenue y rellena eventRevenueCurrency.
|
No | Este parámetro está obsoleto y se eliminará del sistema en el futuro. Utiliza eventValue en su lugar. | |
No |
Este parámetro está obsoleto y se eliminará del sistema en el futuro. Utiliza eventValue en su lugar. |
|
referrer | No |
Referente HTTP
|
userAgent | No |
Solicitud de agente de usuario enviada por el navegador al servidor.
|
ip | No |
Dirección IP del usuario
|
Ejemplo de Curl
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999",
"ip" : "192.0.2.1",
"eventType":"EVENT",
"timestamp" : 1234567890123,
"eventName":"my_web_event",
"eventRevenueCurrency" : "EUR",
"eventRevenue" : 1234.56,
"eventValue": {
"purchase":{
"shoes": "color",
"quantity" : "3",
"Revenue" : "1234.56",
"Currency" : "ZAR"
}
}
}'
Ejemplo de Python
''' using the requests python package, install using pip install requests '''
import requests
url = "https://webs2s.appsflyer.com/v1/bundleId/event"
payload = {
"customerUserId": "1234567890abcdef",
"afUserId": "9999999-f848-4963-a091-568f0bf9a361",
"webDevKey": "99999999-9999-9999-9999-999999999999",
"ip": "192.0.2.1",
"eventType": "EVENT",
"timestamp": 1234567890123,
"eventName": "my_web_event",
"eventRevenenuCurrency": "EUR",
"eventRevenue": 1234.56,
"eventValue":
{
"purchase":
{
"shoes": "color",
"quantity": "3",
"Revenue": "1234.56",
"Currency": "ZAR"
}
}
}
headers = {
'Accept-Encoding': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text.encode('utf8'))
Pruebas
A modo de prueba, envía varios eventos como se indica a continuación:
- Envía un evento.
- Asegúrate de obtener un código de retorno 200 OK. Si no es así, tome medidas correctivas utilizando los códigos de retorno y los mensajes de error.
- Espere varias horas después de medianoche UTC para ver el evento reportado en el raw data de PBA. Debes esperar porque los datos de PBA se procesan una vez al día.
Información adicional
Obtener la clave de desarrollador web
Extraer el afUserID del SDK web
- El
afUserId
es un identificador único, establecido por el SDK web cuando un usuario visita tu sitio por primera vez. - Si necesitas el
afUserId
, utiliza uno de los métodos que se indican a continuación.
Obtener el afUserId del encabezado de la cookie HTTP
- El
afUserId
es enviado por el navegador del visitante cuando visita tu sitio web. - Extráelo del encabezado de la cookie HTTP si es necesario.
Ver el afUserId en el navegador del visitante
- Visualiza el
afUserId
en el navegador del visitante, con fines de solución de problemas y depuración. - Para que esté disponible, el visitante tiene que haber visitado primero una página que tenga el SDK web al menos una vez.
- La cookie que contiene
afUserId
es una cookie de origen en relación con tu dominio. - El procedimiento que sigue se preparó utilizando Chrome 81. Puede haber algunas diferencias entre los distintos navegadores y sistemas operativos.
Para obtener el afUserId del navegador del visitante:
- En tu navegador, ve a tu sitio web.
-
Haz clic con el botón derecho del ratón y selecciona Inspeccionar
Se abre la ventana de inspección de elementos del navegador. - Ve a la pestaña (A) Aplicación.
- En el menú lateral, (B) expande Cookies.
- Selecciona tu sitio web. Si no aparece, actualiza el navegador.
- En el (C) filtro, introduce
afUserId
Se muestra el valor de afUserID.
Códigos de respuesta
Código de respuesta | Mensaje | Cómo manejarlo |
---|---|---|
200 | OK | |
404 | No se encuentra |
|
400 | Solicitud incorrecta |
|
Resolución de problemas
- Síntoma: Los códigos de retorno HTTP no se devuelven
Solución: Agregar los servidores de AppsFlyer a la lista de permitidos
Notas de la versión
Fecha | Versión del punto de conexión* | Notas |
---|---|---|
12-05-2020 | 1 | Lanzamiento inicial |
24-05-2020 | 1 | |
* El número de versión se refiere al número de versión del punto de conexión. https://webs2s.appsflyer.com/v1/method
|