Как создать видео трекинг в WordPress с помощью плагинов и кода

Видео трекинг в WordPress — это мощный инструмент для анализа поведения пользователей при просмотре видео. С его помощью можно узнать, какие части видео наиболее интересны, где зрители ставят на паузу, перематывают или досматривают до конца. В этой статье подробно разберём, как реализовать видео трекинг на сайте WordPress с помощью готовых плагинов и кастомного кода.

Зачем нужен видео трекинг в WordPress

Видео — это один из самых вовлекающих видов контента. Понимание того, как пользователи взаимодействуют с ним, помогает:

  • Оптимизировать контент под интересы аудитории;
  • Повысить вовлечённость и конверсию;
  • Анализировать эффективность рекламы и обучающих курсов;
  • Проводить A/B тестирование разных версий видео.

Без трекинга сложно понять, какие именно моменты видео вызывают интерес или отторжение, а значит — оптимизировать видео стратегию.

Плагины для видео трекинга в WordPress

Есть несколько решений, которые позволяют быстро внедрить трекинг видео с минимальными усилиями.

1. WP Video Analytics

Этот плагин собирает статистику по просмотрам, времени просмотра и действиям пользователя с видео, встроенными через стандартный HTML5-плеер. Он интегрируется с Google Analytics и выводит удобные отчёты в админке.

Плюсы:

  • Простота установки и настройки;
  • Поддержка различных форматов видео;
  • Интеграция с популярными аналитическими сервисами.

2. OmniVideo с модулем аналитики

Если вы используете для видео плеер OmniVideo, можно подключить модуль аналитики, который ведёт детальный трекинг и предоставляет расширенные отчёты. Также можно настроить события для Google Tag Manager.

Плюсы:

  • Полная интеграция с плеером;
  • Гибкие настройки событий;
  • Поддержка мобильных устройств.

Кастомный видео трекинг с помощью JavaScript и PHP

Если вы хотите реализовать своё решение с учётом специфики сайта, можно написать собственный код трекинга. Рассмотрим пример, как это сделать на базе HTML5 видео и AJAX.

Шаг 1. Добавляем видео с уникальным идентификатором

<video id="wpvideo_player" width="640" height="360" controls>
  <source src="/wp-content/uploads/video.mp4" type="video/mp4">
  Ваш браузер не поддерживает видео.
</video>

Шаг 2. Отслеживаем события видео на клиенте

Создадим JavaScript для фиксации ключевых событий: play, pause, ended, timeupdate. Для экономии запросов отправлять данные будем через определённые интервалы.

document.addEventListener('DOMContentLoaded', function() {
  const video = document.getElementById('wpvideo_player');
  let lastSentTime = 0;

  function wpvideo_sendEvent(eventType, currentTime) {
    fetch('/wp-admin/admin-ajax.php?action=wpvideo_track_video', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-WP-Nonce': wpvideo_vars.nonce
      },
      body: JSON.stringify({
        event: eventType,
        time: currentTime
      })
    });
  }

  video.addEventListener('play', function() {
    wpvideo_sendEvent('play', video.currentTime);
  });

  video.addEventListener('pause', function() {
    wpvideo_sendEvent('pause', video.currentTime);
  });

  video.addEventListener('ended', function() {
    wpvideo_sendEvent('ended', video.currentTime);
  });

  video.addEventListener('timeupdate', function() {
    if (video.currentTime - lastSentTime >= 10) { // Отправляем раз в 10 секунд
      wpvideo_sendEvent('timeupdate', video.currentTime);
      lastSentTime = video.currentTime;
    }
  });
});

Шаг 3. Обработка AJAX-запросов на сервере

Добавим в functions.php или свой плагин обработчик для сохранения данных трекинга.

add_action('wp_ajax_wpvideo_track_video', 'wpvideo_handle_video_tracking');
add_action('wp_ajax_nopriv_wpvideo_track_video', 'wpvideo_handle_video_tracking');

function wpvideo_handle_video_tracking() {
  check_ajax_referer('wpvideo_nonce', 'security');

  $input = json_decode(file_get_contents('php://input'), true);
  $event = sanitize_text_field($input['event'] ?? '');
  $time = floatval($input['time'] ?? 0);
  $user_id = get_current_user_id();

  if (!$event) {
    wp_send_json_error('No event specified');
  }

  global $wpdb;
  $table = $wpdb->prefix . 'wpvideo_tracking';

  $wpdb->insert($table, [
    'user_id' => $user_id,
    'event' => $event,
    'time' => $time,
    'created_at' => current_time('mysql')
  ]);

  wp_send_json_success('Event recorded');
}

Шаг 4. Создаём таблицу в базе данных для хранения трекинга

При активации плагина или вручную создаём таблицу:

function wpvideo_create_tracking_table() {
  global $wpdb;
  $table = $wpdb->prefix . 'wpvideo_tracking';
  $charset_collate = $wpdb->get_charset_collate();

  $sql = "CREATE TABLE $table (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    user_id bigint(20) unsigned NOT NULL DEFAULT 0,
    event varchar(50) NOT NULL,
    time float NOT NULL,
    created_at datetime NOT NULL,
    PRIMARY KEY  (id)
  ) $charset_collate;";

  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
  dbDelta($sql);
}
register_activation_hook(__FILE__, 'wpvideo_create_tracking_table');

Отображение и анализ видео трекинга

После накопления данных важно уметь их визуализировать. Для этого можно:

  • Создать страницу с графиками на базе Chart.js, выводящими данные из таблицы;
  • Экспортировать данные в CSV для анализа в Excel или Google Sheets;
  • Интегрировать с Google Data Studio через Google Sheets.

Пример простого запроса к базе для подсчёта количества событий ended:

global $wpdb;
$table = $wpdb->prefix . 'wpvideo_tracking';
$count = $wpdb->get_var($wpdb->prepare(
  "SELECT COUNT(*) FROM $table WHERE event = %s",
  'ended'
));
echo 'Количество досмотров до конца: ' . intval($count);

Рекомендации по оптимизации видео трекинга

Для минимизации нагрузки и получения точных данных учтите следующие моменты:

  • Отправляйте события не слишком часто (например, раз в 10 секунд);
  • Используйте nonce для безопасности AJAX-запросов;
  • Сохраняйте только необходимые данные, чтобы не перегружать базу;
  • Регулярно архивируйте и очищайте старые данные;
  • Оптимизируйте запросы к базе и используйте индексы.

Также полезно подключить к WordPress плагин Clearfy Pro, который поможет оптимизировать работу сайта при увеличении объёма аналитики и трекинга, а для вывода аналитики можно использовать WPCommunity для удобного интерфейса админки.

Как автоматически устанавливать миниатюры видео в WordPress
30.12.2025
Как использовать видео как фон для секций в WordPress без потери производительности
29.05.2026
Как удалить водяной знак с видео в WordPress без потери производительности
09.04.2026
Как автоматизировать добавление подписей к видео в WordPress
16.04.2026
Как избежать проблем со штормами видео в WordPress
06.12.2025