Для владельцев affiliate сайтов на WordPress важно не только создавать и размещать партнерские ссылки, но и отслеживать их эффективность. Автоматический отчет о просмотрах affiliate ссылок поможет понять, какие из них работают лучше, а какие требуют оптимизации. В этой статье подробно рассмотрим, как создать такой отчет с помощью кода и доступных плагинов, чтобы получить точные данные в удобном виде.
Почему важен автоматический отчет о просмотрах affiliate ссылок
Отслеживание просмотров affiliate ссылок позволяет анализировать поведение пользователей, выявлять наиболее кликабельные предложения и оптимизировать стратегию продвижения. Ручной подсчет просмотров невозможен при большом количестве ссылок, поэтому автоматизация — единственный эффективный путь.
Кроме того, автоматический отчет помогает быстро реагировать на снижение интереса к определенным продуктам и своевременно обновлять контент.
Как работает подсчет просмотров affiliate ссылок в WordPress
Основная идея — фиксировать каждый показ ссылки на странице и сохранять эту информацию в базе данных. В дальнейшем данные агрегируются и выводятся в виде отчета.
Чаще всего affiliate ссылки реализуются через шорткоды, виджеты или напрямую в контенте. Чтобы отследить просмотры, нужно интегрировать код подсчета в рендеринг ссылок.
Выбор метода подсчета: JavaScript или PHP
Есть два варианта реализации:
- Подсчет на стороне клиента с помощью JavaScript — можно отследить фактическое отображение ссылки в браузере пользователя.
- Подсчет на стороне сервера при генерации страницы — подходит, если ссылки вставляются динамически и не скрываются.
Рассмотрим пример с PHP, так как он проще для интеграции и не требует дополнительного кода на фронтенде.
Пример реализации подсчета просмотров affiliate ссылок через PHP
Создадим функцию wpaffiliate_track_affiliate_link_view, которая будет вызываться при выводе каждой affiliate ссылки. Она будет записывать ID ссылки и дату просмотра в отдельную таблицу базы данных.
Для начала создадим таблицу для хранения просмотров с помощью активационного хука плагина или темы:
function wpaffiliate_create_views_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'wpaffiliate_link_views';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
link_id BIGINT(20) NOT NULL,
view_date DATETIME NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
register_activation_hook(__FILE__, 'wpaffiliate_create_views_table');Далее функция для записи просмотра:
function wpaffiliate_track_affiliate_link_view($link_id) {
if (!is_numeric($link_id)) return;
global $wpdb;
$table_name = $wpdb->prefix . 'wpaffiliate_link_views';
$wpdb->insert(
$table_name,
[
'link_id' => $link_id,
'view_date' => current_time('mysql', 1)
],
['%d', '%s']
);
}Теперь нужно вызывать эту функцию при выводе каждой affiliate ссылки. Если ссылки создаются через шорткод, то модифицируем его:
function wpaffiliate_affiliate_link_shortcode($atts) {
$atts = shortcode_atts([
'id' => 0,
'url' => '',
'text' => 'Перейти'
], $atts, 'wpaffiliate_link');
if ($atts['id']) {
wpaffiliate_track_affiliate_link_view($atts['id']);
}
return '<a href="' . esc_url($atts['url']) . '" target="_blank" rel="nofollow">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpaffiliate_link', 'wpaffiliate_affiliate_link_shortcode');Создание отчета просмотров affiliate ссылок
Для удобства создадим административную страницу, где будет выводиться статистика просмотров по каждой ссылке за выбранный период.
Добавление страницы в админку
function wpaffiliate_add_admin_menu() {
add_menu_page(
'Отчеты affiliate ссылок',
'Affiliate Отчеты',
'manage_options',
'wpaffiliate_reports',
'wpaffiliate_render_reports_page',
'dashicons-chart-bar',
60
);
}
add_action('admin_menu', 'wpaffiliate_add_admin_menu');Вывод отчета с фильтром по дате
В функции wpaffiliate_render_reports_page подготовим SQL запрос, агрегирующий количество просмотров по ссылкам:
function wpaffiliate_render_reports_page() {
global $wpdb;
$table_name = $wpdb->prefix . 'wpaffiliate_link_views';
$date_from = isset($_GET['date_from']) ? sanitize_text_field($_GET['date_from']) : '';
$date_to = isset($_GET['date_to']) ? sanitize_text_field($_GET['date_to']) : '';
$where = '';
$params = [];
if ($date_from) {
$where .= " AND view_date >= %s";
$params[] = $date_from . ' 00:00:00';
}
if ($date_to) {
$where .= " AND view_date <= %s";
$params[] = $date_to . ' 23:59:59';
}
$query = $wpdb->prepare(
"SELECT link_id, COUNT(*) as views_count
FROM $table_name
WHERE 1=1 $where
GROUP BY link_id
ORDER BY views_count DESC",
...$params
);
$results = $wpdb->get_results($query);
echo '<h1>Отчет по просмотрам affiliate ссылок</h1>';
echo '<form method="get">';
echo '<input type="hidden" name="page" value="wpaffiliate_reports" />';
echo 'С даты: <input type="date" name="date_from" value="' . esc_attr($date_from) . '" /> ';
echo 'По дату: <input type="date" name="date_to" value="' . esc_attr($date_to) . '" /> ';
echo '<input type="submit" value="Фильтровать" />';
echo '</form>';
if ($results) {
echo '<table class="wp-list-table widefat fixed striped">';
echo '<thead><tr><th>ID ссылки</th><th>Ссылка</th><th>Просмотры</th></tr></thead><tbody>';
foreach ($results as $row) {
$link_url = get_post_meta($row->link_id, 'affiliate_url', true) ?: '#';
echo '<tr>';
echo '<td>' . intval($row->link_id) . '</td>';
echo '<td><a href="' . esc_url($link_url) . '" target="_blank" rel="nofollow">' . esc_html($link_url) . '</a></td>';
echo '<td>' . intval($row->views_count) . '</td>';
echo '</tr>';
}
echo '</tbody></table>';
} else {
echo '<p>Данные за выбранный период отсутствуют.</p>';
}
}Использование плагинов для отслеживания просмотров affiliate ссылок
Если вы не хотите писать код, можно использовать готовые решения. Например, плагин Clearfy Pro позволяет добавить расширенную аналитику и автоматизировать сбор статистики по ссылкам.
Еще один вариант — плагин WPRemark, который интегрируется с affiliate ссылками и собирает данные о кликах и просмотрах с удобным интерфейсом отчетов.
Рекомендации по улучшению отчетности и безопасности
При работе с отчетами и базой данных важно учитывать нагрузку на сайт. Для крупных affiliate проектов рекомендуется:
- Добавлять индексы в таблицу просмотров для ускорения выборок.
- Реализовывать периодическую очистку или архивирование старых данных.
- Использовать AJAX-запросы для вывода отчетов, чтобы не замедлять загрузку страниц админки.
- Обеспечивать проверку прав доступа к страницам отчета.
Также стоит обезопасить данные, чтобы избежать подделки просмотров — для этого можно добавить проверку user-agent и ограничение по IP, если необходимо.
Выводы
Создание автоматического отчета о просмотрах affiliate ссылок в WordPress — важный шаг к эффективному управлению партнерскими кампаниями. Используя простые функции PHP и базу данных, вы получите точные данные без лишних затрат ресурсов. При желании можно интегрировать готовые плагины, например Clearfy Pro или WPRemark, для расширенной аналитики и удобства.
Этот подход поможет вам своевременно принимать решения, увеличивать доход и сохранять контроль над affiliate ссылками на вашем WordPress сайте.