Moz - SEOとインバウンドマーケティングの実践情報
URLごとのソーシャルメディア反応をGoogleドキュメントで自動的にゲットする方法(後編)

GoogleドキュメントからAPIを呼び出してデータを収集する方法
Moz(旧SEOmoz) 2011/6/27(月) 9:00 tweet150このエントリーをはてなブックマークに追加 印刷用

この記事は前後編の2回に分けてお届けしている。ソーシャルメディアの追跡に役立つサードパーティ製のツールを紹介した前回に引き続き、後編となる今回は、GoogleドキュメントからAPIを呼び出してデータを収集する方法を見てみよう。

先に前編を読む

ソーシャルメディアAPIのいろは

この記事の基本姿勢は、データを収集するためにいくつかの「API」を呼び出す様子を見ていくというものだ。僕が知る限り、大概の一般人は「API」が何かなんて知らないか、この言葉を聞くだけでしり込みしてしまうかのいずれかだ。でも大丈夫。APIなんて、離れた場所にあるリソースから効率的に任意のデータを取り出す手段に過ぎないんだから。

例として、FacebookのGraph APIでSEOmozの情報を調べる場合を見てみよう。この場合、次のURLをブラウザで開くだけでいいんだ。

http://graph.facebook.com/?ids=http://www.seomoz.org

すると、次のようなものが表示される。

ソーシャルメディアAPIのいろは

これが「APIを呼び出す」ということだ。どうだい、簡単だろう。まず、波括弧({ })があちこちにあるのが目につく。だが、極端に技術嫌いな人でも、データが何を言っているのかはたぶん分かると思う。実は、これはJSONというもので、ありがたいことにマシンはJSONを喜んで読んでくれる。

僕はHacker Newsにあるスレッドのおかげで、このAPIと同様に、サイトのソーシャルプレセンスに関する情報を得られる無料APIをたくさん見つけることができた。

  • Facebook
    http://graph.facebook.com/?ids=http://www.seomoz.org
  • Twitter
    http://urls.api.twitter.com/1/urls/count.json?url=http://www.seomoz.org
  • Linkedin
    http://www.linkedin.com/cws/share-count?url=http://www.seomoz.org
  • Stumbleupon
    http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://www.seomoz.org
  • Delicious
    http://feeds.delicious.com/v2/json/urlinfo/data?url=http://www.seomoz.org
  • Google Buzz
    https://www.googleapis.com/buzz/v1/activities/count?alt=json&url=http://www.seomoz.org
  • Reddit
    http://www.reddit.com/api/info.json?url=http://www.seomoz.org

このようなAPIを使うのは、各HTMLページからデータをスクレイピングするよりもはるかに優れた方法だ。この方法なら僕らのリクエストは各サーバーに最小限の負荷しかかけないが、すべてのリクエストを行うと、JavaScriptやら画像やら一切合切を読み込むことになってしまう。

Google Apps Scriptを使ってAPIを呼び出す

Google Apps Scriptを理解するのはとても簡単だ。エクセルのマクロを使ったことがある人なら、すぐに分かるだろう。それでもあまり自信がない人のために、Google Apps Scriptの使い方を説明している(1分弱の)とても短い解説を用意しておいた。

 
Googleドキュメントでスプレッドシートを開き、スプレッドシートのメニューから[ツール]>[スクリプト エディタ...]を選ぶ。「未保存のスクリプト」として表示された内容を全部消して、あらかじめ用意したFBshares関数のコードを貼り付けて保存すると、スプレッドシート内で「FBshares」関数を利用できるようになる。

もちろん、実際にどうやって自分なりGoogle Apps Scriptを記述するかは、これから説明していく。では一緒に、この動画の中で僕が使っているスクリプトを解読していこう。

Google Apps Scriptを使ってAPIを呼び出す

このプログラミングコードがどんなものか、わかりやすく言うとこんな感じだ。

入力引数が1つのFBsharesという新しい関数を使えるように定義せよ。

この関数が呼び出された場合、与えられたURLに対するFacebook Graph APIのコンテンツを読み出し、戻ってきたデータをJSONとして解析せよ。

そのJSONから「shares」という名前を持つデータをスプレッドシートのセルに入力せよ。

Googleスプレッドシートでこの設定が済んだら、セルに次のように打ち込んでみよう。

=FBshares("http://www.seomoz.org")

すると今新しく定義した関数によって、このURLがFacebookでどれだけ共有されているかが得られる。ここで理解すべき大事な点は、データがJSONであるとコンピュータに1度指示すれば、ドット表記を使って簡単にデータを読めるようになるということだ。では、何が起きているのかを示すために、もう少し複雑なスクリプトに挑戦してみよう。

これは、この間the Oatmealに掲載された漫画についてRedditのAPIを呼び出して得られた結果だ(Redditは英語圏で人気のあるソーシャルリンク共有サービス)。

Google Apps Scriptを使ってAPIを呼び出す

ここに示されているのは、簡単に言うとあるURLについてどれだけの投稿があったかと、それぞれの投稿に関するデータだ。読みやすくするために「data」の内容に関しては省略して表示してある(余談:このオンラインJSON解析プログラムは、JSONの見栄えをよくするにはうってつけだ)。

上記の図では省略して表示した各「data」部分の中味は、実際には次のようになっている。

Google Apps Scriptを使ってAPIを呼び出す

すばらしい。さて、ここで僕らがやりたいのは、JSON内の各「data」フィールドを調べて、その中にある「score」の値を合計するスクリプトを書くことだ。さあお立ち会い! まさにそれを実行するスクリプトがここにある。

Google Apps Scriptを使ってAPIを呼び出す

どうか敬遠しないでほしい。これは本当にすごく単純なんだから。今はこのプログラムコードが理解できなくても、とりあえず無視して、ドット表記を使ってJSON内のデータを参照できることに注目しよう。「object.data.children」は、JSONのデータ全体を指す「object」というオブジェクトの中の「data」という要素の中の「children」という要素を参照している。

自分なりスクリプトを記述するための雰囲気はつかめたんじゃないかと思うけど、もし面倒だと思うなら、僕が書いたスクリプトをコピー&ペーストすればいい。

あるいは、もし筋金入りの不精者なら、下の画像をクリックするだけで、これらすべてのスクリプトがあらかじめ登録されたGoogleドキュメントのスプレッドシートを入手できる(^^) 次の手順だけだ。

  1. まずGoogleアカウントでGoogleドキュメントにログインする。

  2. スクリプトがあらかじめ登録されたGoogleドキュメントのスプレッドシートを開く。

  3. Googleスプレッドシートのメニューから[ファイル]>[コピーを作成]を選ぶ。

そうすれば、カスタマイズして試せる自分用のスプレッドシートを作れる。

このスプレッドシートでは、SEOmozブログの最新投稿記事を動的に取り込んでいる(自作の「PostRank」的なものだ)。だけど、自分でコピー&ペーストしたURLの静的なリストにこのスクリプトを実行するだけでもいい。

可能性は無限にある

ここまで読めば、Googleドキュメントのパワーの一端に触れ、独自のソーシャルメディアデータをすばやく簡単に(スプレッドシートのフォーム内に!)取り込めるようになったことだろう。でも、もう少し頑張って、次のようなものを作成することを考えてみよう(画像をクリックすると、前出のスプレッドシートと同様に、コピーを作成して保存できるGoogleスプレッドシートを表示)。

このスプレッドシートにキーワードを入力すると、検索結果のトップ10にランキングされたURLを取り込み、各URLがTwitterとFacebookでどれだけ共有されているか分かるようになっている。こうして、あるキーワードで検索上位に入っているサイトについて、ソーシャルメディアにおける足跡を素早く分析することが可能になるんだ。(英国に住んでいる読者のために、ちょっとしたジオロケーション切り替え機能まで埋め込んだよ!)

tweet150このエントリーをはてなブックマークに追加
日本赤十字社 東日本大震災 義援金募集
Web担メルマガでラクラク情報ライフを
注目記事が毎週手もとに届いて見逃さない
要チェックのセミナー情報もゲットできる
編集長コラムを一足先に読める
―― 10万人が読んでいる、Web担必読メルマガです

今日の用語

GRP
テレビCMにおいて、広告出稿回数ごとの視聴率を足した数値。 放送局が定めた ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスHP Softwareトランスコスモス株式会社株式会社ハイパーボックスDomain Keeperアドビ システムズ 株式会社
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社SitecoreYahoo!プロモーション広告Oracle