Google Adsenseの設定を四苦八苦した

数日前に、Googleから以下のメールが来た。

公式 AdSense プラグインを無効化し、WordPress サイトに AdSense 広告を設置し直しましょう

お客様のサイト運営者 ID: ca-pub-XXXXXXXXXXXXXXXX

お客様

平素より AdSense をご利用いただきありがとうございます。現在お客様は WordPress サイトで公式 WordPress 用 AdSense プラグインを使用されていますが、同プラグインのサポートを数か月中に終了させていただくこととなりました。

変更の内容

公式 WordPress 用 AdSense プラグインのサポートを 2017 年 5 月に終了させていただきます。サポート終了後は、広告の設定変更や広告ユニットの編集を、AdSense プラグインから直接行うことはできません。既存の広告ユニットの広告掲載は続行されますが、変更を加えることはできなくなります。

推奨される対処方法

サイトのユーザー エクスペリエンスを向上させるとともに、広告ユニットを編集できる環境を維持していただくため、以下の対応をおすすめいたします。

1.WordPress サイトをバックアップします。

2.公式 WordPress 用 AdSense プラグインを無効化します(同時に既存の AdSense 広告を削除します)。

3.以下のいずれかの方法で AdSense 広告の掲載を続けます。

方法 1: QuickStart を使って広告を表示する

簡単な「ページ単位の広告コード」を追加することでサイトを AdSense とリンクし、AdSense に自動的に広告を表示させることができます。ページにコードを追加した後は、AdSense 管理画面でスイッチをオンにするだけで、自動的に広告の掲載が始まります。

この場合、別の WordPress プラグインを使って WordPress サイト テンプレートの セクションを編集する必要があります。

QuickStart を使用

方法 2: カスタム AdSense 広告を表示する

WordPress ウィジェットを使って広告ユニットを挿入すれば、独自の広告ユニットを作成、配置することができます。

この場合、WordPress でテキスト ウィジェットを作成 して、広告ユニットのコードをウィジェット内に貼り付けます。

カスタム広告ユニットを作成

4.AdSense の広告の配置に関するポリシー が遵守されていることを確認します。

5.公式 AdSense プラグインを完全に削除します。

6.任意: Google Search Console を引き続き利用される場合は、サイトの所有権を確認 してください。

この変更の詳細 は AdSense ヘルプセンターでご確認いただけます。

今後ともよろしくお願い申し上げます。
Google AdSense チーム

ご不明な点がございましたら、AdSense ヘルプセンター をご覧になるか、ヘルプ フォーラム で AdSense のスペシャリストにご相談ください。

Google Inc. 1600 Amphitheatre Parkway, Mountain View, CA 94043

このメールは AdSense、Ad Exchange の各種サービスやアカウントの重要な更新についてお知らせするもので、メール通知の設定に関わらず、すべてのお客様にお送りしています。

うちのサイトではGoogle Adsenseを使っているけど、正直言って収益はスズメの涙だ。まあ儲けることを目的にしたサイトではないので、サーバ維持代程度は稼げるアドセンスで一応は十分と言えば十分なのではあるけど。
とは言え、使えなくなりますから変更してくださいと言うのは困る。仕方なく対応をしたのだが、結構四苦八苦苦労してしまった。まあ僕がGoogle Adsenseに関してたいして知らないことが一番の問題なのだけど。で、対応策は結構堂々めぐりして無駄な作業をしまくったので、一応その苦労を備忘。
なお、本文では自分のサイトのアドセンスID?、pub-XXXXXXXXXXXXXXXXはモザイクをかけてあるが、こんなもんこのページのソースを見れば書いてあるので、いちいち隠す必要はないと思う。まあ個人情報だと思ったので一応隠してだけみた。

結論から言うと、「メールにある通りの【方法 1: QuickStart を使って広告を表示する】はよろしくなく、素直にカスタム広告ユニットを作り直してWordpressのテーマファイル内に書き込んだ方が良い」である。
以下はいろいろ堂々巡りした内容の具体例。

1. 概要

まず、前提条件としてうちではGoogle Adsenseが
https://www.chatarou.net:現ちゃたろうふぁんくらぶ:(Worppressサイト)
https://old.chatarou.net:旧ちゃたろうふぁんくらぶ:(独自CGIの日記サイト)
https://scrapbook.chatarou.net:ちゃたろう自由研究:(MovableTypeサイト)
に貼られていた。それぞれ管理しているパッケージが違うのでアドセンスコードの貼り方が違う。
まず、『現在のちゃたろうふぁんくらぶ』ではWordPressでサイトを構築しているので、WordPressのプラグイン(Google AdSense)でコードを生成・管理していた。このプラグインはGoogle謹製のプラグインで、既存のテーマに対してテーマのソースを一々書き換えることなく、Google AdSenseプラグインの設定でGUIにコードを設定することができ、とても簡単で便利なプラグインだった。今回メールが届いたのはこのプラグインを使っていたからだと思われる。
次に、『旧ちゃたろうふぁんくらぶ』は自分が独自に書き下ろした日記生成CGIでサイトを構築している。のでCGIスクリプトのコードの中にべた書きでGoogle Adsenseのコードが書き込まれていた。このアドセンスコードを作ったのはもう10年ぐらい前の話だと思われるので、多分今のモダンなコードの書き方とは大幅に違っている。サイトのレイアウトに合わせてカスタムの広告ユニットを作って、それが貼られている。
最後に、『ちゃたろう自由研究』はこれも古くにMovableTypeで作成したブログと言うかCMS実験サイトで、これはテーマと言うかテンプレートファイルの中に直接カスタムの広告ユニットのコードが貼り付けられていた。

2. QuickStart 広告を有効にする(失敗)

※この項目は失敗した作業なので読むだけで実践しなくていい。

で、今回は『現在のちゃたろうふぁんくらぶ』に問題があるのでそれを修正してくれ、と言う内容のメールだと解釈して、まず『現在のちゃたろうふぁんくらぶ』のGoogle Adsenseプラグインを停止することとした。その際の対応方法は、今度はタグ内に以下のようなコードを書いた後、QuickStart 広告を有効にするのが対応策だと書かれていたのでそれに従った。


まずAdsenseの管理ページで上記の【広告の設定】- 【ページ単位の広告】を選択。


【ページ単位の広告のコードをページに配置する】から【< >コードを取得する】をクリックすると、以下のようなコードを取得できるので、それをメモっておき、サイトの各ページのタグ内に書き込む。

<script async src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: “ca-pub-XXXXXXXXXXXXXXXX”,
enable_page_level_ads: true
});
</script>


コードはこんな感じにポップアップで表示されて、該当テキストエリアをクリックすると自動で全選択になるのでコピーする。大概のWordpressのテーマファイルはタグの内容は【外観】-【テーマの編集】から【テーマヘッダー(header.php)】内に書かれていると思うので適時修正をかける。
で、QuickStart広告を有効にするのだが(トグルがあるのでクリックして有効にする。トグルは(|)-(o)となっているうち、左側の(|)側がONで、この時トグルが青色になる。)


だがこんな感じにエラーメッセージが出てQuickStart広告が使えないようである。
(※なお、後でいろいろいじくって確認した感じでは、このエラーメッセージが出ていても【ページ単位の広告のコード】は有効になっているらしく、【ページ単位の広告のコード】をタグに貼り付けてあるページでは一応広告は出ていた。)

と言うことで、単純に【QuickStart広告を有効にする】と言う作業はどうやら失敗したらしい。エラーメッセージを読み解くに、『まだどこかで【カスタム広告ユニット】を使っているからQuickStart広告を有効にできないよ』と言う事らしい。
…が、先ほど書いたように【カスタム広告ユニット】はWordpressサイト以外の古いサイト等々では現役で使っている
WordpressサイトのプラグインをOFFにする為には過去の資産ページの広告設定も全部修正しないといけないということ!?

3. カスタム広告ユニットを廃止してみる(失敗)

※この作業も結局挫折したので、読むだけで実践不要。

と言うことで、重い腰を上げる心づもりでその他の旧ちゃたろうふぁんくらぶ/ちゃたろう自由研究も広告コードを貼り換えた。
作業的にはCGIで構築したサイトは面倒くさいがHTML吐き出しの処理をしているPerlソースを読んで、過去の【カスタム広告ユニット】のHTMLソースになる部分をコメントアウトで消去し、新しくタグを書きだす処理の中に【ページ単位の広告のコード】を書き込んだ。
MovableTypeで構築したサイトはHTMLの書き出しにテンプレート的なものを制作していたので(具体的にどうやって構築したのかなんてすっかり忘れているが)、テンプレートファイルを検索してこちらも【カスタム広告ユニット】の記述を削除し、【ページ単位の広告のコード】を書き込んだ。
これでおそらくレガシーな【カスタム広告ユニット】はすべて無くなって、【ページ単位の広告のコード】になったはずである。…ので改めてQuickStart広告を有効にするのだがやっぱり同様に『カスタム広告ユニットをご利用中のため、QuickStart 広告は併用できません。 ヘルプ』と言うメッセージが出てしまうのである。
仕方なく、アドセンスの設定ページ等々をつらつらと眺めて、いったん過去の資産ページでのAdsenseを無効化できそうな設定を探してみた。


こんな感じに【設定】-【自分のサイト】と進む。すると、自分のアドセンスコードが貼られているサイトが一覧として表示される。表示されて見ると、すごーく昔に作って今や完全放置してある記憶のかなたのサイトもログに残っていた。


こんな風に一覧が出てくるので、右上にある設定ボタンから設定を探していく。


この【サイトの確認を解除】はいまいち使い方が分からなかったので省略。中身としては次の次に書く各サイトを有効にする/無効にする設定画面を出すのと同じ役割だと思う。


この【サイトの認証】から設定を変更する。これをクリックすると


こんな感じに設定を有効化するトグルボタンが出てくるので有効化する。多分これで、【サイトの確認を解除】で解除したサイトは自分のサイトではないと認識され、【カスタム広告ユニット】が貼られていても無視されることを期待した。


この各ドメイン名の右端にあるマークをクリックして詳細を展開する。多分このマークと【サイトの確認を解除】のボタンの意味合いは同じなんだと思う。


こんな感じに展開される。この時、トップレベルドメインの右端にあるトグルアイコンをクリックして無効化するとそのトップレベルドメインすべてでサイトの認証がOFFになるのだと思う。


こんな感じにドメインの詳細が出てくる。ここでも各ドメイン名の右端にあるマークをクリックして詳細を展開する。その後、【確認済みのサイト】のトグルをOFFにすることでOFFにしたサイトは自分のサイトではないと認識され、【カスタム広告ユニット】が貼られていても無視されることを期待した。

と言う設定項目をつらつらといじって挙動を観察してみた。
が、結局いろいろトライ&エラーを重ねてみたが、勢い余って全部の認証をOFFにしても先のページに戻ってのQuickStart広告を有効にさせることができなかった
多分、作業後すぐにQuickStart広告の設定をいじっていたのも良くなかったのかもしれない。数時間~1日程度待ってからQuickStart広告を有効にさせる検討をしても良かったが、さすがに馬鹿馬鹿しくなってきたのでこの辺の作業はすべて失敗と判断し、全部作業を手戻りさせた。

4. 方法 2: カスタム AdSense 広告を表示する

以上、大項目2. および3. の作業を試行錯誤して達した結論は、『QuickStart広告を使うのは諦めよう』だった。
今から新しくサイトを作り、アドセンスを契約し、コードを貼り付けていくのならQuickStart広告と言うのは楽チンで便利なツールなのかもしれない。が僕のように古いレガシーを抱え込んでしまっている人間には、古いものをリフレッシュさせて新しいアドセンスコード方法を全サイトに適用させていくのは無理、と判断した。
ので、最初にもらったメールに戻ってみての『方法 2: カスタム AdSense 広告を表示する』の方の手順を踏めば良かっただけなのである。
なお、ここに至って、旧ちゃたろうふぁんくらぶ/ちゃたろう自由研究に関しても一旦作業した【カスタム広告ユニット】を削除して【ページ単位の広告のコード】を貼り付けた作業も諦めて、改めて旧来の【カスタム広告ユニット】を貼り付けていた方式に戻した。

なお、余談だが、【カスタム広告ユニット】を削除して【ページ単位の広告のコード】を貼り付けた状態で、QuickStart広告が無効でも各ページにアドセンス広告は表示されるようである。がこれを試してみて分かったのは、【ページ単位の広告のコード】と言うのは各ページのどこにアドセンス広告を貼ればいいのかGoogleが勝手にサイトを構造解析して行っているようで、場合によっては【ページ単位の広告のコード】が貼られたサイトでは広告のせいでページレイアウトが崩れる、と言うことだった。理想的には【ページ単位の広告のコード】が貼られた状態でレイアウトが崩れないようにサイトデザインを構築することなんだろうと思う(それはすなわちサイトの評価がGoogleにとって適切に評価できるレイアウトを踏んでいるので好ましい、と思われるからだ)。
が僕のようにへたっぴで中途半端な知識で作ってあるサイトでは、申し訳ないが広告位置の指示も僕の方から具体的に指定する(=【カスタム広告ユニット】を利用する)方が安易に解決できるというのが結論だ。

カスタム広告を表示する作業は以下の通り。簡単に言ってしまえば、Google AdsenseプラグインでGUIで簡単に設定していたものを、正規の手順を踏んでWordPressのテーマファイルのソースコードに貼り付けていく、と言う作業になる。

1. まず、いったんGoogle Adsenseプラグインを再度有効化し、実際にページを表示させてどこにどんな広告を貼っていたか確認する。
確認の際には、
・HTMLの構造的にどこの部分にAdsenseコードが書かれるべきか位置を見つけておく。
・Adsense広告のサイズ(widthおよびheight)を確認しておく。
・Adsense広告はメインインデックスのテンプレート(トップページ)/個別投稿(単一エントリのページ)/個別投稿ページ(投稿したエントリ記事ではなく、固定ページ作成から作ったページ)で広告位置を変えて設定することが可能なはずなので、それぞれのページでのレイアウトを確認しておく。


メインインデックスのページ


個別投稿のページ

例えばうちのサイトでは上記のような感じ。

2. 次に、それぞれの位置に適合するカスタム広告を作成する。


GoogleAdsenseのサイトに移動し、【広告の設定】-【コンテンツ】-【広告ユニット】と移動して、カスタム広告ユニットを作成する。


【+新しい広告ユニット】を押して広告を作成する。


作成するカスタムユニットではレスポンシブ/ビッグバナー/レクタングル/etc…と広告サイズを選べる。もし、推奨広告サイズで配置できるのなら推奨してるぐらいだしそちらの方がいいだろう。僕のページ場合はレイアウトが崩れるのでカスタムサイズを使っている。
広告ユニット名は自由にルールをつけて作成すればいいが、一度作成してしまうと削除できないしサイズ変更等も出来ないので、採番しておけるようにしておいた方が無難だ。僕の場所は【(配置する場所)_日付】のようなルールでユニット名を付けた。一度作成してみてサイズが合わなかったり色設定を間違っていたりしたら日付の数字をインクリメントして修正していた(一時的に未来の日付になってしまうユニット名があっても気にしないで進めた。どうせユニットなんて頻繁に作成なんかしないし)。


するとこんな風にコードを取得できる。コードは【同期】/【非同期】が選べるがとりあえず【非同期】で使うことにした。

3. 作成したカスタム広告をWordpressのテーマに貼り付けていく。


こんな感じでWordpressで【外観】-【テーマの編集】で変更したいテーマを選んで取得したコードを貼り付けていく。取得したコードは原則改変禁止だが、スペースやタブ文字の挿入ぐらいはしても問題ない。

4. サイトを更新して確認する。


ソースコードの修正を終えたらサイトの確認をしてみる。この時点ではGoogle Adsenseプラグインで表示している広告とWordPressテーマのソースに直接書き込んだ広告が重複しているので、一時的に両方の広告が見れているはず。で両方の位置が大体同じ場所に表示できているかやサイズが問題ないかなどを確認する。
※なお、WordPressにアドセンス広告コードを書き込んだ後、Google Adsenseプラグインの方の設定管理をしてしまうとこの共存はできない。GoogleAdsense広告は1ページに3ヶ所までしか指定できないので、重複していて3ヶ所以上を超えていたりするとプラグイン設定ページでエラーを吐いてGoogle Adsenseプラグインの方の広告は消えてしまう。

5. 問題なければ、Google Adsenseプラグインを停止し、最後に念のためもう一度サイトを表示させて確認する。

なお、この編集作業中に僕の環境ではアドセンス広告がうまく表示できない不具合が何度も発生し、ちょっと苦労した。具体的には、Wordpressテーマのソースに書き込んだにも関わらず、Firefox/Chromeでは表示されずIEでは広告該当部分にHTTP 400エラーのiframeが表示されるというものだ。
なんでだろうかとトライ&エラーで検証した結果、しばらく経つと不具合は特に原因解明もなく解消すると言うことが繰り返されたことから、おそらくGoogle Adsenseページでカスタム広告を作成した直後はカスタム広告のID(data-ad-slot)が同期完了?登録完了?しておらず、貼り付けたAdsenseコードのjsに対してエラーを返しているようだった。
しばらく表示されないがいつの間にか表示されるようになる、と言うタイムラグが概ね30分ぐらいはあったように感じるので、その場合は焦らず待った方がいいと思う。

5. まとめ

いろいろ試行錯誤させられた結果を備忘のために残したけど、一々書いた内容のほとんどは失敗のログであまり意味はなく、最初にも書いたが
WordPressのGoogle Adsenseプラグインが5月に終了してしまうことに対する対応は、Google AdsenseプラグインがGUIで半分自動的に提供してくれていたアドセンスコードの作成および貼り付けを、手順を踏んでGoogle AdsenseサイトおよびWordpressテーマファイルを編集して適応させる。QuickStartとか言うのはうまく動かない可能性が高い。
と言う簡単な結論になる。
この作業の試行錯誤で一晩無駄に浪費したので、結構疲れた。

Comment

  1. oonukitamiko より:

    はじめまして。
    とても分りやすいサイトで、お気に入りに保存させて頂いています。

    1つ教えて下さい!
    メニュー欄から[広告の設定]-[コンテンツ]-[ページ単位の広告]があるように書かれていますが、
    私の画面に「ページ単位の広告」という表示がありません。

    アドセンスからPINコードが、まだ届いていないので設定はしていません。
    コレが原因ですか?(既に1ヶ月経っていますが届きません)

    広告を自分で設定するつもりですが、勝手に広告が入ってしまい困っています><
    (サイトは2つあるのですが、2つめを設定しようとしたらです。1つめのサイトは問題ありません。)

  2. mai より:

    oonukitamikoさま

    確かに今現在確認すると、[ページ単位の広告]と言うメニューはなくなっているようですね。
    うちのサイトの記事は、僕が作業をやった時の時点での備忘なので、最新のgoogleの仕様とは変わっている場合もあります。
    記事の趣旨としては、[ページ単位の広告]の作業は失敗したよ、の場所で設定するには不要な場所ですので気にする必要はないかと思います。

    • oonukitamiko より:

      お返事ありがとうございます。
      ヘンな箇所に、勝手に広告表示されるので困っています。
      (文章と文章の間など)
      問題解決に試みます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください