AI-система аналитики аудитории для издателей
Издатели накапливают богатые данные о поведении читателей, но используют лишь верхний слой метрик (просмотры, отказы). Глубокая аудиторная аналитика с ML превращает эти данные в actionable инсайты для редакции и коммерческой службы.
Сегментация аудитории
RFM + Behavioral Clustering:
Поведенческая сегментация читателей выходит за рамки демографики:
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
def segment_readers(reader_events_df, n_segments=6):
"""
Сегментация читателей по поведенческим признакам.
reader_events_df: события (статьи, время, scroll_depth, shares)
"""
# Агрегация на уровне читателя
reader_features = reader_events_df.groupby('reader_id').agg({
'article_id': 'count', # Frequency
'session_duration': 'mean', # вовлечённость
'scroll_depth_pct': 'mean', # глубина чтения
'days_active': 'nunique', # активные дни
'category': lambda x: x.mode()[0], # любимая категория
'shares': 'sum', # виральность
'direct_visit': 'mean', # лояльность (не трафик из поиска)
'last_visit': lambda x: (pd.Timestamp.now() - pd.to_datetime(x).max()).days
}).reset_index()
reader_features.columns = ['reader_id', 'articles_read', 'avg_session',
'avg_scroll', 'active_days', 'top_category',
'shares', 'direct_ratio', 'recency_days']
# Нормализация
numeric_cols = ['articles_read', 'avg_session', 'avg_scroll',
'active_days', 'shares', 'direct_ratio', 'recency_days']
scaler = StandardScaler()
X = scaler.fit_transform(reader_features[numeric_cols].fillna(0))
# K-Means кластеризация
kmeans = KMeans(n_clusters=n_segments, random_state=42, n_init=10)
reader_features['segment'] = kmeans.fit_predict(X)
return reader_features
Типичные сегменты:
- Loyalists: приходят напрямую, читают каждый день, глубокий scroll
- Casual browsers: иногда заходят из соцсетей, читают только headline
- Topic specialists: много читают по одной категории (аудитория для niche newsletters)
- Social sharers: мало читают сами, но активно делятся
- Churning users: были активны, прекратили
Аналитика контента
Content Performance Scoring:
Оценка статьи не только по просмотрам, но по качественным метрикам:
| Метрика | Вес | Что измеряет |
|---|---|---|
| Read rate (scroll >70%) | 30% | Удержание внимания |
| Time on page / expected | 25% | Реальное чтение vs. bounce |
| Return rate | 20% | Читатель вернулся через статью |
| Social amplification | 15% | Виральность |
| Subscription assists | 10% | Влияние на конверсию |
Topic Resonance Analysis:
Какие темы вызывают наибольший отклик у разных сегментов аудитории:
- NLP кластеризация контента (BERTopic) → тематические кластеры
- Матрица «тема × сегмент аудитории» → editorial insights
- Редакция видит: «Читатели-Loyalists хотят больше аналитики, Casual - больше listicles»
Прогноз оттока подписчиков
Subscriber Health Score:
Динамический скоринг каждого подписчика:
- Снижение частоты чтения → желтый флаг
- Отписка от email рассылки → красный флаг
- Паттерн: не открывал письма 3 недели + не заходил на сайт → P(churn_30d) = 0.7
Win-back campaigns:
При P(churn) > 0.6:
- Персональная подборка лучших статей за период отсутствия
- Спецпредложение при истечении подписки (если LTV > cost of offer)
- Re-engagement email серия с нарастающими стимулами
Attribution и monetization insights
Content-Subscriber Attribution:
Какие статьи реально приводят к подписке?
- Multi-touch attribution: читатель прочёл 8 статей перед подпиской
- Markov Chain attribution: каждой статье — заслуженная доля «вины» за конверсию
- Редакция: инвестировать в создание контента типа X, потому что он конвертирует
Срок разработки: 2–4 месяца для платформы аудиторной аналитики с сегментацией, churn prediction и content scoring.







