Go-live con red de afiliados S2S
Playbook paso a paso para configurar una integración S2S (server-to-server) con una red de afiliados externa.
Estado
Infraestructura lista en producción. Pendiente: configuración en Mitgo + setup de partners.
Guía canónica
Este es el playbook específico de Mitgo/BanCoppel (con curls de prueba, rotación de key y limpieza de datos de test). Para el runbook general de go-live de un cliente nuevo — que cubre también el camino pixel y los postbacks a sub-partners — usa Go-live de cliente.
1. Qué es esta integración
En este modelo la marca no usa el pixel de Relo en su sitio. En su lugar, la red de afiliados Mitgo (Admitad) le avisa a Relo cada vez que hay una conversión vía un postback S2S (server-to-server): el servidor de Mitgo dispara una petición a https://ingest.relo.mx/admitad/{source_id}.
Modelo de negocio: CPA fijo.
- La marca paga a Relo un fijo por conversión (
payment_sum). - Relo paga a cada partner un fijo por conversión (
partner_lead_rates).
Relo entra a Mitgo como un solo publisher; cada partner de Relo se diferencia por su subid (CID).
2. Lo que ya está listo (no tocar)
Cliente
Marca, client_id=23, slug demo, tracking_type=pixel
Data source
Admitad / Mitgo, id 11, activo
Endpoints
Conversiones: https://ingest.relo.mx/admitad/11?key=...
Status: https://ingest.relo.mx/admitad/11/status?key=...
Hardening
Auth token, status feed, live counters, click join, link generator. Todo en prod.
Mapping base:
| Campo Relo | Valor Mitgo |
|---|---|
Evento purchase | sale |
Evento lead_submit | lead |
partner_param | subid |
dedup_field | action_id |
click_id_field | subid4 |
3. Datos que necesitas de Mitgo/Admitad
Antes de empezar, pídele a Joe o al contacto de Mitgo:
Affiliate base URL de Marca en Mitgo. Se ve así:
https://ad.admitad.com/g/XXXXXXXXXX/Donde XXXXXXXXXX es el hash de afiliado del programa Marca para Relo.
Confirmar que Mitgo puede configurar el postback con:
- Event type: Action
- Method: GET (recomendado) o POST
- Action status: Created
- Parámetros estándar de Admitad:
action_id,type,order_id,order_sum,currency,payment_sum,payment_status,subid,subid1..4, etc.
4. Configuración en el admin de Relo
4.1 Pegar el Affiliate base URL
Entra a https://portal.relo.mx/v2/c/demo/tracking-sources
Abre el source Admitad / Mitgo.
En el campo Affiliate base URL, pega:
https://ad.admitad.com/g/XXXXXXXXXX/Guarda.
Al guardar, en la misma ventana aparece la URL completa del endpoint con ?key=.... Cópiala completa, es la que vas a pegar en Mitgo.
4.2 Rotar la key (obligatorio si la URL anterior se compartió)
La URL con key ha sido rotada. Cualquier URL anterior deja de funcionar. Antes de pasar a producción:
En el mismo drawer del source, cambia el campo Auth token por un nuevo valor seguro (o guarda el formulario para forzar la generación automática si aplica).
Guarda.
Copia la nueva URL completa con la key nueva.
Pega la nueva URL en ambos postbacks de Mitgo (conversiones + status).
Si la integración ya está live en Mitgo con la URL vieja, rotar la key causará 401 hasta que se actualicen ambos postbacks. Coordina el cambio con operaciones.
5. Configuración en Mitgo / Admitad
- En Mitgo, ve a: Tools → Postback URL → Add.
2. Configura:
- Event type: Action
- Ad space: Relo
- Program: Marca
- HTTP method: GET (o POST, también funciona)
- Action status: Created ONLY ⚠️
- Simple mode: sí
- Link: pega la URL completa de Relo (
https://ingest.relo.mx/admitad/11?key=...)
- Haz clic en Test.
- Verifica en Relo que llegó un evento de prueba (ver sección 8).
- Agrega otro Postback URL:
- Event type: Action
- Action statuses: Confirmed + Declined (+ On hold si aplica)
- Link:
https://ingest.relo.mx/admitad/11/status?key=...
- Este endpoint no crea eventos; escribe en
network_action_statusespara que en el cierre no se paguen acciones declinadas.
6. Setup de partners
Para cada partner que va a correr Marca:
Crear / invitar al partner si no existe:
https://portal.relo.mx/v2/partners- Invite partner
- Llena: company name, email, y selecciona Marca como cliente.
- Envía invitación.
Asignarle un CID (subid). Convención sugerida: cp-<slug-del-partner>.
- PartnerA →
cp-partnera - PartnerB →
cp-partnerb - Ve al
PartnerProfile→ tab Tracking & deals → sección Tracking rules → agrega valor con match typeexact.
Configurar el CPA en el mismo PartnerProfile → tab Tracking & deals → card Lead rates:
- Event:
purchase - Rate: monto fijo en MXN
- % toggle: apagado
- Currency: MXN
- Agrega otra fila con event
lead_submitsi también pagas por lead.
Generar el tracking link:
- En el
PartnerProfile, con Marca seleccionado como cliente activo. - Aparece la card Network tracking link.
- Si no aparece, revisa que el source Admitad tenga Affiliate base URL y que el partner tenga al menos un CID.
- Haz clic en Generate t.relo.mx link y copia el link corto.
El destino final se ve así:
https://ad.admitad.com/g/XXXXXXXXXX/?subid=cp-mobupps&subid4=01JXXXXXXXXXXXXXXXXXXXXXX
subid4 se sustituye automáticamente por el ULID de click de Relo.
7. Verificación rápida en el admin
Antes de decir "está listo", confirma:
- Source Admitad guardado con Affiliate base URL
- URL con key copiada y pegada en Mitgo (ambos postbacks)
- Test de Mitgo devolvió {"status":"ok"}
- Partner creado y asociado a Marca
- Partner tiene CID (cp-...) configurado
- Partner tiene purchase rate fijo en MXN
- Tracking link t.relo.mx generado y entregado
- Card de Tracking sources muestra contador de eventos recientes
8. Cómo probar la integración
8.1 Test básico con curl
Reemplaza KEY_AQUI con la key de la URL.
KEY="KEY_AQUI"
# 1. Evento sale (purchase)
curl -s "https://ingest.relo.mx/admitad/11?key=${KEY}&type=sale&action_id=TEST_001&subid=cp-mobupps&order_sum=1299.00¤cy=MXN&order_id=ORD_001"
# Esperado: {"status":"ok"}
# 2. Dedup: mismo action_id debe responder ok de nuevo
curl -s "https://ingest.relo.mx/admitad/11?key=${KEY}&type=sale&action_id=TEST_001&subid=cp-mobupps&order_sum=1299.00¤cy=MXN&order_id=ORD_001"
# 3. Evento lead (lead_submit)
curl -s "https://ingest.relo.mx/admitad/11?key=${KEY}&type=lead&action_id=TEST_002&subid=cp-mobupps&order_sum=0¤cy=MXN"
# 4. POST form-encoded (Mitgo puede usar POST)
curl -s -X POST -H "Content-Type: application/x-www-form-urlencoded" \
-d "type=sale&action_id=TEST_003&subid=cp-mobupps&order_sum=999.00¤cy=MXN" \
"https://ingest.relo.mx/admitad/11?key=${KEY}"
# 5. Status approved
curl -s "https://ingest.relo.mx/admitad/11/status?key=${KEY}&action_id=TEST_001&payment_status=approved&order_id=ORD_001&payment_sum=64.95¤cy=MXN"
# 6. Sin key debe dar 401
curl -s -w "\nHTTP:%{http_code}\n" "https://ingest.relo.mx/admitad/11?type=sale&action_id=TEST_004"
# Esperado: HTTP:401
8.2 Verificar que llegó al portal
- Ve al
PartnerProfiledel partner → tab Tracking & deals. - Revisa que aparezcan unidades/comisión acumulada.
- También en
https://portal.relo.mx/v2/c/demo/overviewdebe reflejarse el revenue/costo.
Los agregadores tardan hasta ~10 min en reflejar la data.
9. Limpieza de datos de prueba
Después de probar, borra los eventos de prueba:
-- ClickHouse (eventos de conversión)
ALTER TABLE relo.events DELETE WHERE client_id = 23 AND event_properties['action_id'] LIKE 'TEST_%';
-- Supabase (status de acciones)
DELETE FROM network_action_statuses WHERE client_id = 23 AND action_id LIKE 'TEST_%';
Si usaste otro prefijo de prueba, reemplaza TEST_%.
10. Troubleshooting
| Síntoma | Posible causa | Fix |
|---|---|---|
401 invalid or missing key | Key incorrecta o no incluida en la URL | Copia la URL completa del drawer de Tracking sources. |
404 unknown data source | Source pausado o id incorrecto | Revisa que el source Admitad esté activo (id 11). |
400 | Faltan parámetros obligatorios | Mitgo debe mandar action_id, type, subid, order_sum, currency. |
| Llega evento pero no atribuye a partner | CID mal configurado | Revisa partner_clients.attribution_values para Marca. |
| No aparece Network tracking link | Falta Affiliate base URL o partner sin CID | Configura ambos. |
| Revenue aparece pero no comisión | No hay partner_lead_rates para purchase | Configura el CPA fijo en PartnerProfile. |
| Mitgo test falla | Method POST mal configurado o status equivocado | Usa GET, action status "Created". |
11. Checklist final de go-live
- Affiliate base URL de Mitgo pegado en source 11
- Key rotada (recomendado) y URL final copiada
- Postback de conversiones configurado en Mitgo (/admitad/11)
- Postback de status configurado en Mitgo (/admitad/11/status)
- Test de Mitgo devuelve {"status":"ok"}
- Partners dados de alta en Relo y asociados a Marca
- CIDs cp-<partner> asignados
- CPA fijo configurado por partner (purchase y/o lead_submit)
- Tracking links t.relo.mx generados y entregados
- Primeras conversiones reales verificadas en el portal
- Datos de prueba limpiados
12. Quién hace qué
| Tarea | Quién |
|---|---|
| Obtener affiliate hash de Mitgo | Joe / account manager |
| Configurar postbacks en Mitgo | Operaciones / account manager |
| Configurar source en Relo | Operaciones |
| Dar de alta partners + CIDs + CPAs | Operaciones |
| Generar y entregar tracking links | Operaciones |
| Verificar primeras conversiones | Operaciones + partner |
| Escalar errores técnicos | Joe / equipo de ingeniería |