A8.netで「直近3日以内に無効クリックが発生しています。」が出た原因を調査した話

A8.netで広告を確認していたところ、以下のような警告が表示されました。

「直近3日以内に無効クリックが発生しています。」

これは、終了した広告がクリックされたことが主な原因です。しかし、終了した広告を削除しても発生します。調査を進めると、WordPressの投稿リビジョン(revision)が原因になっている可能性が高いことが分かりました。

この記事では、以下の内容をまとめます。

  • WordPressの検索機能で広告コードを探す方法
  • phpMyAdminで広告コードを検索する方法
  • 投稿から広告コードを削除しても、revisionに残っている問題
  • revisionがネット上に残り続ける可能性
  • WP-Optimizeでrevisionを削除する方法

同じ現象で困っている人の参考になれば幸いです。


発生した現象

A8.netの管理画面で、以下の警告が表示されました。

「直近3日以内に無効クリックが発生しています。」

無効クリックをクリックするとプログラム名に【終了】と書かれています。

そこで、まずはサイト内に古い広告コードが残っていないか調査することにしました。


WordPressの検索機能で広告コードを探す

まず最初に行ったのが、WordPress管理画面の検索ですが、この機能自体、私の場合は検索結果が出ず、最初の画面が出るだけでした。

記事に検索窓を設置して、そこで検索するとうまくいきます。方法は以下↓

ブログにサイト内検索を設置する方法-Googleカスタム検索とJavaScriptによる自作検索窓
自分のブログ内を検索するGoogleカスタム検索の1番簡単なブログへの設置方法です。検索結果画面を用意したり、設定をいじったりせずデフォルトのままです。無料で簡単にすぐ設置できます。さらにJavaScriptでサイト内検索を自作してみました…

ただし、これで見つけて削除しても、まだ、無効クリックが発生します。

WordPress標準の検索では、revision(リビジョン)まで検索対象にならないです。

そこで今度はWordPressのデータベースを検索してみます。


phpMyAdminでA8.netの広告コードを検索する

次に、phpMyAdminを使って直接データベースを検索しました。

こちらのほうが確実です。

phpMyAdminを開く

phpMyAdminはWordPressからはアクセスできません。WordPressを使っているレンタルサーバーの管理画面からphpMyAdminへアクセスします。
WordPressで使用しているデータベースを選択してログインしてください。

こちら↓も参考にしてください。

【WordPress】テーマCocoonの集計結果を取り出す方法【Python】
WordPressのテーマCocoonでは記事ごとにアクセス数がわかります。管理画面やログインしていると表示されます。そのデータが、どこにあるか分かったので、取り出してPythonで集計する方法をご紹介します。JupiterNotebook…

wp_postsテーブルを検索

左側のパネルで、WordPressのデータベース(例abcwp)を選択します。 
上部のメニューバーにある「検索」タブをクリックします。
「検索する単語または値」の欄に例えば「3H9WKY+FVK6AI+2GMK+6BU5T」と入力します。

・「いずれかの単語を含む」選択

「テーブル内で検索」のセクションで、検索したいテーブルを選択します。通常、wp_posts (投稿やページの内容)、wp_options (サイト設定)、wp_postmeta (投稿のカスタムフィールド)、wp_usermeta (ユーザー情報) などのテーブルがよく検索されます。すべてのテーブルを検索したい場合は、すべて選択しても構いませがwp_posts だけでいいと思います。

「実行」ボタンをクリックします。


検索結果を見ると publish 以外が大量に出てくる

ここで不思議な現象が発生しました。

WordPress上では広告コードを削除済みなのに、検索すると大量にヒットします。

しかも post_status を見ると、publish ではなくrevisionでした。

post_status意味
publish公開済み(誰でも見える)
draft下書き
revisionリビジョン(過去バージョンの履歴)
private非公開(ログインユーザーのみ)
future予約投稿(日時が来たら publish になる)

revisionとは何か

WordPressには「リビジョン機能」があります。

これは記事を編集するたびに、自動的に過去の状態を保存する仕組みです。

非常に便利な機能ですが、問題は以下です。

  • 昔の広告コードが残り続ける
  • 削除したつもりでもDB内には存在する
  • revisionが大量に蓄積する

つまり、現在の公開記事から広告コードを削除しても、過去バージョンに広告コードが残っていることがあります。


revisionは今でもネット上に存在している可能性がある

さらに厄介なのがここです。

revisionは通常の投稿ではありませんが、以下のようなケースではネット上に残存する可能性があります。

  • キャッシュ
  • 検索エンジンのインデックス
  • CDN
  • アーカイブサイト
  • セキュリティソフトやクローラーの巡回履歴

つまり、WordPress上から広告コードを消しても、どこかにある過去データにアクセスされることでA8.net側から無効クリックとして判定される可能性があります。

もちろん、これが100%原因と断定はできません。

ただ、実際に調査すると revision に大量の広告コードが残っているケースはかなりあります。


対策:WP-Optimizeでrevisionを削除する

どこにあるかわからないデータをコントロールすることはできません。なので根本的対策はないと思います。

しかし、少なくともWordPressデータベース内に残っているrevisionは削除できます。

そこで使用したのが WP-Optimize です。

WP-Optimizeとは

WP-Optimizeは、WordPressデータベースの最適化やキャッシュ削除を行えるプラグインです。

特に、不要なrevisionを一括削除できるのが便利です。


WP-Optimizeでrevisionを削除する手順

実行前にUpdraftPlusでバックアップしておくと安心です。UpdraftPlusについては以下記事を参照してください。

シンクラウド for FreeとUpdraftPlusでサーバー移行の練習をした!
データベースだけをバックアップして移行先ではテーマやプラグインは手動でインストールした後にデータベースだけ復元すればスムーズに移行できるのではないかと考えたので実験した。具体的にはシンクラウド for Freeのサーバー内の2つのWordP…

プラグインをインストール

WordPress管理画面から以下を開きます。

  • プラグイン
  • 新規追加

検索欄で以下を検索します。

WP-Optimize

インストール後、有効化します。


データベース最適化を開く

設定→データベース


「すべての投稿リビジョンをクリーン」を実行

以下の項目を探します。

すべての投稿リビジョンをクリーン

チェックを入れて実行します。

これにより、不要なrevisionが削除されます。
個人的には、この作業と手動でたまにやろうと思うので普段はWP-Optimizeを無効にしておいて削除作業をするときだけ有効にしてます。

まとめ

A8.netで「直近3日以内に無効クリックが発生しています。」と表示された場合、単純なクリックだけでなく、WordPressのrevisionに古い広告コードが残っていてそれが原因の可能性があります。

今回のポイントをまとめると以下です。

  • WordPress検索だけでは見つからない場合がある
  • phpMyAdminで直接検索するとrevisionが大量に見つかる
  • 公開記事から削除してもrevisionに残っている
  • revisionがネット上に残存している可能性がある
  • WP-Optimizeでrevisionを削除できる

特に長年運用しているWordPressサイトでは、revisionが大量に蓄積していることがあります。

一度データベースを確認してみると、思わぬ古い広告コードが残っているかもしれません。

イチゲをOFUSEで応援する(御質問でもOKです)Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)

タイトルとURLをコピーしました