HOME / BLOG
BLOG

WordPressでアクセス解析ダッシュボードをChart.jsで作る方法

デフォルト画像

アクセス解析ダッシュボードは、数字を並べるだけだと判断しづらくなります。Chart.jsでPVや検索クリックの推移をグラフ化すると、伸びている日、落ちた日、施策の効果が直感的に分かります。

HTML

<section class="analytics-chart">
  <h2>アクセス推移</h2>
  <canvas id="trafficChart" width="800" height="360"></canvas>
</section>

Chart.jsを読み込む

add_action('wp_enqueue_scripts', function () {
    if (!is_page('dashboard')) {
        return;
    }

    wp_enqueue_script(
        'chartjs',
        'https://cdn.jsdelivr.net/npm/chart.js',
        [],
        null,
        true
    );

    wp_enqueue_script(
        'nines-dashboard-chart',
        get_template_directory_uri() . '/js/dashboard-chart.js',
        ['chartjs'],
        '1.0.0',
        true
    );
});

グラフを描画するJavaScript

async function drawTrafficChart() {
  const response = await fetch('/wp-json/nines/v1/analytics/daily');
  const rows = await response.json();

  const labels = rows.map((row) => row.date);
  const pageviews = rows.map((row) => row.pageviews);
  const clicks = rows.map((row) => row.clicks);

  new Chart(document.querySelector('#trafficChart'), {
    type: 'line',
    data: {
      labels,
      datasets: [
        {
          label: 'PV',
          data: pageviews,
          borderColor: '#ff2f63',
          backgroundColor: 'rgba(255, 47, 99, .12)',
          tension: .35,
          fill: true,
        },
        {
          label: '検索クリック',
          data: clicks,
          borderColor: '#111111',
          backgroundColor: 'rgba(17, 17, 17, .08)',
          tension: .35,
        },
      ],
    },
    options: {
      responsive: true,
      maintainAspectRatio: false,
      plugins: {
        legend: {
          position: 'bottom',
        },
      },
    },
  });
}

drawTrafficChart();

見やすくするコツ

  • PVとクリックを同じグラフに重ねすぎない
  • 凡例は下に置くとスマホで読みやすい
  • 日別・週別を切り替えられるようにする
  • 急上昇・急落日は背景色や注釈で目立たせる
  • 数字カードとグラフを同じ期間で揃える

参考資料

まとめ

Chart.jsを使うと、WordPressのアクセス解析ダッシュボードをかなり見やすくできます。まずはPVと検索クリックの折れ線グラフを作り、そこから記事別・キーワード別のグラフへ広げるのがおすすめです。