Что такое KPI и зачем их собирать в WordPress
KPI (Key Performance Indicators) — это ключевые показатели эффективности, которые позволяют оценить успешность работы сайта, бизнеса или отдельных процессов. Для владельцев сайтов на WordPress важно иметь возможность автоматически собирать и анализировать эти показатели, чтобы быстро реагировать на изменения и улучшать результаты.
В отличие от ручного сбора данных, автоматизация позволяет экономить время и минимизировать ошибки. В этой статье мы рассмотрим, как реализовать автоматический сбор данных KPI в WordPress с помощью собственного кода и популярных плагинов, а также как визуализировать результаты.
Выбор KPI для сайта на WordPress
Перед тем как начать сбор, нужно определить, какие именно KPI важны для вашего проекта. Примеры ключевых показателей:
- Количество уникальных посетителей за день/неделю/месяц
- Среднее время на странице
- Количество отправленных форм обратной связи
- Конверсия по целевым действиям (например, подписка, покупка)
- Показатель отказов (bounce rate)
Для сбора некоторых данных можно использовать сторонние сервисы аналитики, однако для специфических или внутренних метрик часто требуется собственная реализация.
Автоматический сбор данных с помощью собственного кода
Регистрация и хранение KPI в базе данных
Для начала создадим отдельную таблицу в базе данных для хранения показателей. В хуке активации плагина или темы добавим код:
function wpkpi_create_kpi_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'wpkpi_metrics';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
metric_name VARCHAR(100) NOT NULL,
metric_value FLOAT NOT NULL,
metric_date DATE NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY metric_date_name (metric_date, metric_name)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'wpkpi_create_kpi_table' );Эта таблица будет хранить название метрики, ее значение и дату.
Функция записи метрик
Создадим функцию для записи или обновления показателя за текущий день:
function wpkpi_save_metric( $name, $value ) {
global $wpdb;
$table_name = $wpdb->prefix . 'wpkpi_metrics';
$date = date('Y-m-d');
$existing = $wpdb->get_var( $wpdb->prepare(
"SELECT id FROM $table_name WHERE metric_name = %s AND metric_date = %s",
$name, $date
) );
if ( $existing ) {
$wpdb->update(
$table_name,
['metric_value' => $value],
['id' => $existing],
['%f'],
['%d']
);
} else {
$wpdb->insert(
$table_name,
[
'metric_name' => $name,
'metric_value' => $value,
'metric_date' => $date
],
['%s', '%f', '%s']
);
}
}Пример сбора посещаемости
Чтобы считать количество посетителей, можно использовать куки и сохранять счетчик уникальных посетителей в отдельной опции или в нашей таблице. Для простоты возьмем вариант с опцией, обновляя значение в конце дня с помощью WP-Cron:
function wpkpi_track_unique_visitor() {
if(!isset($_COOKIE['wpkpi_visitor'])) {
setcookie('wpkpi_visitor', '1', time()+3600*24, COOKIEPATH, COOKIE_DOMAIN);
$count = (int) get_option('wpkpi_unique_visitors_today', 0);
update_option('wpkpi_unique_visitors_today', $count + 1);
}
}
add_action('init', 'wpkpi_track_unique_visitor');
function wpkpi_save_daily_visitors() {
$count = (int) get_option('wpkpi_unique_visitors_today', 0);
wpkpi_save_metric('unique_visitors', $count);
update_option('wpkpi_unique_visitors_today', 0);
}
if (!wp_next_scheduled('wpkpi_daily_save_hook')) {
wp_schedule_event(strtotime('tomorrow midnight'), 'daily', 'wpkpi_daily_save_hook');
}
add_action('wpkpi_daily_save_hook', 'wpkpi_save_daily_visitors');Так мы считаем уникальных посетителей по дням и сохраняем их в таблице KPI.
Отображение KPI в админке WordPress
Создаем страницу с отчетом
Добавим пункт меню и страницу в админку для просмотра KPI:
function wpkpi_admin_menu() {
add_menu_page(
'Отчеты KPI',
'KPI Отчеты',
'manage_options',
'wpkpi_reports',
'wpkpi_reports_page',
'dashicons-chart-bar',
60
);
}
add_action('admin_menu', 'wpkpi_admin_menu');
function wpkpi_reports_page() {
global $wpdb;
$table_name = $wpdb->prefix . 'wpkpi_metrics';
$results = $wpdb->get_results("SELECT * FROM $table_name ORDER BY metric_date DESC LIMIT 30");
echo '<h1>Отчеты по KPI за последние 30 дней</h1>';
echo '<table class="widefat"><thead><tr><th>Дата</th><th>Метрика</th><th>Значение</th></tr></thead><tbody>';
foreach ($results as $row) {
echo '<tr><td>' . esc_html($row->metric_date) . '</td><td>' . esc_html($row->metric_name) . '</td><td>' . esc_html($row->metric_value) . '</td></tr>';
}
echo '</tbody></table>';
}Так пользователь с правами администратора сможет просматривать собранные данные прямо в админке.
Использование плагинов для расширенного сбора KPI
Если не хочется писать свой код, можно использовать плагины, которые помогут с автоматизацией KPI:
- WPGPT — позволяет собирать данные и создавать отчеты с помощью ИИ, автоматизируя анализ KPI.
- Expert Review — плагин для оценки эффективности контента и пользовательского взаимодействия.
- ABC Pagination — помогает оптимизировать страницы с большим количеством данных, что полезно при визуализации KPI.
Эти инструменты позволят быстро внедрить аналитику и автоматический сбор данных без глубоких технических знаний.
Резюме и рекомендации по оптимизации сбора KPI
Автоматизация сбора KPI в WordPress — важный этап для повышения эффективности сайта и бизнеса. В статье показан пример создания собственной базы данных и функций для записи метрик, а также базовая реализация подсчета уникальных посетителей и отображения отчетов в админке.
Для более сложных задач рекомендую изучить WP-Cron, REST API WordPress и интеграцию с внешними сервисами аналитики. Также можно комбинировать собственный код с плагинами из каталога WPShop для расширения возможностей.