インプレゾンビ対策・消し方まとめ!増えた理由と一括排除する方法について

インプレゾンビ対策・消し方まとめ!増えた理由と一括排除する方法について

最近、X(旧Twitter)のタイムラインで「謎のアラビア語いいね」「意味不明なRT」が急増し、インプレッションが伸びる一方でエンゲージメントが下がった、と感じていませんか。いわゆる“インプレゾンビ”は、数値だけを押し上げて分析精度を狂わせるだけでなく、ブランドの信頼性を損なうリスクもあります。本記事では、インプレゾンビがいつから増え、なぜ業務アカウントにも影響を及ぼすのかを解説し、iPhone・Android・PC それぞれで実行できる一括排除の方法をまとめました。

目次

インプレゾンビとは何か

定義と特徴

インプレゾンビとは、自動化された大量アカウントが「いいね」や「リポスト」を機械的に行うことでインプレッション数だけを稼ぎ、実際のクリックや会話を生まない“空虚な反応”を指します。プロフィールは無投稿、あるいはアラビア語などランダムな文字列で構成されている場合が多く、数百〜数千単位で連鎖的に出現するのが特徴です。

いつから増えたのか

急激に増えたタイミングとして、2023 年秋ごろに X のアルゴリズム改修が行われた際、エンゲージメントを重視する指標が公開されたことが挙げられます。加えて CEO が変わり、広告在庫を底上げする目的で“広い表示枠”を開放したことで、ボット運営者が一斉に動きやすくなったと言われています。

インプレゾンビが増えた理由

アルゴリズム変更による副作用

表示回数が上がれば広告収益が上がる仕組みは健在です。そのため表示指標に重みづけが転換されたタイミングで、ボット側が“安上がりに伸ばせる指標”としてインプレッションを狙いに来ました。

広告主のKPIを錯覚させる需要

広告代理店やインフルエンサーが提示する“リーチ実績”の数字を良く見せたいがために、サードパーティーがボットを仕込むケースも報告されています。企業アカウントは外部レポートをうのみにはできません。

アカウントへの影響

データ分析が歪む

インプレゾンビが入り込むと、クリック率が異常に低下し、コンバージョンの相関分析が困難になります。リスティングに似た問題で、誤ったクリエイティブ判断につながることがあるため注意が必要です。

ブランド信頼性へのリスク

フォロワー一覧にボットが大量に紛れ込むと、真剣にフォローしてくれているユーザーから「買ったフォロワーなのでは」と疑念を抱かれやすく、ブランドイメージの低下を招きます。

インプレゾンビを識別するチェックポイント

アラビア語・数字のみのユーザー名

プロフィール名が無意味な文字列やアラビア文字の場合、スパム率が高い傾向があります。

作成日が直近で投稿履歴ゼロ

数日前に作られツイートが一切なく、フォロー/フォロワーが極端に少ないアカウントはボットの可能性大。

同一ハッシュタグ連投

同一コンテンツを定期的に拡散しているだけの動きも判別材料になります。

一括排除する方法

ブロックとミュートの使い分け

ブロックは相手からの接触を完全に遮断しますが、通知が行くため相手の運営者にアカウントが存在する場合は逆効果になる恐れがあります。ミュートは通知を送らずにタイムライン表示を回避できるため、大量処理に向いています。

キーワードミュート設定

アラビア語の特定単語や同一ハッシュタグをキーワードミュートに登録すれば、関連するリプライやリポストを非表示にできます。これにより手動ブロック対象が大幅に減少します。

サードパーティーアプリの活用

iOS なら Tweetbot 系譜の Ivory、Android なら Fenix などが高度なミュートフィルターを実装しています。API 制限の影響はあるものの、公式アプリより細かい条件抽出が可能です。

ブラウザ拡張でスクリプト実行

Chrome の Tampermonkey にカスタムスクリプトを入れ、特定の条件を満たすアカウントを自動ミュートする方法もあります。ただしスクリプトが ToS に抵触しないか注意が必要です。

拡張機能「x‑zombie‑killer」でワンクリック非表示

Chrome ウェブストアに公開されている無料拡張機能 x‑zombie‑killer を導入すると、タイムライン/検索結果/通知欄からインプレゾンビを自動で非表示にできます。内部ではアラビア語・サンスクリット・デーヴァナーガリなど約 300 文字のブラックリストを保持しており、該当文字を含む投稿・アカウントを即時ドロップする仕組みです。

  • 導入手順:Chrome または Edge でストアを開き[インストール]→ 拡張機能をオン → X をリロード。
  • スマホ(Android):Kiwi Browser など“PC 拡張機能対応ブラウザ”を使えば同拡張をインストール可能。設定 > 拡張機能 > 『x‑zombie‑killer』をオンにするとモバイルでも動作します。
  • フィルター内容:アラビア文字 29 字、サンスクリット文字 30 字、デーヴァナーガリ 40 字+日本語の情報商材系キーワードを標準搭載。
  • プレミアム機能(有料):除外リスト拡張、独自キーワード追加、UI カスタマイズが可能。

公式 API+Keyword ミュートを組み合わせるスクリプト

拡張機能を入れられない環境向けには、先に紹介した Python スクリプトに ミュートワード API を組み込み、ブラックリストを毎日自動同期する方法が有効です。itokoba 記事でも紹介されている「ミュートワード自動設定スクリプト」を流用すると、スマホ公式アプリでも効果が出ます。

手動ブロックよりミュート→週次ブロックが安全

大量ブロックはレートリミットや誤爆リスクが高いので、まずミュートで TL から排除し、週 1 回ダッシュボードでスコア 80 以上のアカウントのみブロック処理を走らせる“2 段階方式”が推奨されます。

iPhone・Android での個別対策

iPhoneでの消し方

公式アプリの「通知」→「設定」→「フィルター」から“低品質なアカウントを通知に含めない”をオンにしたうえで、ユーザー単位のスワイプミュートを実行するのが手早いです。

Androidでの一括ブロック

Android はバックグラウンドで作業がしやすい利点があります。Fenix のリスト機能を使い、条件検索で抽出したボットを一括ミュート。完了後に公式アプリへ戻る手順が推奨されます。

画像分析でボットを可視化

画像付きリストをエクスポートし、プロフィール画像がフリー素材かどうかを機械学習にかけると、ボット率を客観的に割り出すことができます。Python の Pandas と OpenCV を使った簡易スクリプトで実装可能です。

検索コマンドでインプレゾンビを見ないようにする方法

基本の構文

lang:ja geocode:30.9,143.3,1625km 検索ワード
  • lang:ja … 日本語ポストのみに限定。
  • geocode: 緯度,経度,半径km … 指定地点を中心とした円内の投稿に限定。

緯度経度 30.9,143.3 は日本のほぼ中央太平洋上。半径 1625km で稚内から那覇まで綺麗にカバーできます。

ポイント ① “検索のたびに手入力しない”

スマホ・PC 共通で ユーザー辞書に短縮語を登録しておくと便利です。 例:jpalllang:ja geocode:30.9,143.3,1625km

ポイント ② 半径を変えてローカル検索も

  • 東京23区だけ:geocode:35.68,139.76,25km
  • 関西圏:geocode:34.69,135.50,150km

ローカル半径に絞るとインプレゾンビがほぼ出現しない上、リアルイベントや店舗ビジネスのリサーチにも転用できます。

ポイント ③ フィルターを重ねて精度アップ

lang:ja geocode:30.9,143.3,1625km プログラミング min_faves:20 -is:retweet
  • min_faves:20 … いいね20以上
  • -is:retweet … RT を除外

数字ハードルを上げるほど人力アカウント率が高まり、インプレゾンビ遭遇率はさらに低下します。

画像付きリストをエクスポートし、プロフィール画像がフリー素材かどうかを機械学習にかけると、ボット率を客観的に割り出すことができます。Python の Pandas と OpenCV を使った簡易スクリプトで実装可能です。

自動でインプレゾンビを判断して排除する方法について

はじめに ― “自動ブロック&通報” は Twitter(X)の自動化ポリシーを必ず順守する必要があります。

ボット判定が誤るとアカウント凍結のリスクがあります。

大量ブロック/通報は 15 分あたりのレートリミット(▽90 actions) を超えると自動停止されるので必ず制御を入れてください。

ここでは 公式 API v2 を使った“合規的な自動化”の枠内で説明します。


手順の全体像

  1. 開発者アカウントとアプリを登録
  2. インプレゾンビ判定ロジック(スコアリング)を実装
  3. 対象ユーザー取得 → ミュート → ブロック → 通報 の 3 段階ワークフローを作成
  4. Cloud Scheduler / GitHub Actions などで 1 日 1 回バッチ実行
  5. 誤検知チェック用ダッシュボードを作り、人の目でサンプリング検証

1. 開発者アカウントの設定

ステップ具体的操作
① 開発者申請https://developer.twitter.com → “Apply” → 個人 or 企業で申請。用途欄に「スパムアカウント報告の自動化でコミュニティ品質向上」と明記すると通りやすい。
② プロジェクト作成“Elevated” 以上の権限が必要(無償枠でも可)。
③ API キー取得API_KEY / API_SECRET, BEARER_TOKEN, ACCESS_TOKEN / ACCESS_SECRET を控える。
④ 権限設定“Read / Write” と “report” スコープを付与。

2. インプレゾンビ判定ロジック(Python 例)

import re, os, time, tweepy
from datetime import datetime, timedelta

api = tweepy.Client(
bearer_token=os.getenv("BEARER"),
consumer_key=os.getenv("API_KEY"),
consumer_secret=os.getenv("API_SECRET"),
access_token=os.getenv("ACCESS_TOKEN"),
access_token_secret=os.getenv("ACCESS_SECRET"),
wait_on_rate_limit=True,
)

# ── 判定関数 ───────────────────────────────
ARABIC_RGX = re.compile(r"[\u0600-\u06FF]") # アラビア文字
GIBBERISH_RGX= re.compile(r"[a-z]{6,}", re.I) # 無作為英字列

def score_user(u: tweepy.User) -> int:
score = 0
if ARABIC_RGX.search(u.username): score += 30
if ARABIC_RGX.search(u.name): score += 30
if GIBBERISH_RGX.fullmatch(u.username): score += 20
if not u.description: score += 10
if u.public_metrics["tweet_count"] == 0: score += 15
acct_age = (datetime.utcnow() - u.created_at).days
if acct_age < 14: score += 15
return score # 100 点満点イメージ
  • 70 点以上をゾンビ候補として処理
  • フィルタ条件はコミュニティ特性で微調整してください。

3. ワークフロー:取得 → ミュート → ブロック → 通報

def process_recent_engagers(tweet_id: str):
# ① いいね & RT ユーザー取得
likers = api.get_liking_users(tweet_id, max_results=100).data or []
retweeters = api.get_retweeters(tweet_id, max_results=100).data or []
targets = {u.id: u for u in likers + retweeters}

for uid, user in targets.items():
if score_user(user) < 70: # 健全ユーザー
continue

# ② ミュート(即時タイムラインから排除)
try:
api.mute(uid)
except tweepy.TooManyRequests:
time.sleep(15 * 60)

# ③ ブロック(1 日の上限 1,000 推奨は <500)
if user.public_metrics["followers_count"] < 20:
api.block(uid)

# ④ スパム報告(rate 制限が厳しいため 1 日 50 件以下)
if user.verified is False and user.protected is False:
api.report_user(uid, "spam")
  • ミュート→ブロック→報告の順で段階的に処理するのが安全です。
  • 通報 (POST /2/users/:id/report) は 1 日 50〜100 回を超えないように。

4. 自動実行とレート管理

実行環境ポイント
Cloud Scheduler(GCP)Pub/Sub → Cloud Functions で 1 日 1 回、最新 20 投稿のエンゲージャーを走査。
GitHub Actions (cron)schedule: '0 3 * * *' で深夜バッチ、Secrets に API 各種キーを格納。
AWS Lambda + EventBridge同様に 15 分ごと間引き実行可。

RateGuard

pythonコピーする編集するMAX_BLOCKS_PER_15MIN = 90
ops_counter = 0; window_reset = time.time()+900
...
if ops_counter >= MAX_BLOCKS_PER_15MIN:
    sleep_time = window_reset - time.time()
    time.sleep(max(0, sleep_time)); ops_counter = 0; window_reset = time.time()+900

5. 誤検知モニタリング

  1. BigQuery / Redshift に処理ログを投入(uid, screen_name, score, action
  2. Looker Studio で「スコア分布」と「action 比率」を可視化
  3. 週 1 回ランダムサンプリング 100 件を手検証し、誤検知率 <1% か確認
  4. 高騰していれば 閾値を 70→75 など微調整

6. よくあるQ&A

QA
API無料枠で足りる?Read 10 万/Write 5,000 リクエスト/月の Essential でも、日次バッチなら十分。大量処理は Elevated へ。
画像で判断できる?プロフ画像 URL を取得→Clarifai や AWS Rekognition で“顔なし・ロゴなし”などをトリガーに加点する手法が実用化されています。
全部ブロックすると数字が減るが大丈夫?減った分は“不実”だった指標。エンゲージメント率が改善して広告クリック単価も下がりやすくなります。


画像分析でボットを可視化

画像付きリストをエクスポートし、プロフィール画像がフリー素材かどうかを機械学習にかけると、ボット率を客観的に割り出すことができます。Python の Pandas と OpenCV を使った簡易スクリプトで実装可能です。

CEO 発言と今後の見通し

イーロン氏は「スパムの根絶」を掲げていますが、課金層優遇や認証制限が進むにつれ、無料垢にゾンビが溜まりやすい構造は当面続くと見られます。広告在庫確保の事情も絡むため、ユーザー側の自主防衛が欠かせません。

まとめ

インプレゾンビは、インプレッション指標を歪めるばかりか、ブランド信頼を損ない、正確な分析を阻害します。キーワードミュート、サードパーティーアプリ、ブラウザスクリプトなどを組み合わせて一括排除の仕組みを整えれば、運用効率とデータ品質を大幅に改善できます。早めの対策で“見せかけの数値”から脱却し、真のエンゲージメントを取り戻しましょう。

今週のベストバイ

おすすめ一覧

資料ダウンロード

弊社のサービスについて詳しく知りたい方はこちらより
サービスご紹介資料をダウンロードしてください