AMP自動広告を使っているのなんて、私ぐらいだろうけれど、テーマを変えてから広告コードを入れ忘れているのに気づいたので、今更加えました。あはは。

ヘッダーのスクリプト

<?php $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; ?>

URLが「?amp」という文言を含むとき、広告コードを書き出す。

※AMPスクリプトに変えないといけないのじゃないかと思ったのですが、そのままでも広告が表示されていました。

※使用しているテーマは「Twenty Nineteen」、使用しているプラグインは「AMP」で、モードは「Transitional」。

子テーマにheader.phpのコピーを作って、headの最後尾に入れます。

ボディーの広告コード

<?php $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; ?>

同じく、URLが「?amp」という文言を含むとき、広告コードを書き出す。

こちらはbodyの冒頭に入れました。

ちゃんと表示されていて、ちょっと感動。

参考資料:Stackoverflow「Check if URL has certain string with PHP

AMPモードに切り替えた瞬間にログインしていないことになってしまう模様で、「ログインしていたら広告を非表示」の条件を頑張って入れようとして、ムダ骨を折ってしまいました。

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

投稿者: のろのろ

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

コメントを残す

メールアドレスが公開されることはありません。

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