2007-04

Latest Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

本屋大賞のマーケティング効果

4月5日に本屋大賞発表。
大賞は佐藤多佳子『一瞬の風になれ』
2位が森見登美彦『夜は短し歩けよ乙女』、3位が三浦しをん『風が強く吹いている』
売上にどのような効果があったか見てみよう。
まずはAmazonの売上。

Amazon Rank Viewer
本屋大賞1


まず分かるのは、受賞までは2位の森見登美彦より3位の三浦しをんの方が売れていたこと。
1位の佐藤多佳子は受賞の効果がないように見えるのはグラフのせいで実際はちゃんと反応している
しかしもともと佐藤多佳子が頭一つ抜けて売れていた。

リアル書店はPubLineを見る。
本屋大賞2

画像はイメージです。
見て分かるのは、受賞直前には森見登美彦が佐藤多佳子よりも売れていること。まなみ組強し。
受賞後は当然大賞作が上を行く。

今回は授賞式をネット中継したりして、その他の報道でも受賞を知ってすぐ買えるのはAmazonなんだろうね。
しかしAmazon内には本屋大賞特設ページみたいなものは見当たらない。
Amazonの売上が何に励起されているかは一概には言えないが、アフィリエイトがあることを考えてみると、一般読者が好きな作家を読んでそれをブログで紹介という流れ? だから三浦しをんが強かったのかな。

一方で多数の新刊に触れる書店員は、新しい作家の発掘もできる。森見登美彦はまなみ組で売ったのだ。佐藤多佳子だってこれまでは児童書の人だったので、一般書として書店に並べられ、今作を初めて読んだという人が多い筈。
そして受賞フェアを展開した時に目立ちやすいのはリアル書店。知られていない本を「仕掛け」るのも、検索ベースのネット書店よりリアル書店の方がやり易い。

で、本屋大賞のマーケティング効果が大きいのはネット書店かリアル書店か? 答:Amazonが売上ランキングの基準を公表していないため分かりません。
Amazonの方が効果が長く続いているように見えるのも錯覚。

ちなみに第1回第2回は受賞作が一致、第3回は1位2位てれこだったキノベスは、昨年は本屋大賞が対象外とする海外作品だった。(「夜は短し~」は刊行時期によりキノベス対象外)
あと印象に残ったのは、本屋大賞発表の夜数時間後に「本屋大賞」でぐぐると、角川書店が「夜は短し~」のAdWordsを出していたこと。
森見登美彦はユニークなブログも書いているし、書店員の間だけでなくネットでももっと受けてもいいと思うけど、売上とは別かな。

スポンサーサイト

ドメイン名でMD5なパスワードを作るBookmarklet

ついったー部に書いたエントリに、結城浩さんとid:sendさんからトラックバックをもらった。
www.textfile.org - Twitterとソーシャルハッキング
nothing but trouble - パスワードとかの話
小飼弾さんにも触れてもらった。
404 Blog Not Found:javascript - Random Password Bookmarklet
僕はid:sendさんと同じく別環境でも使いたいので、パスワードマネージャによる管理は選べない。紙のメモも持ち歩くと不便。
自分ルールに則ってドメイン名を組み合わせたパスワードを使う、という手もあるけど、twitterのパスワード「twitter1234」をヌイッターに抜かれたら、はてなにも「hatena1234」でログインされてしまう。

で、id:sendさんのMD5ハッシュを使う手と、小飼さんのブックマークレットを使う方法を組み合わせてみた。
jsmkpass
javascript:(function(){var s=document.createElement('script');s.setAttribute('src','http://worris3.sakura.ne.jp/md5.js');document.body.appendChild(s);d=location.hostname.match(/\w*(|\.co|\.ne|\.or|\.ad|\.gr|\.ac|\.ed|\.go)\.[a-zA-Z]{2,4}$/)[0];w=prompt(d,'word');alert(MD5_hexhash(d+w).substr(0,8));document.evaluate('//input[@type=\'password\']',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.value=MD5_hexhash(d+w).substr(0,8);}())

今いるページのドメイン名と、その都度入力する文字列(マスターパスワード)から、MD5値を作って先頭8文字を取り出しました。
そしてtype=passwordなフィールドに入力します。
自分の環境ならマスターパスワードは決め打ちでもいいし、alertは取っ払ってもいい。
出先の環境にブックマークレットを導入するのが面倒ならここでテストもできます。

Firefoxでしか動いてないがデバッグする気なし。XPathよく理解してない。
高度な JavaScript 技集のmd5.jsを使わせていただきました。
Wikipediaに単純なハッシュ関数の例があったけど安全性が分からないので外部ファイルを読み込みます。
もしこのブックマークレットをお使いになる場合はhttp://worris3.sakura.ne.jp/md5.jsの部分を自分のウェブスペースに変えてください。でないと抜きますよ。

これで正解なのか?
とか言いながら僕は今まで通り、使い回し用パスワードを使い続けそうですが。

(4/21)追記
こういうサイトがあるのね。
Hashapass
SHA-1のがいいの?
つうか他所のサイトに置かれたsha1.js使ったらダメなんじゃ?

(4/22)追追記
こういうのもあるらしい。
PwdHash
ローカルで動く。

(4/22)追追追記
malaさんが教えてくれたが、僕が考えるようなことは既にあったようだ。
実装はこれみたい。そのブックマークレットを見ると、ブックマークレット内でMD5作れるのか・・・。文字数制限なかったのか?

Re: ついったーもばいる

twpost.rbを改造。
friends_timelineを取得してメールを返すようにした。


require 'nkf'
require 'net/http'
require 'cgi'
require "rexml/document"
require 'net/smtp'
Net::HTTP.version_1_2

id="xxxxxx"
pass="xxxxxx"
from="(xxxxxx@docomo\.ne\.jp|xxxxxx@xxxxxx\.com)"

mailserver="xxxxxx.xxxxxx.xx.jp"
maildomain="xxxxxx.xxxxxx.xx.jp"
mailid="xxxxxx"
mailpass="xxxxxx"
mail="xxxxxx@xxxxxx.xxxxxx.xx.jp"

status="Moving"
subject=""
address=""
response=""
#flag=Hash.new
mailbody=""

while line=gets
if line =~ /^Subject: (.*)$/
subject=$1
status=CGI.escape(NKF.nkf('-mw',$1))
elsif line =~ /^From: (.*)$/
address=$1
end
end

if Regexp::new(from) =~ address

header = {'Authorization' => 'Basic '+[ "#{id}:#{pass}" ].pack('m').gsub(/\n/, '')}
path="/statuses/update.xml" #?status="+status
data="status="+status

Net::HTTP.start(host="twitter.com",80) {|http|
response=http.post( path, data, header )
}


path = "/statuses/friends_timeline.xml"
Net::HTTP.start(host="twitter.com",80) {|http|
response=http.get( path, header )
}
statuses = REXML::Document.new(response.body).elements.to_a("statuses/status")
statuses.each{|status|
user=status.elements.to_a("user/screen_name").first.text
text=status.elements.to_a("text").first.text

if user!=id #&& flag[user].nil?
#flag[user]=text
mailbody << NKF.nkf('-Wj', user.to_s+": "+text.to_s+"\n")
end
}

Net::SMTP.start( mailserver, 25, maildomain, mailid, mailpass, :login ) {|smtp|
smtp.send_mail <From: #{mail}
To: #{address}
Content-Transfer-Encoding: 7bit
Content-Type: Text/Plain; charset=iso-2022-jp
Subject: Re:#{subject}

#{mailbody}
EndOfMail
}

end

重複する人は除いている。(4/16コメントアウト)

Twit! ブックマークレット

TwitThisはパスワードを送らないといけないのでブックマークレットを書いた。
POSTしろとかRefererを空にしろとかうるさいけど、これで行けた。
Twit!
javascript:(function(){w=window.open('','_blank','width=520,height=300,resizable=1,scrollbars=1');f=w.document.createElement('form');f.setAttribute('action','http://twitter.com/statuses/update.xml');f.setAttribute('method','POST');i=w.document.createElement('input');i.setAttribute('type','hidden');i.setAttribute('name','status');i.setAttribute('value','Reading '+document.title+' '+location.href);f.appendChild(i);w.document.documentElement.appendChild(f);f.submit();}())
(追記参照)

今見ているページを送信します。
twitter.comとしか通信しません。2回目以降はログイン情報を保持します。(Cookieではないのでブラウザを閉じるまで)
更新後のページは生XMLで見苦しいけど。あと確認画面とかも出さないので、エロサイトとか見ている時にうっかり押さないように注意。
Firefoxで確認。escape()しなくていいのかな。"Reading "を入れたので". "はいらない?

(4/13追記)
トラバ返し。
Collection & Copy - ロケーションバーからTwitterへポストするキーワードブックマーク
なるほど。window.onunloadを使えばsubmitが完了してからウィンドウを閉じられるのね。こちらこそ勉強になりました。
修正版。
Twit!
javascript:(function(){w=window.open('','_blank','width=0,height=0');f=w.document.createElement('form');f.setAttribute('action','http://twitter.com/statuses/update.xml');f.setAttribute('method','POST');i=w.document.createElement('input');i.setAttribute('type','hidden');i.setAttribute('name','status');i.setAttribute('value','Reading '+document.title+' '+location.href);f.appendChild(i);w.document.documentElement.appendChild(f);f.submit();w.onunload=function(){w.close();}}())

IE不可が判明。Refererが空にならない。

(追記)
さらに今では接頭文言をprompt()で入力するようにしている。
Twit!
javascript:(function(){w=window.open('','_blank','width=0,height=0');f=w.document.createElement('form');f.setAttribute('action','http://twitter.com/statuses/update.xml');f.setAttribute('method','POST');i=w.document.createElement('input');i.setAttribute('type','hidden');i.setAttribute('name','status');i.setAttribute('value',(prompt('','Reading'))+' '+document.title+' '+location.href);f.appendChild(i);w.document.documentElement.appendChild(f);f.submit();w.onunload=function(){w.close();}}())


(追追記)
さらに、間違って触ってしまった時のためにキャンセルを可能に。
Twit!
javascript:(function(){if(m=prompt('','Reading')){w=window.open('','_blank','width=0,height=0');f=w.document.createElement('form');f.setAttribute('action','http://twitter.com/statuses/update.xml');f.setAttribute('method','POST');i=w.document.createElement('input');i.setAttribute('type','hidden');i.setAttribute('name','status');i.setAttribute('value',m+'%20'+document.title+'%20'+location.href);f.appendChild(i);w.document.documentElement.appendChild(f);f.submit();w.onunload=function(){w.close();}}}())


(2009/2/8追記)
Google Chrome 対策をしました。→Twit! ブックマークレットの Google Chrome 対策 - 無用の科学あるいは錬金術

ついったーもばいる

引き続き。
やっぱ携帯から更新しなきゃね。会社ではできないし。

twitterMobile(PHPを設置)
tmitter(つながらない)
Perlで(CGI設置でupdateのみ)
モバトゥイッター(CGIでパスワードpost)

まあPHPなり設置してもいいんだけど、やっぱりインターフェースとしてはメール送信、だろう。
Rubyで書いたtwpost.rb

require 'nkf'
require 'net/http'
require 'cgi'
Net::HTTP.version_1_2

id="xxxxxxxx"
pass="xxxxxxxx"
from="xxxxxxxx@docomo.ne.jp"

status="Moving"
address=""
response=""

while line=gets
if line =~ /^Subject: (.*)$/
status=CGI.escape(NKF.nkf('-mw',$1))
elsif line =~ /^From: (.*)$/
address=$1
end
end

if Regexp::new(from) =~ address

header = {'Authorization' => 'Basic '+[ "#{id}:#{pass}" ].pack('m').gsub(/\n/, ''), 'X-Twitter-Client' => 'N902i'}
path="/statuses/update.xml"
data="status="+status

Net::HTTP.start(host="twitter.com",80) {|http|
response=http.post( path, data, header )
}
end



さくらなので.mailfilter(パーミッション600)

to "| /usr/local/bin/ruby /home/xxxxxxxx/twpost.rb"



(4/14追記)
+" ."は消した。

ついったー

はてな界隈でTwitterが面白いらしいのでやってみる
なるほど。
IRCの感覚かな。知り合いがいないわけだけど適当にAddしてみた。
ついったー部に書いてあることだけど、
いきなり Add しちゃっていいの?
そういう文化です。

というあたり、どこかの界隈の「読み逃げ禁止」「素通り禁止」「無断リンク禁止」という文化をあっさり切り捨ててしまっていて気持いい。

APIもあって工作心そそられるのもいい。さっそくやってみた。→こっちがいい。Twitter 検索
Public Timelineというページがあって最新の更新を列挙してるけど、大部分が英語なので、日本語だけ抜き出してみた。API使ってないけど。[あ-ん]でひっかけてるだけね。何故かたまに中国語もひっかかるけど。
そして折角xsl+css書いたのにFirefoxでは適用されない。購読用のガイドが表示されるのは勝手にxsl適用してたのね。

«  | HOME |  »

移転しました。

ブログ引っ越しました。
無用の科学あるいは錬金術

 

株価情報

 

最近の記事

最近のコメント

 

最近のトラックバック

月別アーカイブ

カテゴリー

RSSフィード

ブログ内検索

 

なかのひと

 

ヘビーローテーション

 

 

リンク

広告

 

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。