Google Adsenseで自分自身に広告を表示しない方法

[WordPress] Google Adsenseで自分自身に広告を表示しない方法

※ 当サイトは広告を含みます。

Google Adsenseで自分自身に広告を表示しない方法です。

Google Adsenseの収益はクリック数またはインプレッション数の仕組みが採用されてます。
自クリックは論外として、実はインプレッション数でも収益が発生し、雀の涙みたいな金額が貰えます。

りさ

貰ってる身分で良く言えますね。

管理人

サーバー代にもならんわ。

[] 収益化の仕組みが変更既にGoogle Adsenseの収益基準はクリック単価からインプレッション単価に切り替わっています。
よって、自分で閲覧した場合でもインプレッション収益に加算され、ポリシー違反に該当する可能性があります。

さて、このインプレッション数による収益ですが、自クリックと同様に本人が表示した場合もカウントされてます。
つまり規約違反に当たる可能性があるんですね。記事チェックのためにリロードとかしませんか? それ全部カウントされてますよ。

正直、これはGoogle側が対策を用意すべきじゃね?って思います。いくらでもGoogleアカウントで連携できるだろ。
一応は対策としてChromeのアドオンで広告ブロックする方法がありますが、それはマジで言ってるの?って感じですね。

と言うことで、そんな時に最もオススメなのはコードの改造です。
心を決めてfunctions.phpを改造、良い感じの仕様にカスタマイズしましょう。

◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。

自動広告を非表示にする方法

コードを追加する

自動広告しか使ってない場合、このコードをfunctions.phpとかに追加するだけで大丈夫です。


if ( !current_user_can('administrator') ) {
  add_action( 'wp_head', function() {
    $code = <<< EOF
    <!-- ここにGoogle Adsense用の自動広告スクリプトを書く -->
    EOF;

    echo $code;
  } );
}

Google Adsenseの自動広告スクリプトは自分のアカウントを参考にしてください。
スクリプトをコピペすると、こんな感じのコードになると思います。


if ( !current_user_can('administrator') ) {
  add_action( 'wp_head', function() {
    $code = <<< EOF
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-********" crossorigin="anonymous"></script>
    EOF;

    echo $code;
  } );
}

仕組み

WordPressにログインしてる時の管理者情報でコード追加の有無を判断します。
管理者に関係なくログイン状態だけで判断したい場合はis_user_logged_in()を使います。

つまり、自分自身=管理者ログイン中となります。なので、ログインせずにサイトを閲覧すると広告が表示されます。
ただ、便利な部分もあり、Chromeのシークレットモードを使うと簡単に管理者視点とユーザー視点の閲覧を切り替えできます。

管理人

Google Analyticsで自分自身を除外した方法と同じ仕組みです。

手動広告を非表示にする方法

コードを追加する

任意の位置に広告用のタグを配置してる場合、上記コードだけでは完全に非表示にできません。
手動で追加してる広告用のタグにも、同じような記述が必要になります。

なお、この方法は広告タグの記述方法で書き方が変わります。
何らかのactionfilterを利用してる場合、それ自体の出力を抑止すればいいです。


if ( !current_user_can('administrator') ) {
  add_action( '****', function() {
    $code = <<< EOF
    <!-- ここにGoogle Adsense用の広告スクリプトを書く -->
    EOF;

    echo $code;
  } );
}

違うパターンとして、広告タグをPHPファイルにHTML的な感じで直接記述してる場合、次のような記述が必要です。


<?php if ( !current_user_can('administrator') ) { ?>
  <!-- ここにGoogle Adsense用の広告スクリプトを書く -->
<?php } ?>

さて、単に広告を非表示にするだけなら先程の記述で十分ですが、完全に広告を非表示にするとレイアウトの調整で紛らわしくなります。
ここでは先程のコードを改造して、ユーザーには広告を表示、自分自身はダミー画像を表示するように改造しましょう。
なお、自動広告はGoogleが勝手に表示調整するので、対象をダミー画像に差し替えることはできません。

管理人

管理者ログインしてる状態だと、こんな感じに広告の代わりにダミー画像が表示されるようになります。

ダミー画像

画像素材(ダウンロードする場合)05A9E818D8C544E1B7C1B879318F4BEA.zip

では、最初にactionfilterを利用してるパターンです。


add_action( '****', function() {

  $ad = <<< EOF
  <!-- ここにGoogle Adsense用の広告スクリプトを書く -->
  EOF;

  $dummy = <<< EOF
  <div>
    <img src="ここに画像のパスを書く" width="100%" height="auto" />
  </div>
  EOF;

  $code = !current_user_can('administrator') ? $ad : $dummy;

  $output = <<< EOF
  <div>
    {$code}
  </div>
  EOF;

  echo $output;
} );

最後に出力をdivで囲ってますが、これは広告領域をclass指定する場合に便利だからです。
他にも特定のタグでレイアウト調整したい場合など、自身の好みに合わせて変更してください。

次にPHPファイルにHTML的な感じで直接記述してる場合です。


<?php if ( !current_user_can('administrator') ) { ?>
  <!-- ここにGoogle Adsense用の広告スクリプトを書く -->
<?php } else { ?>
  <div>
    <img src="ここに画像のパスを書く" width="100%" height="auto" />
  </div>
<?php } ?>

こっちは普通にif-elseで分岐すればいいと思います。レイアウトの調整はこっちのほうが楽かも。
後、投稿ページから広告タグを書くような手段を使ってる場合はダミー画像への差し替えは無理だと思います。

あとがき

2024年からGoogle Adsenseの収益はインプレッション数が主になるみたいですね。
そうなると自分で表示したことが規約違反に繋がる可能性もあるし、早めの対策を心掛けましょう。

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。