ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

アフィリエイト収入をMac OS Xのメニューバーに表示、四六時中監視する

      2016/03/16

アフィリエイトって大して儲からないのに、気になって収益レポートを一日に何回も見ちゃいますよね。
でもって、大概収益レポートのページってすぐログアウトさせられて不便なのです。

それで生産性を落としていては本末転倒なので、チラ見でチェックできるようにしたいとかねてから思ってました。
ゴソゴソとやった結果、こんな感じでMac OS Xのステータスバーに表示できるようになりました。
Amazonのアフィリエイトの収入(当月)と、GoogleのAdSenseの収入を表示しています。

僕と似た境遇のアフィ厨の方は、ちょっと面倒ですけどやってみてはいかがでしょうか?
これを設定して以来、ほとんど収益レポートページを見に行く必要が無くなり、魂が解き放たれた気分です。(続きは[MORE]から)

必要なもの

RubyGems経由でRubyのネイティブエクステンションをコンパイルするために、Xcodeが必要です。
また、Mac OS Xのメニューバーに文字を表示させるためにGeekTool 3.0を使います。

  • Xcode:http://itunes.apple.com/jp/app/xcode/id422352214?mt=12
    • Xcodeは4.0以前のバージョンがMac Dev Center / iPhone Dev Centerに無料会員登録、ログイン後のページから無料ダウンロードできるほか、Mac App StoreからはXcode 4.0を購入することができます
  • GeekTool 3.0:http://projects.tynsoe.org/en/geektool/
    • GeekTool 3.0はデスクトップ上にテキストファイルの内容や、シェルスクリプトの実行結果、任意の画像を表示する機能を持つ、ナイスなアプリケーションです

Xcodeのインストール

Xcodeをインストールしてください。(詳細割愛)

RubyGemsからadsense-infoをインストール

RubyGemsからadsense-infoをインストールします。
ターミナルから以下のように実行。パスワードの入力を求められますが、普段使っているパスワードを入力してください。

$ sudo gem install adsense-info

MacPortsのRuby (/opt/local/bin/ruby)を使っている場合は、最初にRubyGemsをインストールする必要があると思います。

$ sudo port install rb-rubygems

また、RubyGemsからadsense-infoをインストールする前に、MacPortsからmechanizeが依存するlibxml2、libxsltをインストールする必要があるかもしれません。

affiliate-info.rbを保存

以下のスクリプトを保存し、実行権を付けておきます。

ターミナルで以下のように操作してください。

$ cd
$ mkdir bin
$ cd bin
$ curl -O https://gist.github.com/raw/934296/c5e9b7c44bf7d490562bb8a4c843159da037d244/affiliate-info.rb
$ chmod +x affiliate-info.rb

「/Users/YOUR_USER_NAME/bin」以下に保存する例です。以降の説明は、スクリプトを「/Users/YOUR_USER_NAME/bin」に保存したことを前提に進めます。

「YOUR_USER_NAME」の部分はそれぞれ違うので、自分のユーザー名に読み替えてください。以降この表現が出てきますので注意してください。

「affiliate-info.rb」をテキストエディタで開き、以下の部分を自分のアカウントに変更します。

AMAZON_EMAIL = "someone@mailserver.com"
AMAZON_PASSWORD = "password"

GOOGLE_ACCOUNT = "someone"
GOOGLE_PASSWORD = "password"

ここで一度実行してみます。
正常に実行されると、警告メッセージが出つつも「/Users/YOUR_USER_NAME/affiliate-info.txt」というファイルが出来るはずです。

$ ./affiliate-info.rb
/Library/Ruby/Gems/1.8/gems/adsense-info-1.0.4/lib/adsense-info.rb:10: warning: toplevel constant Mechanize referenced by Mechanize::Mechanize
$ cat ~/affiliate-info.txt
\100 / \1,000

「/Users/YOUR_USER_NAME/affiliate-info.txt」が出来ていたら、いったん「affiliate-info.txt」を削除して次に進みましょう。

affiliate-info.rbをcronに登録して定期的に実行する

「affiliate-info.rb」をcronに登録して定期的に実行するために、crontabを実行します。
まず、以下の一文をコピーしておきます。
「/usr/bin/ruby」の部分は、自分の使っているrubyのパスにしてください。もちろん、「YOUR_USER_NAME」もです。

*/1 * * * * /usr/bin/ruby /Users/YOUR_USER_NAME/bin/affiliate-info.rb 2>/dev/null

そして、crontabを起動。

$ crontab -e

viが起動します。そうしたら、「o」、「Command+V」、「Escキー」、「:wq」、「returnキー」と順に押します。
さっきコピーした行を貼り付け保存する操作です。
1分ほど待って、さきほど削除した「/Users/YOUR_USER_NAME/affiliate-info.txt」がまた出来ていたらOKです。

cronによって、「affiliate-info.rb」が自動的に1分ごとに実行される設定ができたことになります。
しかし、1分間隔は短すぎるので、30分間隔に直しましょう。今度は以下をコピーします。さっき1だった部分が30になっています。

*/30 * * * * /usr/bin/ruby /Users/YOUR_USER_NAME/bin/affiliate-info.rb 2>/dev/null

そして、crontabを起動。

$ crontab -e

またviが起動します。そうしたら、「j」と「k」でさきほど貼り付けた行にカーソルを移動、「^d$i」とタイプ、さらに「Command+V」、「Escキー」、「:wq」、「returnキー」と続けます。
これで、さきほど貼り付けた行を新しいものに差し替え、保存終了しました。

cronによって、「affiliate-info.rb」が自動的に30分ごとに実行されるようになったことと思います。


GeekTool 3.0をインストール

GeekTool 3.0をインストールしてください(詳細割愛)

GeekTool 3.0の設定

まず、デスクトップが見える状態になるよう、ウインドウを片付けます。

しかる後に「システム環境設定>GeekTool」を起動。

「shell」というラベルのあるアイコンをデスクトップ上にドラッグ&ドロップします。

半透明のプロパティウインドウ上のパラメータを設定します。

「Command:」の右にあるテキストフィールドに、以下のように入力。

cat /Users/YOUR_USER_NAME/affiliate-info.txt

すると、デスクトップ上にドラッグ&ドロップしたウインドウの中に、「/Users/YOUR_USER_NAME/affiliate-info.txt」の中身が表示されたはずです。

「Click here to set font & color…」ボタンを押し、フォント、フォントサイズを調整。

「Refresh every」の右のテキストフィールドに60を入力。60秒ごとにリロードされるようになります。

「Keep on Top」のチェックボックスをオンにします。これであらゆるものの上に表示されるようになったので、メニューバーの空いた辺りに移動し、サイズ、位置調整をします。

いい案配になったら、GeekToolの初期設定パネルが表示されている上の「すべて表示」ボタンを押してGeekToolの設定を終了させます。
すると、ドラッグ&ドロップをしたウインドウの枠が消えて、メニューバーになじむと思います。

まだ微調整が必要と感じたら、またGeekToolの初期設定パネルを表示させると、ドラッグ&ドロップしたウインドウの枠が表示され、調整できる状態になります。

レッツ監視社会!

これで、いつでもアフィリエイトの収入を監視できるようになりました。
お役に立ちましたでしょうか。

   

 - OS X, Ruby