【難解!?】Twitter APIを使って投稿データを収集する方法
目次[非表示]
※Twitter APIは、今後Twitter API v2という新しい仕組みに変更される予定です。サーチAPIに関しては無料のStandard APIのみの変更であり、2020年9月の段階では今回メインで解説しているPremium APIにはまだ影響はないようです。詳細は公式アナウンスなどをご参照ください。
https://blog.twitter.com/developer/ja_jp/topics/tools/2020/NewTwitterAPI.html
※無料で使える最新V2での取得方法は下記の記事などもご参照ください。
特定のツイートにいいねしたユーザーを抽出する方法【v2】
【Twitter API v2】特定のユーザーのいいね履歴を調べる方法
※取得したTwitterデータを自社サービスなどで商用利用される際はTwitter社の規約を遵守してください
Twitterでつぶやかれたデータやフォロワー数などのデータは、Twitterの検索機能から探すだけでなく、Twitter APIの中の Search APIという機能を使うことで、ツイートを検索してまとめて取得することができます。
ただし、このTwitter API機能。基本全て英語であり、事前の登録が必要なことや、プログラムのコードを書く必要があることから、データを取得したいというマーケターからは非常にとっつきにくいと思われているようです。
一方で口コミデータの取得・分析は、広報PR活動でもマストとされており、こうした機能をうまく使いこなしていく必要があります。利用方法などはWEBで多数解説されていますが、下記のような問題を感じました。
エンジニアが書く説明文章は、はっきり言って、とても分かりづらい!
Googleの検索結果にはこうした分かりづらい解説ページばかりが上位に上がってくる
Qiitaなど“やってみた系自己満コード解説”はマーケターの実務の役にはあまり役立たない
そこで当ブログでは、このTwitter Search APIを非エンジニアの方にも、なるべく分かりやすく解説し、全体概要を解説した上で、具体的なデータ取得方法まで解説していきたいと思います。
Twitterのデータを取得する方法
Twitterデータの取得には大きく3種類の方法が挙げられます。
Twitterで検索する
Twitter APIを利用する
Twitter APIを利用したWEB(SaaS系)サービスを利用する
世界中のTwitterデータは、APIデータとしてGNIPというデータ管理子会社が独占で販売しており、日本国内ではNTTデータ社がFireHose契約(最上位プラン)という全量データを利用できる独占契約を結んでいるようです。
こうしたデータは、イマツイや口コミ分析サービスである「なずきのおと」などで提供されているほか、ホットリンク社の「BuzzSpreader(旧口コミ係長)」や、それらに紐づくOEMサービスなど様々なツールで使われています。
予算がかけられるのであれば、こうしたWEBツールを活用するのがてっとり早いでしょう。ただしほとんどが月額課金のSaaSモデルで、いいね数や地理データが取れなかったりと、取得できるデータも限られているため、短期的に使うのであれば今の所APIを活用したほうがお得かもしれません。
ここからは実際にTwitter Search APIを利用して、ツイートを実際に取得するまでの流れを解説します。
Twitter Search APIとは<使い方と3つのハードル>
Twitter Search APIとは、Twitterの投稿データを検索して取得できるTwitterAPI一つで、検索するクエリを指定することで投稿データを抽出することができます。
Twitter Search API:https://developer.twitter.com/en/docs/tweets/search/overview
Twitter Seach APIは、利用するためのデベロッパー登録、API各プランとデータ取得コードの理解の3STEPが分かれば、使いこなせます。
STEP1:デベロッパー申請
STEP2:Twitter Search APIのプランを理解
STEP3:データ取得コードを理解
それぞれ細かくみていきたいと思います。
STEP1. Twitter APIを使うための最初のハードル「デベロッパー申請」
Twitter APIを使うには、まずデベロッパー申請というものが必要になります(開発者でなくても申請すれば問題なく通ります)。これが全て英語であることや、申請目的を記載する必要があることから、最初の大きなハードルとなっているようです。
デベロッパー登録までの具体的な方法は、テキストで解説するよりも下記You Tubeを参考にするのが断然おすすめです。
STEP2. 料金・機能・制限など3種類のプランを解説
TwitterのAPIは、大きく5つのAPI機能に分かれています。
- キーワードを検索できる「サーチAPI」
- アカウントプロフィールを扱う「アカウントAPI」
- 今現在のツイートを扱う「リアルタイムAPI」
- DM機能の「ダイレクトメッセージAPI」
- 広告機能と連携できる「広告API」
そしてサーチAPIには、
- Standard APIs(無料)
- Premium APIs(一部有料)
- Enterprize APIs(有料)
と3つのプランが用意されています。
ここからが複雑になり分かりづらいのですが、Standardは過去7日間のツイートデータを無料で手に入れることができ、Premiumは過去30日間/もしくは2006年過去ログ全てからの抽出(一部無料で使えるので混乱しやすい)という分類となります。
Enterprizeは企業向けの相当高額な個別メニューと思われ、WEBでも詳細は記載されていないので、詳細は省きます。
この3つのプランと3種の検索方法と費用を下記にまとめてみます。
無料のStandardプランは過去7日間のデータを取得できますが、取得できるのは一部のサンプルデータに制限されており、完全検索を行うにはPremium以上が必要なことが分かります。
そして取得できるデータ上限数は少ないものの、PremiumプランにSandboxという、一部無料で使うことができるプランがあることが分かります。
金額を見ると分かるように、過去30日のデータ(1投稿あたり約0.05円)よりもアーカイブデータ(1投稿あたり約0.2円)のほうが割高(約4倍)に価格設定されていることが分かります。
Sandboxでは検索ボリューム(投稿数)は調べられないので、検索数を調べたい場合はPremiumプランを契約する必要があります。
なおAPIの契約はクレジットカード(オンライン/JCB不可)で可能です。
【ここまでのまとめ】
- Twitterの口コミデータはAPI機能を使って収集できる
- Twitter APIには無料版と有料版がある
- 2つのPremiumプランをともに限界まで使うと合わせて月$4,400ほどかかる
- 無料で使うにはPremiumプランのSandboxが最適(過去30日データなら月間25,000ツイート、フルアーカイブなら月間5,000ツイートまで取得可能)
STEP3. 実際のデータの取得方法(by Python)
ここからはデベロッパー登録が完了したことを前提で解説していきます。
データ取得に関しては、Python等のプログラム言語で取得していきます。
基本的な流れとしては、
- Twitterの認証を通す
- 検索したい手法(7日/30日/アーカイブ)に応じてそれぞれURLを設定する
- パラメーターに検索したワードを設定しget関数でデータを取得
- JsonオブジェクトとしてDLされたデータを扱いやすいデータ(辞書)等に加工
- pandas等で集計しcsvやエクセルファイルに落としたり色々分析してみる
という流れになります。
環境構築や各ライブラリのインストールなどは一旦省き、データ取得までのコードの流れを解説していきます。
このあとのコード自体はかなり雑なものなのですが、後でcsvで吐き出せるよう各Tweetデータをリストにいれていきます。
Twitter Search APIで取得できる情報
上記は上のコードで検索キーワードを「ツイッター API」と設定して取得してみたものです。
リツイート情報は頭に「RT」が、メンションの場合は頭に「@」が付いた状態でテキストデータが出力されています。
パラメーター(params = {●●●}の箇所)に設定すれば、フォロワーやリツイート数などはもちろんのこと、これまでの投稿数や場所データ、ハッシュタグなど様々な情報を取得することができます。
100件を超える情報の取得方法
1点面倒なのが、取得データが100件(または500件)を超える場合です。
standardプランとpremium(sanbox)プランでは、リクエスト1回あたりの取得キーワードは100件、Premiumプランでは500件と制限があり、複数に渡ってリクエストをかける必要があります。
101件以上データがある場合は、落としてきたデータ(JSON)の後半部分に、新たに"next"というキーが表示されます。
このnextの値が、いわゆる次ページの指定であり、100(500)ページごとに新たに加わり、この値を次ページを読み込むために、パラメーターに指定し、これを最終ページまで繰り返します。
データをどう使うか
ここまで具体的なデータ取得方法を解説してきましたが、Twitterなどの口コミデータ(過去データ)は、グラフ化してみると、それだけで何となく見た目が様になってしまいます。
そのため、データを抽出してまとめるだけで、それなりの分析ができた気になってしまうケースが非常に多いように感じます。
しかし大事なのは、未来への打ち手としてどう活用するかです。
朝日新聞は先日、新型コロナウイルスに関するツイートデータを分析しました。
鳥海准教授は「2月末の一斉休校呼びかけで感染が自分事となり、3月末の志村さん死去で非常な恐怖となった。二つの出来事が大きな節目になったと思われる」と分析する。
一方で、3月20~22日の3連休は東京都内で桜が満開になり、全国的にも外出する人が増えたとされる。コロナ関連のツイートも一時的に減少。内容も「怖」の感情がその前後と比べて顕著に減り、「不安」「心配」などの単語の出現数も少なくなっていた。
鳥海准教授は「実際に一種の気の緩みが生じていたことを表すのではないか」とし、「人々の緊張感の緩みをSNS上でいち早くつかむことは、感染防止対策を講じるうえで有効だろう」とする。
記事の中では、志村けんさん死亡のニュースタイミングで恐怖感情のピークとなり、Twitterデータから心の緩みを掴むことで、今後の感染防止対策に繋げられるのでは、とまとめられています。
こうしたデータを行動データと結びつければ、今週のツイートデータから次週の人手を予測できるモデルを作れるかもしれません。
このように過去のデータはただの過去の歴史であり、効果検証には良いかもしれませんが、未来の打ち手となって初めて価値が上がるものです。
データ収集・分析は、ある程度仮説を作ってから取り掛かることがより重要となってくるでしょう。
※当社ではTwitterやInstagramなどのデータ抽出や、データスクレイピングの代行も行っています。ご依頼の際は、お問い合せフォームよりお気軽にお問い合せください。
▼合わせて読みたい