Przewidywanie aktywności i uruchamianie udziału
1) Zadanie
Konieczne jest przewidzenie, kiedy gracz najprawdopodobniej wejdzie (lub odwrotnie, może „wyjść”) i jaka zachęta zwiększy szansę udziału w misji/kwalifikatora/turnieju, z zastrzeżeniem uczciwości i odpowiedzialnej gry (RG).
Najważniejsze kwestie:- „Kiedy zwykle gra?” (wzory czasu)
- „Co wywołuje udział?” (treść, format, nagroda, czas trwania)
- „Jak nie przegrzać?” (częstotliwość dotykowa, ograniczenia RG, budżet gospodarczy)
2) Sygnały danych
Zachowanie: rytm wejścia (godziny/dni), długość i tempo sesji, częstotliwość udziału w wydarzeniach.
Zawartość: ulubieni dostawcy/gatunki, nowość, różnorodność.
Gospodarka promo: Reakcja na wcześniejsze bodźce/tokeny sezonowe/kosmetyki.
Sygnały społeczne: czat, klipy, reakcje (jeśli występują).
Kontekst: urządzenie, kanał, strefa czasowa, lokalne wakacje/wydarzenia.
RG: limity czasu/depozytu, oznaki zmęczenia, „sygnały pauzy”.
Wszystkie cechy są zagregowane, bez PII przekraczającego minimum regulacyjne.
3) Ficering (przykłady)
Sezonowość/rytm: 1-gorące godziny 0-23, dni tygodnia; autokorrelacja opóźnień (ACF/PACF).
4) Model stosu
1. Seria czasowa dla działalności:- Prorok/Nely Prophet, LSTM/Temporal Fusion Transformer dla wzorców grupowych;
- proste sezonowe profile kohorty dla online.
- Cox/Weibull/RSF → czas do następnej sesji; ryzyko „wyginięcia” (zagrożenie kościelne).
- 3. Skłonność do uczestnictwa (P (join))
GBDT/TabTransformer - prawdopodobieństwo udziału w wyświetlaczu notowań.
4. Modelowanie Uplift (CATE):- Two-Model/T-Learner, X-Learner, DR-Learner do wyboru, który wyzwalacz/zawartość daje wzrost.
- kontekstowy bandit (LinUCB/Thompson) do dopasowywania kanałów online × zawartość × czas wewnątrz ust.
5) Rodzaje wyzwalaczy uczestnictwa
Zawartość: format turnieju (sprint 20-30 minut, maraton), ulubieni dostawcy, „nowy tydzień”.
Tymczasowe: „start za 15 minut”, „evening qualifier” - zbieg okoliczności z prawdopodobnym oknem wejścia.
Premia (kosmetyki/żetony): bez wynagrodzenia; rzadkości - wspólne dla wszystkich.
Społeczność: przyjaciele online, wyzwanie społeczne, zadania kooperacyjne (etyczne, bez presji).
Misje krzyżowe: krótka misja rozgrzewająca → wejście do kwalifikatora.
6) Orkiestra dotykowa (kanał × czas × częstotliwość)
Kanały: in-app, push, e-mail, web-inbox; priorytet in-app → push → email.
Czas: przejście p (aktywne w ciągu następnych 90-120 minut) z harmonogramem zdarzeń.
Częstotliwość/nasadka: nie więcej niż N dotyk/tydzień, M/dzień; ścisłe chłodzenie między spustami.
Tryb ciszy: nocne okna użytkownika; „cichy” push → skrzynka odbiorcza w aplikacji.
7) Uczciwość, zgodność, RG
Brak wpływu na RTP/szanse. Wyzwalacze zmieniają „ścieżkę”, a nie oczekiwanie wygranej.
Przejrzystość: strona „Jak wybieramy powiadomienia”: okna aktywności, limity częstotliwości, odmowa personalizacji - 1 kliknięcie.
Osłony RG: ze zmęczeniem/ograniczeniami - zmniejszamy częstotliwość, oferujemy pauzę, nie wzywamy do długich formatów.
Rezygnacja z subskrypcji/opt-out: przestrzegane natychmiast; „mądra cisza” po skardze.
8) Anty-spam i anty-nadużycia
Ograniczenie tempa na użytkownika i kanał.
Deduplikowanie znaczenia: nie wysyłaj 2 podobnych powodów z rzędu.
Budżet gospodarczy: pułap emisji tokenów/kosmetyków według sezonu.
Sprawiedliwość: Najwyższa wartość nagrody jest taka sama; personalizacja - o znaczeniu.
9) KPI i mierniki sterowania
Szybkość trafienia okna: odsetek dotyczek, które dostały się do aktywnej sesji ± minut.
Dołącz do Uplift: zwiększenie udziału w programie vs control.
Zwiększenie retencji D7/D30 w kohortach docelowych.
Zmęczenie: wzrost liczby rezygnacji/mutes/skarg; Mute Rate Metryka RG: redukcja sesji ekstremalnych, odsetek miękkich przerw. Nagroda ROI/Emisja do GGR - tak, aby gospodarka promocyjna była zrównoważona. Przychody przyrostowe/tydzień użytkownika (w stosownych przypadkach i regulacje). 10) wzory A/B 1. Okna przypomnienia: T-30/15/5 minut przed rozpoczęciem kwalifikacji. 2. Czas trwania formatu: sprint 20 min vs 35 min dla gniazd wieczornych. 3. Typ treści: Ulubiony dostawca vs „nowy tydzień”. 4. Kanał: w aplikacji vs push; push z głębokimi linkami vs bez. 5. Polityka podnoszenia emisji: cel tylko w zakresie podwyższenia poziomu dodatniego w porównaniu z szerokim zasięgiem. 6. Combo trigger: rozgrzewka misja → turniej vs natychmiast turniej. 11) szablony JSON 12) Orkiestra pseudokodowa 13) Wzory UX Lobby card: „Evening sprint 20 min, start w 15 min, Rzadkie kosmetyki”. Czas oszacowania: „20 -25 minut” + wskaźnik trudności. Opcje kontroli: „Przypomnij mi później”, „Pomiń ten temat”, „Milcz przez tydzień”. Cichy VFX: krótki, nieinwazyjny, bez wciągającego dźwięku. 14) Plan realizacji 1. MVP (2-4 tygodnie): okna aktywności kohorty + proste skłonności; jeden kanał (w aplikacji), czapka częstotliwości, ekran przejrzystości. 2. v0. 9: model przeżycia czasu przed wejściem; push + skrzynka odbiorcza; podstawowe podniesienie przez 2-3 wyzwalacze. 3. v1. 0: kontekstowy bandyta, pełnoprawny kalendarz wydarzeń, budżet emisji, integracja RG, raporty o uczciwości. 4. Następny: osobiste „harmonogramy tygodnia”, misje krzyżowe, geo-wydarzenia, automatyzacja dryfów MLOps. 15) Lista kontrolna przed zwolnieniem Aktywność i prognoza wyzwalania to czas × zawartość × kanał pod RG i uczciwe ograniczenia. Serie czasu i przeżycia dają "kiedy", skłonności i podnoszenie - "co nazywać", bandyta - "jak dostosować się online. - Dzięki rygorystycznym limitom częstotliwości, przejrzystości i zrównoważonemu budżetowi, promocje stają się mniej hałaśliwe, większy udział i przewidywalna gospodarka sezonu.
Rozwiązanie orkiestratora dotykowego:
json
{
"user_id": "u_29104," "next_active_window": {"start": "2025-10-24T17:00:00Z," "koniec": "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": {"zmęczenie": fałszywe, "limit_time": false}, "cooldowns": {"push": true, "in_app": false}
}json
{
„decision_id": „dec_2025_10_24_1630,” „user_id": „u_29104,” „dotyk”: {
„kanał”: „in_app,” „czas”: „2025-10-24T17:05:00Z,” „wyzwalacz”: „sprint_20min,” „kreatywny”: „evening_sprint_card_v3”
}, „uczciwość”: {„nagroda _ 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. klucze ())
RG i ograniczenia częstotliwości, jeśli ctx. rg. zmęczenie lub over_frequency_cap (user_id):
schedule_silent_inbox (user_id); wyjście ()
window and trigger selection win = best_time_window (p_active, events_schedule)
trigger = argmax (uplift, maska = channel _ caps (user_id))
touch = compose_touch (user_id, kanał =” in _ app”, okno = wygrana, wyzwalacz = wyzwalacz)
jeśli economy_budget_ok (spust) i nie in_quiet_hours (user_id, dotknij. czas):
dostarczenie (dotyk); log (dotyk)