ブログを始めてしばらく経ち、いよいよGoogle AdSenseに挑戦することにしました。「コードをコピーして貼り付けるだけ」と思っていたのですが、そんなに甘くはありませんでした。今回はその奮闘記をまとめます。
まず、Google AdSenseの管理画面からコードを取得しました。このコードをWordPressに設置する方法はいくつかあります。
・テーマのfunctions.phpに追加する
・header.phpに直接貼り付ける
・プラグインを使う
私はSANGOテーマを使っているのですが、テーマファイルを直接編集しようとすると「テーマを直接編集するとサイトが破損する恐れがあります」という警告が表示されました。そこでプラグインを使う方法を選択しました。
プラグインの新規追加から「Insert Headers and Footers」をインストールして有効化しました。設定画面の「ヘッダー内スクリプト」欄にAdSenseコードを貼り付けて保存しようとしたところ…
サイトにアクセスできなくなりました。
私はValue DomainでCloudflareにサイトを向けているのですが、CloudflareのWAF(Web Application Firewall)がAdSenseコードをXSS攻撃と誤判定してブロックしていたのです。
Cloudflareの管理画面でセキュリティイベントを確認すると、以下のようなログが残っていました。
・ルール:XSS, HTML Injection – Script Tag
・パス:/wordpress/wp-admin/options.php
つまり、WordPressの設定を保存しようとしたときに、scriptタグを含むコードがXSS攻撃と判定されてブロックされていたのです。
この問題を解決するために、CloudflareのWAFに「WordPress管理画面へのアクセスはセキュリティチェックをスキップする」というカスタムルールを追加しました。
セキュリティ → セキュリティルール → ルールを作成 → カスタムルール
設定内容は以下の通りです。
・ルール名:WordPress Admin Skip WAF
・条件:(http.request.uri.path contains “/wp-admin”)
・アクション:スキップ → すべての管理ルール
このルールを追加することで、WordPressの管理画面での操作がWAFにブロックされなくなりました。
実はSANGOテーマには広告設定の専用画面があることに気づきました。
SANGO設定 → 広告設定 → Google AdSense → scriptタグ
ここにAdSenseコードを入力して保存するだけでヘッダーに自動出力されます。「Insert Headers and Footers」プラグインは不要だったため削除しました。
コードの設置が完了したので、AdSense管理画面で「確認をリクエスト」を押したところ…
「お客様のサイトは確認できませんでした」
というエラーが表示されました。GoogleのクローラーがCloudflareにブロックされている可能性があったため、以下の対処をしました。
① Googlebotを許可するカスタムルールを追加
Cloudflareのセキュリティルールに以下を追加しました。
・条件:(http.user_agent contains “Googlebot”) or (http.user_agent contains “AdsBot-Google”)
・アクション:スキップ → すべての管理ルール
② Cloudflare管理ルールセットに例外ルールを追加
管理ルールセットの「例外ルールを作成する」から同様の条件でGooglebotを例外として設定しました。
③ ads.txtを設置
AdSenseの審査に必要なads.txtファイルを設置するため、「Ads.txt Manager」プラグインをインストールして以下を追加しました。
google.com, pub-9106280925767149, DIRECT, f08c47fec0942fa0
現時点ではAdSenseの審査ステータスは「要審査」です。コードの設置・ads.txtの設置・Cloudflareの設定はすべて完了しているので、あとはGoogleの審査を待つのみです。
Cloudflare環境でAdSenseを導入しようとしている方の参考になれば幸いです。
【今回使用したプラグイン・ツール】
・Ads.txt Manager
・Cloudflare(Proプラン)
・SANGOテーマ
・Google Search Console
・Google AdSense

