【Twitter】シャドウバンの原因と対策!事前検知ツールも紹介

みなさま、Twitterを楽しくお使いでしょうか?

TwitterにはBAN(アカウント停止)意外にもシャドウバンというものが存在しています。

私も先日シャドウバンにかかってしまったので、シャドウバン内容の紹介と対策としてシャドウバン事前検知ツールを作ってみたので、そのご紹介をしたいと思います。

事前検知ツールは簡単なので、是非作ってみてください。

シャドウバンについて

シャドウバンとは?

簡単にいうと本人が気づかないうちに制限が掛けられてしまっていう状態をさします。

シャドウバン状態になると?(種類と内容)

シャドウバンにはいくつかの段階があり、段階に応じて制限が厳しくなっていきます。

シャドウバンの種類と内容について簡易的に表にまとめました。

各状態について詳細を記載していきます。

検索順BAN(軽度)

検索結果の表示優先度が下がってしまう状態。
そのため、普段よりもユーザの目に止まらなくなってしまいます。

ただし、この「検索順BAN」の影響範囲は、検索を行ったユーザがTwitterにログインをしてない場合の検索結果に留まります。

ログインしている場合は、検索順BANの影響は受けません。


検索BAN(重度)

検索結果に完全に表示されない状態。
自分がハッシュタグをつけてツイートした内容も検索には表示されなくなります。

また、この「検索BAN」はログインの有無に関わらず表示がされなくなるため、検索順BANよりも重い状態になります。


幽霊BAN(重度)

第3者から完全にリプライが見えなくなってしまう状態。
フォローしていれば、他の人へのリプライもタイムラインに表示されますが、
この状態では表示されなくなります。(本人と相手は見えます。)

また、この「幽霊BAN」は検索BANを内包しているため、シャドウバンの中で一番きびし厳しい制限と言えます。


リプライ支援なし(軽度)

リプライの表示だけでは見えない状態
Twitter側で攻撃的なリプライだと判断された場合に、内容が表示されず、「このツイートを表示する」で1ステップを踏まないと表示できません。

また、この「リプライ支援なし」は本人と相手は見えるので、幽霊BANより軽度な状態といえるでしょう。

シャドウバンの原因

シャドウバンの原因は?

一般的には下記ツイートやいいねが多いことが原因と言われています。

  • 外部URL付きのツイート
  • 同じハッシュタグのツイート
  • 不適切な内容を含むツイート
  • 不特定多数へのいいね



実際のシャドウバンになった事例

実際にシャドウバンになった方たちの事例です。

コチラは同じハッシュタグの使いすぎが原因と考察している方

こちらはいいねやリプの多さが原因と考察している方


私もなった際は同じハッシュタグを多用していたことやURL付きのツイートをしていたのではと考えています。


シャドウバンの解除方法

シャドウバンを解除するには?

シャドウバンを解除する方法は下記の2つがあります

  1. サポートへの連絡
  2. 大人しく待つ

詳細は後述します。

①サポートへの連絡

Twitterサポートへの連絡が、一番確実かつ早いです。

サポートへの連絡するには下記メニューをたどり、連絡しましょう。

Twitterのメニューの中の「ヘルプセンター」を押します。


ヘルプセンターに移ったら、右上のメニューを押して下にスクロールしていきます。


メニューの中の「お問い合わせ」をし、お問い合わせの項目を下にスクロールしていきます。


項目の「すべてのサポートトピックを表示」を押し、メニューを下にスクロールします。


項目の「検索」を押し、入力を行っていきます。


このメニューで「自分が投稿したツイート、ハッシュタグ、またはメディアが検索に表示されない」を選択し、端末を入力し、問題の詳細に

自分が不適切な内容をツイートしていない旨ともし原因があれば改善したいので、原因を教えてほしい旨を入力します。

最後に「送信ボタン」を押しサポートからの連絡を待ちます。

※シャドウバンの制限が重い場合、サポートにはメールできないこともあります。その場合「必須項目が入力されていません」といわれます。


②大人しく待つ

ツイートやいいね等を控え、大人しく待ちましょう。


シャドウバンが解除された事例

シャドウバンが解除された方々の事例です。

問い合わせで治った方

大人しくまった方


シャドウバンが解除されるまでの時間

ツイッターで様々なツイートをみた結果、だいたいは下記の期間で治っている方が多いようです。

半日~3日

その人がシャドウバンのどの状態だったかまではわからないので、なんとも言えませんが、問い合わせをした方が早くに治っているようです。


シャドウバン状態か調べる方法

自分のTwitterアカウントがシャドウバンの状態を教えてくれるサイト(shadowban.eu)があります。

コチラのサイトで自分のツイッター名で検索をかけます。

問題がない場合

全て緑のチェックマークが付きます。

シャドウバンの場合

前述した種類に応じて、赤色に表示されます。


シャドウバンの対策方法

事前検知ツール

対策のとしては前述した原因に上げられるようなツイートをしないというのが根本ですが、結局何が原因かわからないことが多く気をつけようもないのが現状です。

そこで、軽度シャドウバンに事前に気がつく事ができれば、重い制限がかる前に対応もできると思い事前検知ツールを作成しました。

事前検知ツールのロジック

ロジックは簡単に言ってしまうと、シャドウバンの状態を教えてくれるサイト(shadowban.eu)に自動で検索に行き、その結果をみてBANされている項目が1つでもあれば、その結果をメールで受け取るというものになります。

事前検知ツールの作り方

みなさんでも作れるように作り方とソースコードを記載しておきます。
興味のある人は自分で作ってみてください。

STEP.1
PhantomJs Cloudの登録

JavaScript反映後のhtmlを取得するために利用
STEP.2
スクリプトの作成

ソースコードサンプルを元に作成作
STEP.3
スクリプトの動作確認

スクリプトを実行し結果を確認
STEP.4
スクリプトの実行時間の設定

時間になったらスクリプトが動くように設定



STEP.1 PhantomJs Cloudの登録

シャドウバンの状態を教えてくれるサイト(shadowban.eu)ではJavaScript(以後JS)で結果を返しているため、ただのスクリプトでサイトの情報を取得しようとした場合に、JSの実行前の情報を取得してしまう。

「PhantomJs Cloud」はJSの実行後のデータを取得するサービスで、無料で利用することが可能である。(500回 / 1日)

※細かいことがよくわからい人はとりあえず登録しておきましょう。

PhantomJs Cloudへのリンク

「Sing Up now」のボタンを押しましょう。

メールアドレスとロボットではない証明のボタンをチェックし、「Sign up」のボタンを押します。

その後メールが送られるので、送られたメールのリンクを開くと上記の画面に移るので、パスワードを入れて、「Finsh and Log in」のボタンを押しましょう。

ログインすると、上記画面に移ります。ココの記載されている「ApiKey」は後で使うので控えておきましょう。


STEP.2 スクリプトの作成

googleドライブ内でスクリプトを作成していきます。

ちなみにこのスクリプトのことをGAS(GoogleAppsScript)と呼びます。

googleドライブ上で、「新規作成」ボタンを押します。

「その他」→「GoogleAppsScript」の順に押していきます。

新規GASの編集画面に移りますので上記の赤枠の部分にコードを貼り付けます。

貼り付けるコードは下記になります。
ただし3点だけ修正して貼り付けてください。

JS
function getSBstatus() {
  
  //調べたいtwitterの名前
  var twitter_nm = "(1)自分のツイッター名";
  
  //shadowBANのURLの設定
  var url_sw = "https://shadowban.eu/"+twitter_nm;
  
  //phantomjscloud.comのAPIkey
  var api = "(2)APIのキー";
  
  //URLを設定
  var url = "https://phantomjscloud.com/api/browser/v2/"+api+"/?request=%7Burl:%22"+url_sw+"%22,renderType:%22plainText%22,outputAsJson:true%7D";
  
  
  //URLページを取得
  var response = UrlFetchApp.fetch(url).getContentText();
  
  //取得したJSONデータ
  var json = JSON.parse(response);
  
  //見やすい形にデータ整形
  var source = json["content"]["data"].toString();
  
  //確認用
  //Logger.log(source);
 
  //検索順位BAN
  var SSB = source.indexOf( 'No Search Suggestion Ban' );
  //検索BAN
  var SB = source.indexOf( 'No Search Ban' );
  //幽霊BAN
  var GB = source.indexOf( 'No Ghost Ban' );
  //リプライ支援
  var RD = source.indexOf( 'No Reply Deboosting' );
 
  //確認用
  Logger.log("検索順位BAN:"+SSB+"/ 検索BAN:"+SB+"/ 幽霊BAN:"+GB+"/ リプライ支援:"+RD);
  
  //もしBANがあったら、メールを送る
  if(SSB=="-1"||SB=="-1"||GB=="-1"||RD=="-1"){
    sendMail(SSB,SB,GB,RD)    
  }
}




function sendMail(a,b,c,d) {
 
  //送信先のメールアドレス
  const recipient = '(3)通知したいメールアドレス'; 

 //件名
  const subject = 'シャドウバン検出';
 
  //各項目の初期化
  var SSB = null; 
  var SB = null;
  var GB = null;
  var RD = null;
  
  //各項目の日本語化
  if(a=="-1"){SSB = "BAN"}else{SSB = "問題なし"};
  if(b=="-1"){SB = "BAN"}else{SB = "問題なし"};
  if(c=="-1"){GB = "BAN"}else{GB = "問題なし"};
  if(d=="-1"){RD= "BAN"}else{RD = "問題なし"};
  
  //本文
  const body = "気をつけて!シャドウバンになっているよ。\n\n"+" 検索順位 : "+SSB+"\n 検索 : "+SB+"\n 幽霊 : "+GB+"\n リプライ支援 : "+RD; 
  
  GmailApp.sendEmail(recipient, subject, body);
 
}


修正点①
(1)自分のツイッター名
自分のツイッター名を入れましょう。
 
 var twitter_nm = “kem_log”;
修正点②
(2)APIのキー
PhantomJs Cloudで控えたAPIキーを入れましょう。
 
 var api = “XX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX”;
修正点③
(3)通知したいメールアドレス
送信先メールアドレスを入れましょう。

const recipient = ‘XXX@sample.com’;



STEP.3 スクリプトの動作確認

コードを貼り付けたら、上部の「再生ボタン」を押しましょう。

もし、実行後に下記のような画面がでたら、下記の画像順にボタンを押していきましょう。

実行後にキーボードで「Ctrl + Enter」を押します。

キーを押すとログが表示されるので、ログの中に「-1」の数値がなければ、シャドウバンではないため、メールの通知は行われません。もし「-1」の数値があればシャドウバン状態なので、コードに書いたメール宛に通知が送られます。

上記のような動作をしていれば動作の確認は終了になります。


STEP.4 スクリプトの実行時間の設定

作成したスクリプトを自動で行なってくれる時間を設定します。
これで、自分で確認しに行かなくても、シャドウバンされていれば、勝手に通知が届くようになります。

スクリプト上部にある、タイマーマークのボタンを押しましょう。

画面が移ったら、「トリガーを追加」のボタンを押しましょう。

時間の選択で、任意の設定をしましょう。
※私は、1日2回配信サれるように12時間おきに設定しました。

トリガー一覧に保存されていれば、設定は完了になります。



注意事項

スクリプトはエラーになることがありますが、無視して大丈夫です。
また、スクリプトの作成は自己責任でおこなってください。


今回はシャドウバンについてと、事前通知ツールについてご紹介しました。

シャドウバンって怖いですよね…なるべく合わないに越したことはないですが、
あっても被害を最小限に抑えられたらと思います。

今回の記事が役にたったのであれば嬉しいです。

それでは、また次の記事でお会いしましょう。