「Awake」の機能
アクセスレポートが更新されるのは午前8時前後ですが、この境目の時間帯の表示は、「前日の結果」か「更新された結果」なのかが判り難いものです。 「Awake」は更新後のデータを淡いブルーの背景色で区別して示す、簡単なツールです。
また、「管理トップ」から「アクセス解析」のページを開くと、デフォルトは7日間の集計表示になります。 私の場合は今日の結果を見たいので、「今日」のアクセス解析ページが開く様にしています。 これが「Awake」の2つ目の機能です。
記事別アクセス数を独自に集計する
上図の ❶「もっと見る」を押すと、記事別アクセス数の詳細が表示されます。 下は「Ameblo Management」のアレンジで全体を見易くしていますが、この詳細表示はアクセスのあった記事(上限100件)がリスト表示されます。
私はこのリストを時々見て、アクセスの多い記事については、間違いの修正や陳腐化を防ぐ更新をします。 どういう記事が良く読まれるかは、気になりますね。
で、先日これを見ていて、このリスト上のアクセス数の集計が、前ページ(アクセス解析トップ)と一致しているのか気になりました。 リスト右端の記事ごとのアクセス数を合計するのは、プログラムを組めば簡単です。 上はそのプログラムの動作結果で、記事毎のアクセス数の全合計と集計した記事数が、ページ上部に表示されます。
微妙な誤差
アクセスカウントは、ロボットプログラムのアクセスなどで誤差を生じる様ですが、「 記事別アクセス数」の「昨日」以前の結果は、既にそういった誤差を修正しているはずです。 しかし修正が完全でないのか、「 記事別アクセス数」と「アクセス解析トップ」の値に、常に微妙な差がある事が判りました。
だからどうと言う事はないのですが、何んでも知っていて損はありません。 これはカウントプログラムの深淵ですね。 以下に少しサンプルを。
日付 |
集計記事数 |
アクセス解析トップの表示 |
記事別アクセス数の合計 |
3/21 |
79 |
244 |
224 |
3/22 |
96 |
307 |
299 |
3/23 |
88 |
379 |
374 |
3/24 |
90 |
358 |
354 |
集計記事数が100件を越える日は集計もれが生じるので、最近で100件越えがない4日間をサンプルにしました。 アバウトでバラつきが有る様ですが、300件に対して10件程度の誤差が生じています。 興味のある方は試して見てください。
ツールの使い方
今回は「Awake」に、上記の「記事別アクセス数」の集計機能を追加しました。
最初の図の ❶「もっと見る」を押すことで「記事別アクセス数」の画面が表示されますが、このボタンはページのリロードを伴わない「表示差し替え」を行うため、集計のスクリプトが起動しません。
● 集計機能を開始するには 「記事別アクセス数」の画面をリロードします。
この操作によって、1~2秒後にページ上部に集計値が表示されます。
● 一旦、集計値が表示されると、日付や集計期間の設定を変更するごとに、設定変更に少し遅れて集計値が更新されます。
◎ 集計表示が少し遅れるのは、ページ下方の全てのリストを自動的に開いてから集計するからです。
◎「記事別アクセス数」のリストは、記事数の上限が100件なので、それ以上に対象記事が分散するデータの場合は、集計もれが生じます。 7日間や30日間のリストは 100件を超える場合が多く、その場合は集計もれの誤差が追加されます。
アクセス解析トップの初期表示について
ツールのコードを下表のパス名に書き換えて、好みの初期表示に変更できます。 書き換える場所は以下の部分です。「Awake」のデフォルトは「今日」になっています。
〔Awake〕ver. 0.3 16~18行 太字部分
let ana_link=document.querySelector('.l-ucs-sidemenu-area a[href*="analysis.do"]');
if(ana_link){
ana_link.setAttribute('href', 'https://blog.ameba.jp/ucs/analysis/analysis.do?unit=today'); }
太字の文字列のパス名を書換えると、動作が変わります。
ボタン選択 |
指定されるURLのパス名 ( ?以降がクエリ文字列) |
(初期値) |
/ucs/analysis/analysis.do |
今日 |
/ucs/analysis/analysis.do?unit=today |
昨日 |
/ucs/analysis/analysis.do?unit=yesterday |
7日間 |
/ucs/analysis/analysis.do?unit=seven_days |
30日間 |
/ucs/analysis/analysis.do?unit=thirty_days |
今月 |
/ucs/analysis/analysis.do?unit=this_month |
先月 |
/ucs/analysis/analysis.do?unit=one_month_ago |
「Awake」ver. 0.3 を使用するには
このツールは Chrome / Edge / Firefox の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。 以下のページに簡単な導入の説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
●「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
●「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
● 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 Awake 〕 ver. 0.3
// ==UserScript==
// @name Awake
// @namespace http://tampermonkey.net/
// @version 0.3
// @description アクセスレポートの更新を背景色で知らせる・解析ページを「今日」で開く
// @author Ameba Blog User
// @match https://blog.ameba.jp/ucs/analysis*
// @match https://blog.ameba.jp/ucs/top*
// @grant none
// ==/UserScript==
let path=document.location.pathname;
if(path=='/ucs/top.do'){ // 管理トップの場合だけ解析ページのリンクを変更
let ana_link=document.querySelector('.l-ucs-sidemenu-area a[href*="analysis.do"]');
if(ana_link){
ana_link.setAttribute('href', 'https://blog.ameba.jp/ucs/analysis/analysis.do?unit=today'); }
setTimeout(()=>{
let access_title=document.querySelector('.p-analysisSummary__access__title');
if(access_title){
let accsess_text=access_title.textContent.match(/\(.*\)/).toString();
let day=accsess_text.match(/\/.*/).toString().replace(/[^0-9]/g, '');
let date=new Date();
date.setDate(date.getDate() -1); // 昨日の日付を取得
let yesterday=date.getDate();
if(day==yesterday){
let access_panel=document.querySelector('.p-analysisSummary');
access_panel.style.boxShadow='inset 265px 0px 0 0px #d7f2ff'; }}
}, 500); // ページを開いてからのタイミング
} // 管理トップページの場合
if(path.indexOf('analysis_page.do')!==-1){ // 記事別アクセス数ページ
let target=document.querySelector('#root section');
let monitor=new MutationObserver(count_do);
monitor.observe(target, { childList: true });
count_do();
function count_do(){
clear_disp();
let retry=0;
let interval=setInterval(more_open, 1000);
function more_open(){
retry++;
if(retry>20){ // リトライ制限 20回 4sec
clearInterval(interval);
alert("全てのリスト情報を開かずに合計しました"); }
let more=document.querySelector('.p-accessGraph__moreLinkBtn--center');
if(more){
more.click(); }
if(!more){
clearInterval(interval);
main(); }}
function main(){
let line_count=0;
let num_count=0;
let p_count=document.querySelectorAll('.p-accessGraphItem__count');
for(let k=0; k<p_count.length; k++){
line_count+=1;
let line_item_disp=p_count[k].textContent.replace(/[^0-9]/g, '');
num_count+=parseInt(line_item_disp, 10); }
let disp=document.createElement('div');
disp.setAttribute("id", 'add_access');
disp.innerHTML='参照された記事数:'+ line_count +' アクセス数合計:'+ num_count;
let style=document.createElement('style');
style.innerHTML=
'#add_access { position: fixed; top: 56px; right: 20%; z-index: 10; '+
'padding: 6px 15px 4px; font: normal 16px Meiryo; border: 1px solid #009688; '+
'box-shadow: 2px 3px 6px rgb(170, 170, 170, 0.6); background: #fff; }';
disp.appendChild(style);
clear_disp();
document.querySelector('body').appendChild(disp);
} // main()
let return_button=document.querySelector('.c-returnButton');
if(return_button){
return_button.onclick=function(){
clear_disp(); }}
function clear_disp(){
if(document.querySelector('#add_access')){
document.querySelector('#add_access').remove(); }}
} // count_do()
} // 記事別アクセス数ページ
「Awake」最新版について
旧いバージョンの「Awake」は、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。 最新バージョンへのリンクは、以下のページのリンクリストから探せます。