このブログ、割と早い段階からGoogle Analyticsでアクセス解析はしてたんですけど、アクセスカウンターは設置していませんでした。途中から設置しても、それは当初からの累積アクセス数とは違うし、それはなんかモヤモヤしそう…というのが理由です。でも、それならGoogle AnalyticsからPVを取得してカウンターにすればいいじゃん、てことで、色々調べて作ってみました。
それがこれ↓です
2021.10.19追記。別ドメイン下での駆動にしてたので、SSL化に伴い、使えなくなってしまいました~泣
昨日のPV: 昨日まで全期間のPV:
はい。ショボいです
でもこれ地のテキストじゃないですよ。ちゃんとカウントされてます。1日経たないと変わりませんが。
これはどこのサーバーでカウンターを動作させているかというと、FC2ブログではもちろん無理なので、レンタルサーバーです。負荷軽減のため、レンタルサーバーの方で1日に1回アクセス解析結果をjsonファイルで生成させ、それを本サイトから読み取る形にしてます。クロスドメインになりますが、本サイトからのみ許可を与えています。
以下、ソースとか。
ソースコード
PHPで作成しました。重要なとこだけ。人気記事ランキングも作れるようにしました。
$ret = array(); //昨日までのトータルPV数 $result = $analytics->data_ga->get( 'ga:' . $profile,D '2014-07-01', // 2014-07-01から取得 'yesterday', // 昨日まで 'ga:pageviews' //ページビュー ); $ret = $ret + array("total_pv" => $result->rows[0][0]); //昨日のPV数 $result = $analytics->data_ga->get( 'ga:' . $profile, 'yesterday', // 昨日から 'yesterday', // 昨日まで 'ga:pageviews' //ページビュー ); $ret = $ret + array("yesterday_pv" => $result->rows[0][0]); //人気記事5つ $results = $analytics->data_ga->get( 'ga:' . $profile, '7daysAgo', 'yesterday', 'ga:pageviews', array( 'dimensions' => 'ga:pageTitle,ga:pagePath', 'sort' => '-ga:pageviews', 'max-results' => '5', ) ); $data = $results->rows; $ranking = array(); foreach ($data as $i => $row){ $ranking[$i]["rank"] = $i+1; $ranking[$i]["title"] = $row[0]; $ranking[$i]["entry"] = $row[1]; } $ret = $ret + array("ranking" => $ranking); echo json_encode($ret); $fp=fopen("p/a/t/h/elkosendiary-analytics.json", "w"); fwrite($fp, json_encode($ret)); fclose($fp);
読み取り側はJavaScript。実はPHP側で「高専大学編入ログ」の直下にjsonを生成させている。別にどこでもいいですよね(適当)。
$.get("http://hennyu-log.com/elkosendiary-analytics.json", {}, function(json){ var ret=json; $("#test-yesterday-pv").html(ret["yesterday_pv"]); $("#test-total-pv").html(ret["total_pv"]); });
まとめ
作るにあたっては、APIとか何か色々登録するのが一番ダルかった。大分時間くいました。
とりあえずあとは、気が向いたときにサイドバーにでもカウンターを設置します。さらに気が向いたら、人気記事一覧のスペースとかも。でも、なかなかその気は向かなさそう。あんまりアクセス少ないのにそういうことやっても意味がないから…
参考にさせていただいたサイト・本
メチャクチャ参考にさせていただきました。ありがとうございます。