Для владельцев сайтов на WordPress важно не только отслеживать статистику посещений, но и уметь автоматически импортировать данные аналитики для дальнейшего анализа или отображения на сайте. В этой статье мы подробно разберём, как настроить автоматический импорт данных из Яндекс.Метрики в WordPress с помощью PHP и REST API Яндекс.Метрики.
Почему стоит автоматизировать импорт данных Яндекс.Метрики в WordPress
Ручной экспорт статистики из Яндекс.Метрики и последующая загрузка в WordPress – процесс трудоёмкий и неэффективный. Автоматизация позволит:
- Регулярно обновлять данные без вашего вмешательства;
- Использовать свежие метрики для построения отчетов или аналитики;
- Отображать актуальную статистику на сайте в виде виджетов или отчетов;
- Интегрировать данные в кастомные решения, например, для мониторинга рекламных кампаний.
Для реализации возникшей задачи нам понадобится доступ к API Яндекс.Метрики, а также некоторые знания PHP и WordPress.
Подготовка: получение OAuth-токена Яндекс.Метрики
Для работы с API Яндекс.Метрики требуется OAuth-токен с правами доступа к нужному счётчику. Чтобы его получить, выполните следующие шаги:
- Зайдите в Яндекс.OAuth и зарегистрируйте новое приложение.
- Выберите права доступа к Яндекс.Метрике (метрика:просмотр статистики).
- Получите токен и сохраните его — он понадобится для запросов к API.
Важно: OAuth-токен имеет срок действия, поэтому для длительной работы потребуется использовать механизм обновления токена или генерировать новый.
Пример кода для импорта данных из Яндекс.Метрики в WordPress
Ниже пример функции, которая запрашивает отчёт по посещаемости с помощью API и сохраняет данные в опции WordPress для дальнейшего использования.
function wpbegin_import_yandex_metrika_data() {
$token = 'ВАШ_OAUTH_ТОКЕН';
$counterId = 'ВАШ_НОМЕР_СЧЁТЧИКА';
$apiUrl = 'https://api-metrika.yandex.net/stat/v1/data';
$params = [
'metrics' => 'ym:s:visits,ym:s:users',
'dimensions' => 'ym:s:date',
'date1' => '7daysAgo',
'date2' => 'yesterday',
'ids' => $counterId
];
$url = $apiUrl . '?' . http_build_query($params);
$args = [
'headers' => [
'Authorization' => 'OAuth ' . $token
]
];
$response = wp_remote_get($url, $args);
if (is_wp_error($response)) {
error_log('Ошибка запроса к Яндекс.Метрике: ' . $response->get_error_message());
return false;
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (empty($data['data'])) {
error_log('Пустой ответ от Яндекс.Метрики');
return false;
}
// Сохраняем данные в опцию WordPress для дальнейшего использования
update_option('wpbegin_yandex_metrika_data', $data['data']);
return true;
}Эта функция делает GET-запрос к API Яндекс.Метрики с параметрами для получения посещаемости за последние 7 дней. Данные сохраняются в базе WordPress в опции wpbegin_yandex_metrika_data.
Автоматизация вызова функции через WP-Cron
Чтобы данные обновлялись автоматически, подключим функцию к системе планировщика задач WP-Cron.
function wpbegin_schedule_yandex_metrika_import() {
if (!wp_next_scheduled('wpbegin_daily_yandex_metrika_import')) {
wp_schedule_event(time(), 'daily', 'wpbegin_daily_yandex_metrika_import');
}
}
add_action('wp', 'wpbegin_schedule_yandex_metrika_import');
add_action('wpbegin_daily_yandex_metrika_import', 'wpbegin_import_yandex_metrika_data');Этот код настроит ежедневный запуск функции импорта данных. Вы можете менять интервал на 'hourly' или создавать свои, если нужно более частое обновление.
Отображение данных Яндекс.Метрики на сайте
После того как данные импортированы и сохранены, их можно вывести, например, в виджете или на странице сайта. Пример простого шорткода для отображения суммарных посещений за последние 7 дней:
function wpbegin_yandex_metrika_shortcode() {
$data = get_option('wpbegin_yandex_metrika_data');
if (empty($data)) {
return 'Данные Яндекс.Метрики пока не загружены.';
}
$totalVisits = 0;
foreach ($data as $day) {
$metrics = $day['metrics'];
$totalVisits += $metrics[0]; // ym:s:visits
}
return '<div>Посещений за последние 7 дней: ' . intval($totalVisits) . '</div>';
}
add_shortcode('wpbegin_yandex_metrika_visits', 'wpbegin_yandex_metrika_shortcode');Добавьте шорткод [wpbegin_yandex_metrika_visits] в нужное место контента — и посетители увидят актуальную статистику.
Полезные плагины для интеграции Яндекс.Метрики с WordPress
Если хочется более готового решения, можно использовать плагины:
- Yandex.Metrika — официальный плагин для добавления счётчика и базовой аналитики.
- Clearfy Pro — плагин для оптимизации сайта, который также поддерживает интеграцию с метриками и кастомные инструменты.
Однако для нестандартных задач с импортом и обработкой данных лучше писать свой код, как показано выше.
Заключение по теме автоматического импорта данных из Яндекс.Метрики
Настройка автоматического импорта данных из Яндекс.Метрики в WordPress расширяет возможности аналитики и управления сайтом. Используя API, WP-Cron и собственные функции, можно создать гибкую систему обновления статистики и её отображения. Такой подход полезен для проектов, где важен оперативный доступ к данным и их интеграция в пользовательский интерфейс.