Как создать автоматический сбор данных KPI в WordPress с примерами кода

Что такое 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 для расширения возможностей.

WooCommerce: автоматическое удаление заказов по истечении срока
04.06.2026
Как создать автоматический каталог картинок в WordPress
05.01.2026
WooCommerce: автоматическое возврат средств при отмене заказа через хуки
14.06.2026
Как создать автоматический отчет по активности пользователей в WordPress
16.02.2026
Как удалить текст из запроса поисковика в WordPress
10.11.2025