カテゴリー
Twenty Twenty

Twenty Twenty 8、アドセンス自動広告

Twenty Twentyのfunctions.phpにGoogleアドセンスの自動広告、AMP自動広告コードを貼りました。でもプラグインがおすすめ。

【2020年3月更新】

Googleアドセンスの自動広告コードは、一般的には、プラグインを使うっポイです。

個人的には、これだけの為にプラグインを入れるのがイヤだったので、functions.phpに追記する形式にしました。

※コード自体は、「初心者向けの万能テーマ」以外であれば、喧嘩しないので、いろんなテーマで使いまわしています。

functions.phpの場所

外観 → テーマエディタ → 編集するテーマを選択:子テーマを選択 → functions.phpに入って下記をコピペ

Twenty Nineteen、アドセンス

functions.phpを編集する際は画面が真っ白になったり、ログインできなくてサーバーに復旧に行ったりしないといけなくなったりするので、バックアップを取って、慎重に!

※画像は「Twenty Nineteen」の画像を転用していますが、右上で、「Twenty Twenty」の子テーマを選んでください。

※閉まっているコードの後ろに丸ごとくっつけるように書いているので、下のコードを使ってエラーが出るという場合は、最初の「<?php」と最後の「?>」を取り除けばいいカモ。

自動広告(普通のウェブページ)

このコードは「投稿のみ」かつ「ログインしていない時」という条件が入っています。

<?php function additional_head_script() {
    if ( is_single() && !is_user_logged_in() ): ?>
    <script data-ad-client="ca-pub-XXXXXXXXXXXXXXXX" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<?php endif; }
add_action( 'wp_head', 'additional_head_script' );
?>

“ca-pub-XXXXXXXXXXXXXXXX”の部分をご自分のコードに変更されれば、サイトのすべてのページに入ります。

自動広告(Accelerated Mobile Page)

AMP自動広告はheadとbodyの2か所にコードを入れます。

まずはHead用のコードをfunctions.phpに追記します。

<?php function amp_additional_head_script () {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'amp') !== false): ?>
<script async custom-element="amp-auto-ads"
src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js">
</script>
<?php endif;
}
add_action( 'wp_head', 'amp_additional_head_script' ); ?>

つぎにbodyタグの直ぐ下用のコードもfunctions.phpに追記します。

<?php function amp_additional_body_script () {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'amp') !== false): ?>
<amp-auto-ads type="adsense"
data-ad-client="ca-pub-XXXXXXXXXXXXXXXX">
</amp-auto-ads>
<?php endif;
}
add_action( 'wp_body_open', 'amp_additional_body_script' ); ?>

「AMP」というプラグインを使ってAMP化しています。ネットで紹介されていたフック(amp_post_template_head, amp_post_template_footer)を上手く機能させられませんでした。

AMPネイティブじゃなくて、トランジッションを選んだので、URLに「AMP」という文言が含まれていたらコードを挿入するというロジックにしました。

あと、AMPページはプレビューとかしないので、「if ( is_single() && !is_user_logged_in() ):」(投稿ページのみかつログインしていない時)の条件を入れていませんw

これは大分微妙カモ?

プラグインがおすすめです。残念ながら個人的に使わないですから紹介とかはできません。ごめんなさいまし。

参考資料:Codex「do_action( ‘wp_body_open’ )」、Stackoverflow「Check if URL has certain string with PHP

最後までお読みいただきましてありがとうございました。

作成者: のろのろ

ゲーマーで、トレッキーに片足突っこんでいる、SF好きの、雑記ブロガーです。

「Twenty Twenty 8、アドセンス自動広告」への4件の返信

はじめまして。
fuyuzと申します。
こちらのサイトで知ったTwenty Twenty でサイトを作りました。
シンプルで理想のテーマです。

しかしGoogle Adsence広告を設置すると、どうしてもサイト上部に広告が出てしまいます。
プラグインを使ってafter post としても上部にしか表示されません。
のろのろさん のように投稿記事の後に広告を表示する方法はありますか?
ご教授お願いします。
(いまは広告は表示してません)

こんにちは。
Twenty Twenty、きれいなテーマですよね。うんうん。

このサイトのGoogle Adsenseの広告は、アドセンス側の管理画面で、自動広告をオン、「ページ内広告」以外をオフ、広告の読み込みはバーの8分目ぐらいの設定になっていました。それ以外は何も触っていないです。

私のサイトでは、アドセンスの管理画面でプレビューしてみても、画面上部に広告候補として出てくるページがなくて、よくわかりませんでした。
https://support.google.com/adsense/thread/19956016?hl=ja

他のヘルプセンターの記事を見てみても、「自動広告をオフにして、マニュアルで広告ユニットを作る」みたいな回答しか見つからなくて、もやっとしますね。

お力になれず申し訳ないです。m(__)m

のろのろさん、丁寧にありがとうございました。
とうぶんはアソシエイトで頑張ってみます。

コメントを残す

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