IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / Google / AdSense 記事内広告が表示されないので自前で表示

AdSense 記事内広告が表示されないので自前で表示

2019/08/29 Google, javascript, はてなブログ

はてなブログに Google AdSense の自動広告を入れてみたのですが、記事内広告だけが表示されません。

いろいろググってみても解決策は見つからず、結局、本文の内容(文字数?)なのかなとあきらめ、自前で入れることにしました。

  • 記事内広告のコードを取得する
  • Javascript でコードを挿入する
    • 所得したコード
    • Javascript
  • なぜか問題が…

記事内広告のコードを取得する

AdSense > 広告ユニット > 記事内広告 へ行きます。

広告ユニット名を指定し、保存してコードを取得 をクリックします。

コードをコピーします。

Javascript でコードを挿入する

自動広告の場合は、 <head></head> に指定コードを入れておけば、自動で記事内にいくつか広告が入るんだろうと思います。しかし、広告ユニットの場合は自前で記事内にコードを入れるしかありませんので、記事を書くたびに挿入するのは面倒です。Javascript で記事内にコードを挿入しましょう。

所得したコード

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-****************"
     data-ad-slot="**********"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

一行目の <script></script> は <head></head> に入れておきます。

二行目からの <ins></ins> 以降は Javascript で処理します。

Javascript

記事内の20要素おきに挿入する場合の一例です。

※自由に使っていただいて構いませんが、転載はしないでください。

(function(){
    const ad = function(){
        const adsScript = document.createElement('script');
        adsScript.text = '(adsbygoogle = window.adsbygoogle || []).push({});';
        const adsDiv = document.createElement('div');
        // 見やすいように複数行にしてありますが、<ins></ins> を一行にしてもOK
        adsDiv.innerHTML = '<ins class="adsbygoogle" '
        + 'style="display:block; text-align:center;" '
        + 'data-ad-layout="in-article" '
        + 'data-ad-format="fluid" '
        + 'data-ad-client="ca-pub-****************" '
        + 'data-ad-slot="**********"></ins>';
        adsDiv.appendChild(adsScript);
        return adsDiv;
    }


    const page = document.body.classList;
    // 記事ページの場合
    if(page.contains('page-entry')){
        const adsDiv = ad();
        const article = document.getElementsByClassName('entry-content')[0];
        const pars = article.children;
        Array.prototype.forEach.call(pars, function(par, index){
        // 記事内の20要素おきに挿入
            if((index % 20) == 1){
                article.insertBefore(adsDiv.cloneNode(true), par);
            }
        });
    }
}());

<script></script> で括って デザイン > カスタマイズ > フッタ に入れます。

なぜか問題が…

他の記事は問題なく記事内広告が表示されるのに、なぜかこの記事だけ表示されません。それもPCだけでスマホは表示されます。

原因不明です。後日ですね。

(2019/8/30)あれ? 今朝になったら表示されてます…。ただ、なにか原因がありそうです。なお、このサイトは大見出し(H3タグ)の直前に入れるようにしています。

(improvement)はてなブログのカテゴリー階層化
はてなブログのサイドバーをウィンドウ下に粘着
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com