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

Для владельцев 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 сайте.

Как создать собственный шорткод для affiliate ссылок в WordPress
30.11.2025
Как сделать автоматическое отказание от affiliate программ в WordPress при низкой конверсии
23.01.2026
Как автоматизировать обновление цен affiliate продуктов в WordPress
30.01.2026
Как добавить автоматическое отображение отзывов в WordPress
23.11.2025
Как настроить обновление affiliate ссылок в WordPress без плагинов
16.12.2025