AMPエラー
こんにちはchessinuです。
今回の記事はタイトル通り
「The tag ‘amp-auto-ads(amp-ad) extension .js script’ appears more than once in the document.」This will soon be an error.
“タグ「amp-auto-ads(amp-ad) extension .js script」がドキュメントに複数回表示されています。これはまもなくエラーになります。”
というAMPエラーの対処法について紹介します。
どういう意味?
このエラーはざっくり言うと
「同じscript(タグ)を複数個いれないでください。」
っていう感じです。
AMPの場合、自動広告・広告ユニットどちらであろうと必ず<head>タグ内に指定のスクリプト(コード)をいれる必要があります。
<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>
もしいれないで、<body>タグ内に広告コードをいれると
- The tag ‘amp-auto-ads’ requires including the ‘amp-auto-ads’ extension JavaScript.
“タグ ‘amp-auto-ads’には、 ‘amp-auto-ads’拡張JavaScriptを含める必要があります。” - The tag ‘amp-ad extension .js script’ is missing or incorrect, but required by ‘amp-ad’. This will soon be an error.
“タグ「amp-ad extension .js script」が欠落しているか正しくありませんが、「amp-ad」では必須です。これはまもなくエラーになります。”
などのエラーが発生してしまいますので、必ず<head>タグ内に設置しなければなりません。
原因
そして恐らくこのエラーが出る原因は
- 手動で指定コードを2つ以上いれている。
- プラグインなどの設定ミスにより指定コードを2つ以上いれている。
- 以前に自分で追加したphpなどのコードが何らかの干渉を起こしている。
- WordPressのテーマ制作側でもともといれてあるコードが原因。
上記の4つのケースがほとんどだろうと考えます。
特に4番目のWordPressの有料テーマなどを使用している人は、ほとんどが「AMP化対応のためテーマ独自に付属してくるプラグイン等」を使用しているかと思います。
推測
で、結論から言うとこいつが悪さをしている可能性がかなり高いですね。
自分も手動で指定コードを<head>の中に貼り付けた後、Google側からAMPエラーがあるから直せとの御達しがありました。
どこかに間違えて複数個入れてしまったのかと確認しましたが特に見つからず、仕方がないので例のサイトにてチェックをします。
とりあえず付けている自動・ユニット両方のAMPの指定コードを全て外し検証してみるとこの様にエラーが出ない
やはり既に自動(“amp-auto-ads”)・ユニット(“amp-ad”)の指定コードが1個ずつ入っている…
<!doctype html>
<html ⚡ lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js">
</script> <script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
問題解決
ということでAMP化対応のプラグインの仕業だと確信したので早速調査へ。
[プラグイン]->[プラグインエディター]->[〇〇AMP]
とここまで来たのは良いのだが、肝心のコードが書いてある場所がイマイチ良くわからないのでそれらしい所を片っ端から「CTRL+F」→「amp-ad」で検索をかけていくと
[〇〇AMP]->[include]->[post-template-action.php]
という場所で発見!!
echo '<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>';
$dis_auto_ads = get_theme_mod( 'abcd_amp_dis_auto_ads' );
if( ! $dis_auto_ads ){
echo '<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>';
案の定「echo」で召喚してたせいでダブってたのか…
早速両方の不必要なコードをコメントアウトし、手動でコードを入れた状態でもう一度検証してみると…
よしOK!手間かけさせやがって…広告いっぱい貼ってやるからなぁ笑
終わりに
とまぁこんな感じで直りましたが、皆さんもこの方法で是非試してみてください。(直らなかったらすいません笑)
それではまた別の記事でお会いしましょう!
この記事が気に入りましたら、下のアイコンをクリックしてSNSシェアの方をお願いします!
【おすすめ記事です】