Predicción de actividad y desencadenantes de participación
1) Tarea
Es necesario predecir cuándo un jugador con alta probabilidad de entrar (o, por el contrario, puede «extinguirse») y qué incentivo aumentará la posibilidad de participar en una misión/calificador/torneo, respetando la honestidad y el Juego Responsable (RG).
Cuestiones clave:- «¿Cuándo suele jugar?» (patrones de tiempo)
- «¿Qué desencadena la participación?» (contenido, formato, premio, duración)
- «¿Cómo no recalentar?» (frecuencia de toques, restricciones RG, presupuesto económico)
2) Señales de datos
Comportamiento: ritmo de entradas (horas/días), duración y ritmo de las sesiones, frecuencia de participación en los eventos.
Contenido: proveedores/géneros favoritos, novedad, variedad.
La economía promo: una reacción a los aumentos/tokens/cosméticos de temporada pasados.
Señales de soz: chat, clips, reacciones (si las hay).
Contexto: dispositivo, canal, zona de tiempo, vacaciones/eventos locales.
RG: límites de tiempo/depósitos, signos de fatiga, «señales de pausa».
Todos los fichajes son agregados, sin PII más allá del mínimo reglamentario.
3) Fichering (ejemplos)
Estacionalidad/ritmo: un reloj caliente 0-23, días de la semana; autocorrelación de lagunas (ACF/PACF).
4) Pila modelo
1. Serie de tiempo para la actividad:- Prophet/NeuralProphet, LSTM/Temporal Fusion Transformer para patrones de grupo;
- perfiles de temporada de cohorte simple para en línea.
- Cox/Weibull/RSF → hasta el siguiente período de sesiones; riesgo de «extinción» (churn-hazard).
- 3. Participación de propensidad (P (join))
GBDT/AmbTransformer: probabilidad de participar en la presentación de la oferta.
4. Modelado Uplift (CATE):- Two-Model/T-Learner, X-Learner, DR-Learner para seleccionar qué disparador/contenido da ganancias.
- bandido contextual (LinUCB/Thompson) para el canal de selección en línea × contenido × tiempo dentro de los caps.
5) Tipos de desencadenantes de participación
Contenido: formato de torneo (sprint 20-30 min, maratón), proveedores favoritos, «novedad de la semana».
Temporales: «inicio en 15 min», «calificador vespertino» es la coincidencia con la probable ventana de entrada.
Premium (cosméticos/tokens): sin pay-to-win; rarezas - comunes a todos.
Social: amigos en línea, comunidad desafío, tareas co-op (ético, sin presión).
Misiones cruzadas: corta misión-calentamiento → entrada a la calificadora.
6) Orquestación de los toques (canal × tiempo × frecuencia)
Canales: in-app, push, email, web-inbox; prioridad in-app → push → email.
Selección de tiempo: cruce de p (activo en los siguientes 90-120 min) con un horario de eventos.
Frecuencia/tope: no más de N toques/semana, M/día; estricta cooldown entre los disparadores.
Modo silencioso: ventanas nocturnas del usuario; «silencioso» push → tarjeta inbox en la aplicación.
7) Honestidad, cumplimiento, RG
No hay impacto en RTP/probabilidades. Los desencadenantes cambian el «camino» en lugar de aplastar las ganancias.
Transparencia: página «Cómo seleccionamos notificaciones»: ventanas de actividad, límites de frecuencia, rechazo de personalización - 1 clic.
Guardas RG: con fatiga/límites - reducir la frecuencia, sugerir una pausa, no llamar a formatos largos.
Cancelaciones/opt-out: respetadas instantáneamente; «silencio inteligente» después de la denuncia.
8) Anti-spam y anti-abusivo
Rate limiting por usuario y canal.
La deduplicación del significado: no filtrar 2 ocasiones similares seguidas.
Presupuesto económico: cap para la emisión de tokens/cosméticos por temporada.
Justicia: el valor superior de la recompensa es el mismo; personalización - acerca de la relevancia.
9) KPI y métricas de control
Hit Rate de la ventana: una fracción de los toques que llegaron a la sesión activa ± Δ minutos.
Join Uplift: aumento de participación vs control.
D7/D30 Retention uplift en cohortes de destino.
Fatigue: aumento de las cancelaciones/mutaciones/quejas; Mute Rate Métricas RG: disminución de las sesiones ultra largas, proporción de pausas blandas. Premio ROI/Emisión a GRG - para que la economía promocional sea sostenible. Incremental Revenue/User-week (si es aplicable y válido regulativamente). 10) Patrones A/B 1. Ventanas de recordatorio: T-30/15/5 min antes del inicio del calificador. 2. Duración del formato: sprint 20 min vs 35 min para las ranuras de la noche. 3. Tipo de contenido: el proveedor favorito vs «la novedad de la semana». 4. Canal: in-app vs push; push con enlaces profundos vs sin. 5. Política de Uplift: apunta sólo a uplift positivo vs cobertura amplia. 6. Combo-desencadenante: misión-calentamiento → torneo vs torneo inmediatamente. 11) Plantillas JSON 12) Pseudocódigo de orquestación 13) Patrones UX Tarjeta en el vestíbulo: «Sprint vespertino 20 min, inicio en 15 min, cosméticos Rare». Estimación de tiempo: «≈20 -25 minutos» + indicador de dificultad. Opciones de control: «Recordar más tarde», «Saltar este tema», «Guardar silencio una semana». Silencioso VFX: breve, no invasivo, sin sonido intrusivo. 14) Plan de aplicación 1. MVP (2-4 semanas): ventanas de actividad de montaña + propensidad simple; un canal (in-app), una caja de frecuencia, una pantalla de transparencia. 2. v0. 9: survival-modelo de tiempo antes de la entrada; push + inbox; uplift básico en 2-3 disparadores. 3. v1. 0: bandido contextual, calendario de eventos completo, presupuesto de emisión, integración RG, informes de honestidad. 4. Más adelante: «horarios de semana» personales, misiones cruzadas, eventos geográficos, automatización de deriva MLOps. 15) Checklist antes del lanzamiento La predicción de actividad y desencadenantes es el tiempo × el contenido × el canal bajo los contextos RG y honestos. Las series de tiempo y survival dan «cuando», propensity y uplift - «que llamar», bandido - «cómo adaptar en línea». Con estrictos capos de frecuencia, transparencia y un presupuesto sostenible, la promo recibe menos ruido, más participación y la previsible economía de la temporada.
Solución del orquestador de toques:
json
{
"user_id": "u_29104", "next_active_window": {"start": "2025-10-24T17:00:00Z", "end": "2025-10-24T19:00:00Z", "p_active": 0. 72}, "p_join_by_trigger": {
"sprint_20min": 0. 41, "marathon_60min": 0. 18, "new_provider_event": 0. 36
}, "uplift_by_trigger": {
"sprint_20min": 0. 12, "new_provider_event": 0. 07
}, "rg_flags": {"fatigue": false, "limit_time": false}, "cooldowns": {"push": true, "in_app": false}
}json
{
"decision_id": "dec_2025_10_24_1630", "user_id": "u_29104", "touch": {
"channel": "in_app", "time": "2025-10-24T17:05:00Z", "trigger": "sprint_20min", "creative": "evening_sprint_card_v3"
}, "fairness": {"reward_cap_equivalent": true}, "rg": {"suggest_break": false}
}
python ctx = build_context(user_id)
p_active = activity_model. predict_window(ctx, horizon_hours=4)
p_join = propensity_model. score_triggers(ctx)
uplift = uplift_model. estimate(ctx, triggers=p_join. keys())
RG y restricciones de frecuencia if ctx. rg. fatigue or over_frequency_cap(user_id):
schedule_silent_inbox(user_id); exit()
selección de ventana y desencadenador win = best_time_window (p_active, events_schedule)
trigger = argmax(uplift, mask=channel_caps(user_id))
touch = compose_touch(user_id, channel="in_app", window=win, trigger=trigger)
if economy_budget_ok(trigger) and not in_quiet_hours(user_id, touch. time):
deliver(touch); log(touch)