PHP の関数を作って AdSense の表示をコントロールしてみた

Twenty Fourteen  のコンテンツサイドバーに Google AdSense  を表示した。でもモバイルでは表示したくない・・・うーむ、どうしよう。

 

私は  Google AdSense(AdSense)の表示場所と表示数について、モバイルデバイスのことを考えたことがなかった。
しかし、最近  Google の「モバイル フレンドリーテスト」を受けたのをきっかけに、ここ数日間、私にしてはかなり真剣に考えなおしてみた――つまり、今のままじゃモバイルだとまずいんじゃないか、というようなことをだ。その時の私の気持ちはサブタイトルに書いたとおりだ。

という訳で、今回は広告ユニットの表示場所と表示数をコントロールする方法を考えてみた。

スポンサーリンク

広告ユニットの表示箇所:

  • 今回は、いま使用中のテーマ  Twenty Fourteen  についてだけ考える。
  • 広告ユニットの表示数はデスクトップ(PC)では 3 個、タブレットでは 2 個、スマホなどのモバイル・ホーン(モバイル)では 1 個にする。振り分けは下の表のとおり。
UA \ DISPLAY ウィジェット ページ末尾(左) ページ末尾(右)
PC
タブレット ○*
モバイル ○*

※UA  はユーザーエージェント。「*(アスタリスク)」付きはレスポンシブサイズの広告ユニット。

広告ユニットの表示方法:

  • 広告ユニットは  php  の関数などを使って表示する。表示・非表示の制御はユーザーエージェントのモバイル判定で行う。

勘違いと失敗と迷走の途中経過は省略する(注1)。
下の 2 個のコードウインドウに書いてあるのが、今回作成した  php  のコードだ。
何をやっているのかということは、コード中のコメントを読めば分かって頂けると思う。モバイル判定には、判定用データの充実したサードパーティーのライブラリ「Mobile Detect」を使っている。

C  言語系統でのプログラミング経験は長いが、php  は初めてなのでちょっと勝手がちがった。なので今回は参考サイトのコード例から色々頂いて、とりあえず定番的な、安全重視なコードになっている。

コードの追加箇所:

  • functions.php  には最初のコードウインドウに記載されたコードを追加する。
  • content.php  と  content-page.php  には 2 番目のコードウインドウに記載されたコードをそれぞれ追加する。

※各ファイルは  \wp-content\themes\twentyfourteen  ディレクトリにある。
コードを変更する前には必ずファイルのバックアップをとる。

Mobile Detect  のダウンロードとサーバーへのアップロード:

  • 1) ダウンロード先: mobiledetect  へ行き  Mobile-Detect-2.8.17.zip(2015/12/23 現在)をダウンロードする。
  • 2) …\wp_content\themes\twentyfourteen  の中にフォルダを作成する。名前は任意で良いが、私は  [ lib ]  という名前を付けてある。
  • 3) 圧縮ファイルをローカルの適当なディレクトリで解凍し、…\Mobile-Detect-2.8.17 フォルダの中の  Mobile_Detect.php  を作成したフォルダにアップロードする。他のファイルやフォルダは気にしなくて良い。

※もしフォルダ名を  [lib]  以外の名前にしたら、最初のコードウインドウの「require get_template_directory() . ‘/lib/Mobile_Detect.php’;」の  lib  のところをその名前に変える。

functions.php  の末尾に追加したコード:

このコードを配置すると、コンテンツサイドバーのウィジェット テキストにショートコードを書いて実行させることができる。ショートコードは  [[writeadcode]]  だ。

content.php などに追加したコード:

content.php  は 70 行目から、content-page.php  では 30 行目から追加する。
どちらも追加箇所は <!– .entry-content –> のすぐ後ろだ。行番号は、Twenty Fourteen  のバージョンが違うと例とは違っている可能性がある。

サンプルコードの本体は  content.php  の分はコードウインドウの 12 行目~32行 目まで。content-page.php の分は同じく 45 行目~63 行目までとなっている。

ではいつものとおり、色々参考にさせて頂いたリンクを挙げておく。
実は、他にも大変参考になったサイトがあったのだが、リンクをブックマークし忘れたためリストに入れることができなかった。何とか探し当てて追加したいと思っている。

ショートコード API のリファレンスとプラグイン/API フィルターフック一覧:

WordPress Codex  日本語版:ショートコード  API
WordPress Codex  日本語版:プラグイン/API  フィルター一覧

参考サイト:

Cyncer:php  で  PC  とスマホを判別する方法  [Mobile Detect]
Young Flavor:WordPress  でスマホとそれ以外を切り替える方法
Stephanie Leary:using shortcodes everywhere
WordPress  フォーラム:プラグインのショートコードをサイドバーで表示させたい。

注1:(戻る
一番の勘違いは、AdSense のコードが書き込まれたブロックを CSS(Cascading Style Sheets)などで非表示に設定すれば大丈夫だろう、という考えだ。
確かにブロックはディスプレイ上で非表示になるが、コードは残ったままになる。つまり「見えないけどサービスとしては働いている」という、広告スポンサーや サービス提供者に対してまことに失礼な状況になるのだ。
表示・非表示のコントロールは「表示/非表示 = コードあり/コードなし」でなければいけない。

 

スポンサーリンク

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です