Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善

Google関連サービスの豆知識

こんにちは、チーフクリエイターのSHOJIです。

ブログ記事を投稿する際、誤字脱字や画像表示の確認などで何度もプレビューチェックすることと思いますが、アドセンスを運用されている方でプレビュー時にアドセンス広告を非表示に設定していないと、サイト運営者が起因するインプレッション数増加による「無効なトラフィック」とみなされ、ポリシー違反による広告表示の制限や、最悪の場合アカウント停止の処分が下される可能性があります。

対策としては簡単で、PHPの条件分岐を利用して「WordPressにログイン中だけアドセンス広告を表示させない」といった設定をすれば解決します。

そこで今回の豆知識では『Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善』と題して、ログイン中の表示非表示だけでなく様々な設定が可能になる点についてご紹介していこうと思います。

条件分岐の基本「if」文

if」文とは、条件が一致すれば記述した処理が実行されるというものです。

if( 条件 ){
 // 条件が真(true)であれば実行される処理を記述
}

条件が一致することを「真(true)」、条件が一致しないことを「偽(false)」と言うのですが、この「if」文に条件が一致しない場合に実行される処理の記述を加えることで、条件分岐させることができるのです。

if( 条件 ) {
 // 条件が真(true)であれば実行される処理を記述
} else {
 // 条件が偽(false)であれば実行される処理を記述
}

ifの条件が一致すればifの処理が実行され、一致しなければelseの処理が実行されます。

また、複数の条件で分岐させたい場合は、

if( 条件1 ) {
 // 条件1が真(true)であれば実行される処理を記述
} elseif ( 条件2 ) {
 // 条件2が真(true)であれば実行される処理を記述
} else {
 // 条件1と条件2が偽(false)であれば実行される処理を記述
}

というように、ifの条件1が一致すればifの処理が実行され、一致しなければ、elseifの条件2が一致する時elseifの処理を実行、ifとelseifどちらの条件も一致しなければelseの処理が実行されます。

このように、条件分岐ではelseif(条件2)、elseif(条件3)、elseif(条件4)、elseif(条件5)・・・といった具合に、elseifを使って複数の条件を追加していくことが可能になります。
 

WordPressログイン中の非表示設定

functions.phpファイルにてショートコード化したものを毎回記述するのであれば投稿内に記述するのであれば、投稿途中の間はショートコードを記述しなければ「無効なトラフィック」も問題ないかと思われますが、テンプレートファイルに直接アドセンスの広告ユニットコードを記述している場合は、プレビューの際にもアドセンス広告が表示されてしまいますよね。

そこで、条件分岐が利用できるWordPress関数『is_user_logged_in()』を使うことで、WordPressにログインしているかどうかの判定をすることができます。

WordPressにログインしていれば「true」、ログインしていなければ「false」を返すので、それに応じるように実行させたい処理を記述すると解決します。

Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善

このように、テンプレートファイルに記述されたコードに条件分岐を加えることで、ログイン中のプレビュー画面などへのアドセンス広告が非表示となります。

「広告の非表示」と簡単に言いましたが、ソースコードで確認してもらうと分かるように、上記の通り条件分岐を使うことで、ログイン中のプレビュー画面ではアドセンス広告のユニットコードがそもそもソースコードに載らないため「無効なトラフィック」とみなされることもなく安心です。
 

AICPの条件分岐(テンプレートファイルへの実装)

WordPressサイトでアドセンスを運用されている方は、アドセンス狩り対策として広く利用されているプラグイン「Ad Invalid Click ProtectorAICP)」を使っていることと思います。

前回の豆知識『アドセンス狩り対策!Ad Invalid Click Protector(AICP)設定方法【WordPressプラグイン】』にてご紹介ましたが、実はfunctions.phpファイルにてショートコード化する方法において条件分岐が使われているんですよ!

そこで、今回はショートコード化せず「single.php」などのテンプレートファイルに直接コードを記述する場合を想定して、elseifを使った複数の条件分岐をご紹介しましょう!

例えば、先ほどの「ログイン中は広告非表示」に加え、ログインしていない場合にアドセンス広告を表示する、もし不正なクリックを感知した場合は広告を表示しないという時には、以下のように条件分岐させます。

Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善

elseifの条件『aicp_can_see_ads()』は、「Adsense Invalid Click Protector(AICP)」の関数で、この条件分岐によって広告を表示非表示させているのです。

参考:『アドセンス狩り対策!Ad Invalid Click Protector(AICP)設定方法【WordPressプラグイン】』
https://info-con.co.jp/tips/google-19-adsense-invalid-click-protector/

論理演算子を加えた条件分岐

論理演算子には「||」「&&」「!」といった演算子があります。

例えば、条件Aまたは条件Bのどちらかに当てはまっていれば「true」、どちらにも当てはまっていなければ「false」を返したい場合は、

if( 条件A || 条件B ) {
 // 条件Aまたは条件Bのどちらかに当てはまっている場合に実行される処理を記述
} else {
 // どちらにも当てはまっていない場合に実行される処理を記述
}

というように、論理演算子「||」を使用します。

前項の『AICPの条件分岐』で紹介した記述を応用して、(ログイン中)または(モバイル閲覧時)は「広告非表示」、どちらにも当てはまらない場合だけ「広告表示」、不正なクリックを感知した場合は「広告非表示」といった条件分岐の記述は、以下のようになります。

Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善

ここで使用した『wp_is_mobile()』はWordPress独自の条件分岐タグで、モバイル(スマホ・タブレット)の場合は「true」を、PCの場合は「false」を返します。

+++++++++++++++

また、条件Xも条件Yもどちらにも当てはまっていれば「true」、どちらにも当てはまっていなければ「false」を返したい場合は、

if( 条件X && 条件Y ) {
 // 条件Xと条件Yどちらにも当てはまっている場合に実行される処理を記述
} else {
 // どちらにも当てはまっていない場合に実行される処理を記述
}

というように、論理演算子「&&」を使用します。

(ログイン中でない)かつ(AICPで不正なクリックを感知していない)場合にだけ「広告表示」、不正なクリックを感知した場合「広告非表示」といった条件分岐の記述は以下のようになります。

Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善

ここで使用した「!」は論理否定の演算子で、『!条件』では条件に当てはまっていれば「false」を、当てはまっていなければ「true」を返します。

つまり、WordPress関数に論理演算子を足した『!is_user_logged_in()』となることで、WordPressにログインしていなければ「true」、WordPressにログインしていれば「false」を返します

ややこしいですね💦
ですが、論理演算子を含めた条件分岐を行うことで、自身の用途に応じた複雑な表示設定が可能になります。

あとがき

PHPの条件分岐を利用することで、自身の用途に応じたアドセンス広告の表示非表示設定が可能になることがお分かりいただけたかと思います。

今回は『収益改善』を目的としてご紹介したのですが、なぜ条件分岐を利用することが収益アップに繋がるのかと疑問に感じる方も多いのではないでしょうか?

例えば、PC閲覧の際にサイドメニュー内に表示されるアドセンス広告が、モバイル時にはページの下部に表示されてしまうことがありますが、その影響によって下部までスクロールされずに広告が表示されないため、クリック数やインプレッション収益の減少に繋がってしまいます。

アドセンスの収益アップに関する記事の多くが、クリック率(CTR)の向上を謳ってます。

つまり、閲覧されるデバイスに応じて広告の表示非表示を変更したり広告ユニットの最適化をすることでクリック率を高め、アドセンスの収益アップを図るという考えです。

条件分岐を利用することで、広告の表示非表示や広告ユニットの最適化を実現できるようになり、結果として収益アップの可能性が高まることと思います。

初心者の方にはハードルが高いかもしれませんが、是非チャレンジしてみてはいかがでしょう?

Google AdSense 関連記事
『Google AdSense(アドセンス)PHPの条件分岐を利用して収益改善』
https://info-con.co.jp/tips/google-20-adsense-conditional-branch/

『アドセンス狩り対策!Ad Invalid Click Protector(AICP)設定方法【WordPressプラグイン】』
https://info-con.co.jp/tips/google-19-adsense-invalid-click-protector/

『Google AdSense(アドセンス)海外の広告をブロックして収益UP』
https://info-con.co.jp/tips/google-18-adsense-block-overseas-advertising/

『Google AdSense 法人限定「お支払いサービスのユーザー」の追加手順』
https://info-con.co.jp/tips/google-17-adsense-add-payment-service-users/

『Googleアドセンスで銀行口座の登録からデポジット入金確認までの手順』
https://info-con.co.jp/tips/google-16-adsense-deposit/

『Googleアドセンスで法人が米国税務情報(W-8BEN-E)を提出する手順』
https://info-con.co.jp/tips/google-15-us-tax-information/

『Google AdSense「正式な氏名がアカウント名と一致していない」の対応』
https://info-con.co.jp/tips/google-14-tax-information-alert/

『Google AdSense(アドセンス)PIN「住所確認が必要なため、お支払いが保留されています」の対応』
https://info-con.co.jp/tips/google-13-adsense-pin-code/

『Google AdSense(アドセンス)GDPRとCCPAの対応について』
https://info-con.co.jp/tips/google-12-adsense-gdpr-ccpa/

『AdSense(アドセンス)「Googleのsellers.jsonファイルに販売者情報を公開することをおすすめします。」の対応』
https://info-con.co.jp/tips/google-11-adsense-sellers-json/

『Google AdSense(アドセンス)「収益に重大な影響が出ないよう、ads.txt ファイルの問題を修正してください。」の対応』
https://info-con.co.jp/tips/google-10-adsense-ads-txt/

『アドセンス狩り対策にも必須!Google AdSenseとAnalyticsを連携する』
https://info-con.co.jp/tips/google-09-adsense-analytics-alignment/

『Google AdSense(アドセンス)アカウント共有!法人アカウントで複数のユーザーを追加して管理する方法』
https://info-con.co.jp/tips/google-08-adsense-share-account/

『企業サイトをGoogle AdSense(アドセンス)に申請する手順』
https://info-con.co.jp/tips/google-07-adsense-apply/

Webの豆知識」の関連記事

インフォコネクトに
相談してみませんか?

経営コンサルティングやITサービス活用支援、ホームページ制作などに関するご依頼や、ご質問・ご相談など、なんでもお気軽にお問い合わせください。