Blogger の管理画面から 統計
-> 概要
->自分のページビューの追跡を管理
をクリックし、このブログの自分のビューを追跡しない
をチェックすると自分がアクセスしたときのページビューをカウントから除外することができる「はず」なのですが、カウントされることがあります。また、チェックはブラウザを起動するたびに外れてしまいます。
原因
「このブログの自分のビューを追跡しない」をチェックすると、以下のJavaScript が動き、Cookie を設定します。
var COOKIE_NAME = '_ns';
var COOKIE_SET_VALUE = '2';
document.cookie = COOKIE_NAME + '=' + COOKIE_SET_VALUE;
しかし、以下の点で不完全なようです。
・domain 属性
domain を指定していませんので、今接続しているサブドメイン blogname.blogspot.com が設定されます。日本からの接続は blogname.blogspot.jp にリダイレクトされますのでドメイン違いでクッキーが送信されずビューがカウントされます。(国別リダイレクトは廃止されました。Official Blogger Blog: It’s spring cleaning time for Blogger)
注: domain 属性は、あるドメインに属するサブドメイン全体を Cookie の対象にする場合に指定するものですので、今回のように特定のサブドメインを対象にする場合は指定すべきではありません。また、現在接続しているドメイン以外を指定することはできません。
・path 属性
path を指定していませんので、path には現在のページのパス /b
がセットされてしまいます。これだと原則として *blogname*.blogspot.jp/b/ blogname.blogspot.com/b/以外はクッキーが送信されません。
・expires 属性
expires を指定していませんので、ブラウザが閉じるとクッキーは削除されます。
対策
以上の問題を修正したスクリプトは以下のようになります。
document.cookie = "_ns=2; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
- expires を無期限にすることはできませんので、2038年問題の上限日時(2038年1月19日3時14分7秒)を指定しています。
max-age
属性は IE11 が非対応とのことなので今回使用しませんでした。
このスクリプトを、設定したい 自分の *blogname*.blogspot.jp blogname.blogspot.comにアクセスしたうえで、 Chrome なら F12
キーを押してデベロッパー ツール を起動して Console に貼り付けて実行すればOKです。
デベロッパー ツールでは、Application
-> Cookies
で登録されているクッキーの内容を直接編集することもできます。
また、ブログ管理画面(blogname.blogspot.com)でも、スクリプトを実行するとブラウザを終了しても このブログの自分のビューを追跡しない
のチェックが外れなくなります。
expires
の日付を分かりやすくしたバージョンも置いておきます。
var d = new Date("2038-01-19"); document.cookie = "_ns=2; expires=" + d.toGMTString() + "; path=/";
"2038-01-19"
の箇所をお好みで(”2038-01-19”を超えない範囲で)修正してください。
過去の日付にすれば、Cookie を削除できます。
スマホでも設定したい。
スマホなどデベロッパー ツールが使えない場合は、設定したいページにアクセスしたうえで、アドレスバーに javascript:
と入力した後に、上のスクリプトを貼付けすることで実行できます。
アドレスバーに javascript:document.cookie;
(最後のセミコロンはなくてもたぶん大丈夫)と入力することで、そのページの Cookie が表示されます。_ns=2
が表示されれば、設定されています。
設定できましたー
ReplyDeleteありがとうございます!
なるほど。やってみます。
ReplyDeleteやってみます。ありがとう。
ReplyDelete