TwitterやインスタグラムなどのSNSのアカウントを企業で活用するのが当たり前の雰囲気になって久しく、
今まで何度も企業のマーケティングツールとしての運用について検討してきましたが、
調べるほどにイマイチ肌に合わずお茶を濁してきました。
カルチャーが合わないからやんない、ともそろそろ言ってられないので改めてTwitterのテストアカウントを作り試行錯誤した記録です。

目的

こちらから発信する情報を(なるべく多くの)適切なターゲットに向けて届けたい。
発信するキャラクター(人)に依存せず、再現性のある手法を確立したい。
コストをかけずに出来るだけ楽に運用したい。

・ターゲット

うちは映像制作の会社ですので
撮影の際にキャスティング会社やタレント事務所を通すほどでもないけど、
ちょっとエキストラやモデルが欲しいなということがあります。
テストとはいえ、アカウントが育った際には活用したいので、
今回は「出演募集かけたら応募してくれる可能性がある人」をターゲットにしました。

・何を発信するか

ターゲットが興味を持ちそうで、継続的に発信出来そうな情報として、
今回は「動画サイトで最近上がったモデルや俳優のインタビューの紹介」にしました。
1時間に1つずつ、1日で24動画を紹介します。
「おはよう」だったりの発言は一切無しです。
Twitter的には2,400投稿/日まで出来ますが、情報の品質確保を考えると今回は現実的では無いです。

・フォロワーの増やし方

  1. ターゲットをフォローしてフォローバックを狙う
    自動化したい
  2. ターゲットのツイートにいいね
    自動化したいが、twitter規約で禁止されてる
  3. 広告を打つ
    お金がない
  4. キャンペーンを打つ
    お金も無いし手間もかけたくない
  5. フォロワーを買う
    意味が無いので、不採用

今回はフォローバック部分を自動化しつつとぼけれ「いいね」も自動化してみることにしました。

・具体的にやったこと

第1段階

やったこと:twitterAPIを使うと制限も多く、アカウントの発行も審査が厳しそうだったので、自前でクローラーを作ることにしました。
スクレイピング/クローリングなどで検索するとpythonがおすすめとのことで情報も多かったので、普段使用しているmac内に環境を用意しました。
SeleniumとBeautiful Soupというライブラリを使い、chromeを自動化して情報収集と投稿、そして「いいね」もそれっぽく動作するようにしました。

私のスキルレベルはjqueryなどのライブラリはコピペで使えるけどフレームワークとか言われるとウフウフなる程度で、pythonはじめてでhello worldからやって完成まで、1.5ヶ月程度かかりました。

結果:勝手にブラウザの画面が開いたり閉じたりフォローしたりいろいろするので気が散り、
社内で使用してないパソコンに移植して動かしたのですが、動作が安定せず(いつの間にか落ちてる)、他スタッフから「遊びに使うな」などの謂れなき誹謗中傷をうけ、更にはアカウントもロックされがちになり、解除にも手間かかるしで、当初の目的とはかけ離れたものでしたので、一旦仕切り直すことにしました。

第2段階

まずtwitterAPIのアカウント発行をしました。
英語で長文書かないといけなくて、待ち時間も数日かかるとネットでは書いてありましたが、申請とほぼ同時に確認のメールが届きすんなり発行できました。
次にCronからシェルスクリプトを定期実行してpythonを動かせるレンタルサーバを用意しました。
使用ライブラリはSeleniumがアウトでtweepyがインです。
これで、自分でプログラムを書く以外の準備は終わりです。
ツイートする内容は前回作った、インタビューなどを自動で集めてくるスクリプトを流用しました。

・フォロワー対象の絞り込み

—ターゲットリスト作成—

ターゲットが呟きそうなキーワードリストを作成しました。
今回の場合は、「撮って、モデル、かわいい、撮影」などでざっくり拾います。
投稿者の情報が色々とれるので、プロフィール文に「副業、儲かる、ビジネス、万達成」などと記入されてるアカウントを省きます。
その上で、DB(saqlite3)にアカウント情報を登録します。
任意のアカウントのフォロワーに対しても同じ様な動作が出来るため、
人気のあるモデルやファッション系のフォロワーの情報も同じ様に集め登録します。
この際、DBに登録する情報は
アカウント名、フォロー数、フォロワー数、プロフィール文、検索キーワードorフォローしてるユーザ名
がメインです(情報取得日や情報の優先度を入れる列も作ってます。)
1回あたり5,000人のデータが取れるので、こちらを3時間おきにランダムキーワードで取得しています。
1日8回で40,000人分の元データが取れます。

取得出来たデータについてフォロー・フォロワーの比率(ff値)を計算し、バランスの悪いアカウントは優先度を下げます。例えば、フォロワー1万人、フォロー10人のアカウントに対してアプローチしても効率悪そうですよね?

次には、それぞれについて、フォロー&フォロワーのアカウントリストを作成し、
そのアカウントがフォローされた時にどれくらいフォロー仕返しているか(フォロバ率)を計算し、フォロバ率の高い順にソートします。
これで、フォローすべきリストが出来て3時間おきに(自動で!)更新されます。
現在DBには「検索キーワード」「NGワード」「取得データ」の3つのテーブルがあります。

—いよいよフォロー開始—

まずtwitterの制限を確認します。

これからはみ出ない範囲で、なるべく効率よくフォロー、フォロバもらえないアカウントはアンフォローを繰り返します。

400(動作) ÷ 24(時間) = 16.66…(回)

なので、1時間に1回発動するとして、その都度16動作が出来ます。

16(動作) × 24(回) = 384

1日16回分の動作が余るので手動で誰かフォローしたい時用など予備としてとっておきます。

どう動かすか

  1. 1週間以上、片思い(こちらから一方通行のフォロー)をアンフォローする。
  2. 片思いがいない状態(両思いか向こうからの片思いのみ)ならば新たにこちらからフォローをする
    上の2動作を繰り返します。初週は片思いも両思いもいないので、毎日384人ずつフォローが増え続けます。
    1週間経つと、両思いになっていないアカウントを外すので、毎日フォロー数は減り続けます。
    また1週間経つとフォロー数は上昇し、徐々にフォロワー数が増えます。

フォローに対して10%のフォロバが貰えた場合を図にすると以下。
フォロー数が5,000超えるタイミングでフォロワー数は7,000人をオーバーしているので1.1倍の制限にもかかりません。たとえフォロバ率が5%でも、期間が長くなるだけで割合がオーバーすることは無いです。

まとめ

この記事を執筆時は2日目ですが問題なく動作していて56フォロワー獲得。
効率のいいやり方かと聞かれると微妙ですが、ターゲットの絞り込みはAPIで行いつつ、手動ツイートとかハイブリットでまわしていくと面白いのでは無いかと思います。

追記

運用開始から10日経ちました。フルオート運用で現在フォロワー292フォロー数2557。