RRelo Docs
API & GuíasGuías

AppsFlyer

Cómo Relo recibe datos de AppsFlyer — Pull API, S2S postbacks, atribución y mapeo de campos.

Relo recibe datos de AppsFlyer por dos caminos. Ambos alimentan el mismo servicio de ingesta en Go, que escribe eventos en ClickHouse para análisis y sincroniza agregados a Supabase para el dashboard.

Pull API

Método recomendado. El servicio Go consulta AppsFlyer cada 60 minutos. Sin configuración extra del lado de AppsFlyer.

S2S Postback

Postbacks en tiempo real desde AppsFlyer a s2s.relo.mx. Menor latencia, pero requiere configuración por media source.


Flujo de datos

Diagrama interactivo
Cargando diagrama…

Flujo de atribución primaria

Diagrama interactivo
Cargando diagrama…

Pull API

El servicio Go ejecuta un timer de systemd que consulta la Pull API de AppsFlyer cada 60 minutos. Obtiene installs y eventos in-app (compras, add-to-cart, registros, etc.).

AspectoDetalle
FrecuenciaCada 60 minutos
AlcanceInstalls y eventos in-app
DeduplicaciónPor event_id (ULID)
AtribuciónSolo eventos con Is Primary Attribution = true
RequisitosApp ID y API Token configurados en Relo

Re-consultar la misma ventana de tiempo es seguro. Los eventos típicamente aparecen en el dashboard de Relo dentro de 60-120 minutos.


S2S Postback

    POST https://s2s.relo.mx/v1/postback/appsflyer

Proxeado por Cloudflare Worker al servicio Go en ingest.relo.mx/postback/appsflyer.


Mapeo de eventos

Evento AppsFlyerEvento ReloDescripción
installinstallInstalación de app. Usado para identity graph y funnel.
af_purchasepurchaseConversión principal. Contiene order ID, productos y revenue.
af_add_to_cartengagementAdición al carrito. Para retargeting y funnels.
af_complete_registrationcustomRegistro. Para métricas de calidad de partner.
Otros eventoscustomNombre original preservado en event_name.

Todos los eventos se ingieren en ClickHouse, pero solo af_purchase se parsean en registros individuales de product_sales. Esos son los datos usados para comisiones y dashboards.


Prioridad de revenue

Relo extrae el revenue por producto de los eventos de compra en este orden:

PrioridadFuenteDescripción
1awin_cgDesglose por producto. Formato Categoría:Monto|Categoría:Monto. Se usa cuando la suma coincide con Event Revenue.
2Event RevenueRevenue total real de la orden. Distribuido proporcionalmente por af_price.
3af_pricePrecio de lista. Último recurso cuando faltan las dos anteriores.

Nunca uses af_price como revenue real. Es el precio de lista antes de descuentos y puede inflar el revenue 40-60%.


Atribución primaria

AppsFlyer puede reportar la misma compra tanto en datos UA como de Retargeting. Relo solo procesa el evento que AppsFlyer designa como primario.

UA Report:
  Order: MX260310-12345
  Is Primary Attribution: false    → se ignora

RT Report:
  Order: MX260310-12345
  Is Primary Attribution: true     → se procesa

Además del filtro de atribución primaria, Relo deduplica por sale_hash (SHA-256 de order_id + product_id + quantity). Aunque el mismo evento llegue por Pull API y S2S, solo se registra una vez.


Mapeo de campos

Campo AppsFlyerCampo ReloNotas
Event Nameevent_namePreservado tal cual. Determina event_type.
Event Timeevent_timeDateTime64 con precisión de ms.
AppsFlyer IDdevice_idMapeado a ID unificado vía identity graph.
Media Sourcemedia_sourceFuente de tráfico.
CampaigncampaignNombre de campaña con CID del partner.
AdsetadsetAd set / ad group.
AdadCreativo. Puede contener asset tracking ID.
Event RevenuerevenueRevenue por producto vía awin_cg o proporcional.
Event Value → af_order_idorder_idExtraído del JSON.
Event Value → af_content_idproduct_idSKU del producto. Una fila por producto.
Event Value → items[].af_contentproduct_nameNombre de display.
Event Value → af_quantityquantityCantidad por producto.
Country Codecountry_codeISO 3166-1 alpha-2.
CitycityNombre de ciudad.
Device Modeldevice_modelEj. SM-S928B.
Is RetargetingUA/RT flagDetermina User Acquisition vs Retargeting.
Is Primary AttributionfiltroEventos false se omiten completamente.

Solución de problemas

ProblemaCausa probableSolución
No aparecen eventosApp ID o API Token no configurados o expiradosVerifica credenciales y salud del backbone en ingest.relo.mx/health.
Ventas no atribuidasCampaña sin CID del partner o reglas mal configuradasRevisa reglas de atribución y formato de campaña.
Revenue muy altoSe está usando af_price en lugar de Event RevenueRelo lo maneja automáticamente; si persiste, contacta soporte.
Eventos duplicadosMismo evento por ambos canalesRelo deduplica por sale_hash. Revisa la pestaña Audit.
Partner incorrectoReglas superpuestas (ej. sub1 con contains matchea sub10)Cambia a match exact para CIDs que colisionen.
Eventos retrasadosPull API normal (60 min)Si necesitas casi-tiempo-real, configura S2S como complemento.
S2S rechazado (401)Firma HMAC no coincideVerifica que el secreto en AppsFlyer coincida con el de Relo.
Productos en segmento incorrectoNombre/categoría no coincide con reglasRevisa y ajusta reglas de clasificación de segmentos.

¿Necesitas ayuda? Contacta a tu account manager o al equipo de ingeniería. Para diagnósticos en tiempo real, usa el dashboard de admin en portal.relo.mx → pestaña Audit.


Guías relacionadas

On this page