最近ツイッタ―をしていると、「リツイートしてくれると、抽選でプレゼント!」チラホラ見かけますよね。
でも、私としては自分が本当に抽選されているか、ちょっと懐疑的なんですよ。
その理由を記事にまとめてみました。
追記:当初「無理そう」と結論づけていましたが、「できそう」です。当初誤った結論を投稿していまい、申し訳ありません。
また、id:kw5様とid:tockthey様にはご指摘いただきありがとうございます。
Twitterでリツイートするだけでプレゼント抽選とは
見たことがある人ならわかるとおもいますが、ツイッタ―のタイムラインでこんなツイートを見かけるときがあります。
「プレイステーション4」
30台プレゼントします!応募方法は
このツイートをリツイートのみ!当選連絡はDMで行うのでフォローだけお願いします。
⬇︎因みにユーチューブでは100台プレゼントしてます⬇︎https://t.co/xomacnKCc6 pic.twitter.com/89yTzx6Ykl
— ヒカル (@kinnpatuhikaru)
Youtuberヒカルさんの場合を例に挙げてみます。
リツイートするだけでPS4が当たるチャンスらしいです。すごいですねw
プレゼント企画が不可能だという声
ツイッタ―でこんなツイートを見つける。
こちらがTwitter APIの仕様です。つまり、応募締め切り後、最新100個のリツイートのみ確認可能で、それ以外のリツイートは確認できません。https://t.co/9Twv0zs4Gw
「idパラメータで指定された最新の100個のリツイートのコレクションを返します。」— こもりばん (@moriban) 2017年8月17日
まあ、厳密には、どのタイミングでリツイート情報を取得しているかがわからないので、応募締め切り後の100コだけじゃないかもしれないですけど…
どういう事かと言うと、
Twitter APIでリツイートしてくれた人を調べる流れとしては
- リツイートしてくれた人の情報を教えてくれと頼む
- リツイートに関しての情報を返してくれる
の2ステップ必要なんですよね。
つまり、リツイートした瞬間にプレゼント企画側にリツイートした人の情報がいくわけではないんですよ。
あくまで企画側が「リツイートしてくれた人の情報を取得したい」っていう行為が必要。
常に動いていれば(常時APIクロールする)いいんじゃね?
と考える方もいると思いますが、それは不可能です。
TwitterにはAPIの使用制限があります。
なぜかって?
常に使われてはサーバーに負荷がかかりすぎます。サイバー攻撃ですよ。
つまり、どんなに頑張ってリツイート情報を取得しようとしても、ヒカルさんのようなリツイートがめちゃくちゃ多いプレゼント企画では、企画側に情報が行ってない可能性が高いんですよね。
リツイートでのプレゼント企画って全部ウソなの?
一概にそんなことは言えません。
RTが1日数百程度のキャンペーンであれば、
定期的にAPIクロールする仕組みを作った上でキャンペーンに臨めば、
全員を把握できる可能性があります。
従って、全て嘘とは言えません。しかしながら、この規模では無理でしょう。
キャンペーン実施側は全員把握する仕組みを説明すべきです。 https://t.co/dByDIAHV2i— こもりばん (@moriban) 2017年8月17日
リツイート数が少なければ、APIの使用制限にひっかからず、全員を把握した上で抽選できる可能性も十分にあります。
プレゼントしていないという事ではない
こう見ていると、リツイートでのプレゼント企画は嘘だ!と思ってしまうかもですが、実はそれも間違いです。
この記事からわかることは
リツイートした人全員が抽選対象として認識されていない!
という事です。
なので、企画側が定期的にAPIクロールした中で、プレゼントを送っている可能性も十分にあります。
いつリツイートすべきか?
以上を踏まえたうえで、応募するならいつリツイートすべきかを考えると、
- 短時間で大量のリツイートがされていない時
- 企画側がAPIをクロールする時
この2つが大事かと。
つまり、プレゼント企画側に自分の情報を行く確率をあげることですよね。
APIをクロールする時は内部の人でないと知りえないので、短時間に大量にリツイートされているときは避けたほうがいいでしょうね。
【重要】「できるよ」というコメントをいただく(追記部分)
投稿後すぐに、こんなはてブのコメントをいただいた。
確かに今までの説明はREST APIってヤツの説明でした!
つまり、REST APIではできないだけで、他だとできるかも…
とりあえずkw5様から指摘をいただいた「Streadming API」について、Twitter Developersで調べてみると、
REST APIのような制限がなく、どんどんフィードを送ってくれる感じ。
なにやらtwitterのAPIサーバに接続しっぱなしにして、データが流れてくるのを取得するという方法らしい。
でも、ヒカルさんみたいに一気に大量リツイートされたら、データ間引かれるのでは?とも思いましたが、実現できる可能性は十分にありますね。
さらに、tockthey様のご指摘されたように「広告代理店を挟めば、twitter側でなんでもしてくれる」ようです。
確かに普通に考えて、無料で一般で使えるAPIでなんでもできるっていうのが虫のいい話。お金をかければ出来る事が増えるのは当然のことで、ツイッター運営側もそれに対してのサービスを提供しているようにしているはずですよね。
早急に情報を訂正したかったため、深くは調べきれてませんが、実現できそうですね。
今回は不十分な調査、知識の中で記事を投稿しまったことを反省しています。
まとめ
ツイッタ―のリツイート機能を使ったプレゼント企画は、リツイートしても企画側に情報が行かずに抽選されない場合がある(と思う)。
APIがクロールする直前にリツイートしたものを取得する方法でも、ランダムになるかもしれませんが、「リツイートした人の中で平等に抽選」したことにはならないですね。
企画側からすると、ランダムみたいなものだからいいでしょ?ってなりそうですけど、無抽選でリツイートさせられたユーザー側から見ると、何かやりきれない思いがふつふつと湧いてきますねw
ただし、これはREST APIでできないだけで、
ツイッター上で実現できないということではありませんでした。
追記部分でも記載した通り、方法はあるので、
プレゼント企画側がしっかりと構築していれば、リツイートした人の中での平等抽選が可能だと思います。
この度は私の調査不足と知識不足により、一時誤った情報を流してしまい申し訳ありません。コメントで教えてくださったお二人には感謝申し上げるとともに、今後誤情報を発信する事がないように注意いたします。
ちなみにですが、私はヒカルさんのPS4のプレゼント企画をリツイートしていますw
PS4欲しいですから!!