Evento de compra
Contrato oficial del evento purchase, la fuente de las metricas de ingresos.
purchase es el evento oficial de venta de la plataforma. Es el unico que alimenta las
metricas de ingresos: si tu app emite ademas otros eventos de compra con otro nombre, se
guardan como eventos normales pero no cuentan para ingresos.
Se envia por el endpoint estandar de eventos:
/api/v1/events/trackRegistra el evento de compra. La unidad de venta es la ORDEN, no el evento.
Propiedades
| Parametro | Tipo | Descripcion |
|---|---|---|
| order_id* | string | Identificador de la orden en tu sistema. Es la unidad de deduplicacion: sin el, la compra no cuenta para ingresos. |
| value* | integer | Monto total de la orden, entero en la unidad menor de la moneda. En CLP son pesos (no hay decimales). |
| currency* | string | Codigo ISO-4217. Ej: CLP, USD. |
| num_items | number | Cantidad de items de la orden. |
| content_ids | string | Identificadores de los productos. |
La unidad de venta es la orden
Recibir el mismo order_id mas de una vez es esperable y seguro: la plataforma se queda
con una sola venta por orden. Puedes reintentar tras un fallo de red, o emitir el evento desde
mas de un punto de tu app, sin inflar los ingresos.
Esto es parte del contrato, no un detalle de implementacion: la plataforma cuenta ordenes, no eventos.
Un
purchasesinorder_idse registra como evento —sigue disparando journeys, in-apps y reglas de puntos— pero no entra a los ingresos, y se contabiliza aparte para que el hueco sea visible en los reportes en vez de pasar inadvertido.
El monto va en enteros
value debe ser un entero en la unidad menor de la moneda. En CLP eso son pesos directamente,
porque el peso no tiene decimales: una compra de $15.540 se envia como 15540.
Mandar decimales (155.40) hace que las sumas de miles de ordenes deriven por redondeo, y el
total del panel deja de cuadrar con tu caja.
Ejemplo
curl -X POST https://southgames.ai/api/v1/events/track \
-H "Authorization: Bearer sg_live_xxx" \
-H "X-Org-Id: mi-empresa" \
-H "Content-Type: application/json" \
-d '{
"eventName": "purchase",
"externalUserId": "user_123",
"properties": {
"order_id": "260820-60000106089-2387591",
"value": 15540,
"currency": "CLP",
"num_items": 2
}
}'
Que habilita
- Ingresos y ticket medio en Analiticas, con la serie diaria cortada en la zona horaria de tu organizacion.
- Disparar mini-juegos o journeys segun el monto de la compra (por ejemplo, "lanza la ruleta si
la compra supera $15.000"), usando una condicion sobre
valueen el trigger.