まえおき
カッコいいサイトを見つけ、「どうやってんだろ?」とソースを開き、css や js 部分を観察すると、「おや?AdSense のコードも思いっきり変更してるぞ・・・?」 というケースをよく見かける。
- 改行を全部なくしちゃう程度のモノ
- ins タグ内のコードを全部 js の変数に入れちゃうモノ
- 広告コードがドコにあるのか分からないモノ
まあ、色々ある。 企業・個人 問わず、カッコいいサイトだとかなりの確率で見かける。
そして、「これ、変更していいのかなあ?」と「これくらいならやって良いんだ。」
という 2つの気持ちが半々くらいになり、モヤっとする。
という事で、
AdSense コードの変更は、ドコまでOKで、ドコから NG になるのか?
を調査してみたので、その結果をこのページにまとめておく。
まえおき おわり。 以下本文。
この調査を行った日
とりあえず、調査日を記しておく。
調査日: 2026年 2月4日~5日。この日時点では、こういう規約だった。
公式ドキュメントで探してみる
まずは、AdSense プログラム ポリシー で確認してみる。
- AdSense プログラム ポリシー
https://support.google.com/adsense/answer/48182?hl=ja
- 広告の動作
パブリッシャー様は、広告の掲載結果を作為的に高めたり、広告主様に損害を与えたりすることがない場合に限り、AdSense 広告コードに変更を加えることができます。詳しくは、AdSense 広告コードの修正に関する説明をご確認ください。
- 広告の動作
おおう。いきなり 1発目で コード変更OKの情報を得てしまった。
しかも、「悪意がなく正常動作するコード」であれば、かなりの変更が許されるようにも読める。今はコード変更に対してかなり緩いのか。
2007~2008年頃は「ちょっとでもコード改変したら規約違反だぞ」的な雰囲気がビシビシと伝わる文章が書いてあり、みんなコードの改変には神経質だった記憶があるが、、、
いつの間にこんなコトに。
また、「広告コードの変更」についても、具体例を示している文書を、公式ドキュメント内でいくつか見つけることが出来た。
広告コードの変更について記載のあるURL
以下のリンクは、すべて公式、もしくは公式に近いリンク。
すべてを見つけ、ここに掲載できているワケではないと思うが、とりあえず発見できたものを掲載する。
- An async script for AdSense tagging - Google Developers Blog
- これは公式ドキュメントではなく、Google 開発者ブログ。
- <script async src="..."></script> の部分
ページ内で1回だけ読み込めば良い、と書いてある。
やっぱり、広告全部に js 読み込みを入れる必要はなかったのだ。
- レスポンシブ広告のタグパラメータの使用方法 - Google AdSense ヘルプ
- レスポンシブ広告の パラメータ
data-ad-format
data-full-width-responsive
この2つの コード変更 について記述がある。
- レスポンシブ広告の パラメータ
- レスポンシブ広告コードを修正する方法 - Google AdSense ヘルプ
- <ins> タグ内の修整について2点
<ins> タグ の class名を追加してもOK
直接 style タグを追加してもOK
(というか、レスポンシブ広告は横幅を明示した方が良いのかもしれない) - 条件によっては display: none; で広告非表示もOK
@media (max-width: 400px) { .adslot_1 { display: none; } }
等、メディアクエリを使用して、「特定の画面サイズ」で広告を隠すように広告コードを変更してもOKらしい。 - ※注意
レスポンシブ広告コードを変更する場合、以下2行は削除との事。
data-ad-format="auto"
data-full-width-responsive="true"
- <ins> タグ内の修整について2点
- AdSense のポリシーで許可されている広告の特殊な掲載方法
- スクリプト使用の許可
「AdSense 広告コードの動作やターゲット設定を変更することは禁止」だが、
「ユーザーがボックスをクリックすることで広告ユニットを閉じることを可能にするスクリプトの使用は許可されています。」とある。
- スクリプト使用の許可
- AdSense 広告コードの修正 ポリシー
- 広告コードの修正は、何がダメで何がOKか、ここにまとまっている
- 禁止されたコードの改変方法
- display:none などで広告を隠すのダメ(レスポンシブは条件によってOK)
- 広告がコンテンツを隠すのダメ
コンテンツが広告を隠すのダメ - モバイル or レスポンシブ デザインのサイトでコンテンツと広告が重なるような配置はダメ
- 非表示キーワードやiframe などで広告のターゲット設定を操作ダメ
- メールやソフトウェアで広告配信ダメ
- 画面内にスライドイン、ズームイン、ズームアウト等の動きをさせたらダメ
- モバイル ウェブページでドラッグ操作を行ったときに広告クリックを発生させるのダメ
- 改変が許可されるケース
- レスポンシブデザイン
先に書いたような、<ins> タグへの class や style の追加、 display: none; による表示の制御等 OK - A/B テスト
script 内に if 文を入れて条件変更。
google_ad_slot の AB テスト OK - 動的にカスタム チャネルを設定する
こちらも script 内に if 文を入れて条件変更。
条件は、自分で決めてOKっぽい。
google_ad_channel の AB テスト OK
- 補足: google_ad_slot と google_ad_channel の違い
- google_ad_slot
広告ユニットを識別する固有のID
※ 非同期コードでは data-ad-slot - google_ad_channel
広告ユニットをグループ化し、レポートで分析するためのID
※ 今はどうやってチャネル指定するのだ?
※ AdSense 管理画面を 7~8年 触っていないので良く分からん
- 広告タグを最小化
良く分からん。
広告コード内の「何が省略OKか」「ドコの改行を詰めてもOKか」という所が書かれているのかな?
- レスポンシブデザイン
その他、見つけたドキュメント
以下は、コード変更とは直接関係ないが、コイツもここに記録を残しておく
- ディスプレイ広告ユニットのレスポンシブな動作について - Google AdSense ヘルプ
レスポンシブ形式のディスプレイ広告ユニットは、以下の特徴がある- デバイスの向きが変わってページ レイアウトが変化した場合、AdSense コードは新しいページ レイアウトに合った適切なサイズの広告を新たにリクエストして表示する。
※ そして表示されていた元の広告はキャッシュに保存される。 - モバイル デバイスに「全幅広告」を表示するパラメータがある。
- 注意事項1
「ページが完全に読み込まれるまで広告を非表示にするスクリプト」を使用していた場合、広告コードは「レスポンシブ広告ユニットに必要なサイズを算出することができない」 - 注意事項2
親コンテナに明示的に横幅が設定されていない場合、広告コードはレスポンシブ広告ユニットに必要なサイズを算出することができない。 - 注意事項3
レスポンシブ広告はデバイスやブラウザの種類によって高さが異なるため、高さが固定または制限されているコンテナには設置しない。 - 上記の注意事項 1~3 のどれかに該当する場合
コードを修正し、CSS メディアクエリを使って親コンテナのサイズを設定する >レスポンシブ広告コードを修正する方法 - Google AdSense ヘルプ - その他
モバイル デバイスの接続状況が良くない場合、広告コードが親コンテナの幅に最適な高さを算出している間にブラウザのリフローが発生する可能性がある。
> リフローの低減方法:ブラウザのリフローを最小限にする | PageSpeed Insights | Google for Developers
- デバイスの向きが変わってページ レイアウトが変化した場合、AdSense コードは新しいページ レイアウトに合った適切なサイズの広告を新たにリクエストして表示する。
調査はここで終了とする。
まとめ
いろいろ読んでみたが、 AdSense プログラム ポリシー の「パブリッシャー様は、広告の掲載結果を作為的に高めたり、広告主様に損害を与えたりすることがない場合に限り、AdSense 広告コードに変更を加えることができます。」の一文に、答えが集約されているように感じた。
- やはり、「悪意がなく正常動作するコードであればかなりの変更が許される」という解釈で良いようだ。
- この件について、「どこまでOKで、どこから NGか?」を ChatGPT と Gemini に聞いてみたが、どちらもははっきり答えてくれない。かなりウヤムヤに答える。つまり ケースバイケースで、答えはないのだ。
- 余談
AI に対してどんどん質問を追い込んでいくと、政治家の回答や、入社試験の合否でよくある「総合的に判断して」という感じの回答をするようになってしまい、ちょっと面白かった。AI も言葉を濁す時はこの文言を使うのだ。
- 余談
個人的に「あれれ?」と思った事
色々と読んでいて、以下が気になった
- 「一つのレスポンシブ広告」を
- 1024px 未満では「フッター広告」で
- 1024px 以上では「サイドバー広告」で
- さらに、デバイスがPCであれば「追尾広告」に変更
(つまり、広告主サイドから見ると不利益を被る設計になりそうだ。)
この場合、コードを変更しなくても規約違反になりそうな気配がある。
これは気を付けよう。
これについて、公式ドキュメントで「明確に禁止と書かれている文章」を見つけたワケではないが、一つの広告を異なる場所で使いまわしたり、複数の役割を持たせたり、という行為は控えた方が良さそうかな、と感じた。
(こういう時こそ、AdSense コード内 に if 文を入れて、積極的に コード変更して ad-slot や チャネルを切り替えろ、という事なのだろう。)
次の課題
さてここで、冒頭で書いた文章に戻る。
「カッコいいサイトを見つけ、「どうやってんだろ?」とソースを開き、css や js 部分を観察すると・・・・」
と書いたのは、今回 余所様のサイトで以下のようなコードを見つけたからである。
javascript
// 広告ユニットIDを定義
const adSlotId = "1234567890";
const adClient = "ca-pub-xxxxxxxxxxxxxxxx";
// テンプレートリテラルで広告コードを作成
const adCode = `
<script async src="https://pagead2.googlesyndication.com{adClient}" crossorigin="anonymous"></script>
<!-- 広告ユニット名 -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="${adClient}"
data-ad-slot="${adSlotId}"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
`;
// 挿入先要素を取得してHTMLをセット
document.getElementById('ad-container').innerHTML = adCode;
※ コードはかなりシンプルにまとめなおした。
というか、AI に該当部分のみを応用しやすい形で抜き出してもらった。
AI に聞いてみて良かった。
「テンプレートリテラル」というキーワードを教えてもらった。
なるほど、コレはそういう名称のテクニックなのか。
このコードを見た時、「こんな変更して良いのか?」とか「企業 or 担当者が付いていればOKなのか?」などと考えてしまい、それが今回の調査のキッカケとなった。
そして、現在の プログラム ポリシー を読む限り、
- 「広告の動作は変わっていない」
- 「テンプレートリテラル内では、おかしな変更も見られない」
(ほぼ配布コードのまま)
等々の状況から、この程度までの変更であれば問題がないのだろう、とも理解した。
なんか、チョット試してみたいぞ。
という事で次回更新は、この「テンプレートリテラル」について色々学んで、それをメモを残すことにしよう。
今回の更新は以上。つづく。