夜七時

2018-04-25

GAをAMPサイトに実装する

AMPで構築したこのブログに、GAを設定をしたいなぁと思ったので、調べながらトライしてみました。

AMPの公式ドキュメントを見ると、やたらと設定値がたくさんあって、戸惑いました。
AMP アナリティクスについて詳しく知る - amp.dev

細かく検証結果を見たい人や、Google Analytics以外を使いたい人は、いろいろ設定することでさらに便利に使えるようになるのです。

しかし、基本的にはシンプルな設定のみで実装できます。
もちろん、Google Analyticsも問題なく機能します。

ここでは、Google AnalyticsをAMPで実装されたサイトに導入する、基本のやり方を書いてみたいと思います。

Google Analyticsの設定をする

まずGoogle Analyticsを設定します。
Googleアカウントが必要になるので、ない人は取得しておきましょう。
ログインしましょう。

アカウント

「管理ボタン」 👉 「アカウト作成」で作成できます。
プロパティをまとめる「フォルダのような役割」 と考えると、わかりやすいです。
これは複数のサイトを管理している人にとっては便利な機能です。

サイトが一つだけの場合は、「アカウント一つに対してプロパティが一つ」という形になりますね。

プロパティ

一つのウェブサイトにつき一つ用意します。
複数のページを、プロパティに持つことも可能です。

例えば、ブログとホームページを同じドメイン上に持っている人は、分けることが可能です。

データの収集結果を、別々に見ることが可能になります。

トラッキングコードを取得する

「トラッキングコード」 👉 「グローバルサイトタグ」にアクセスして、記載されているコードを取得します。

amp-analyticsコンポーネントを読み込む

ご存知の通り、AMPでは外部javascriptを挿入することができません。

しかし、AMPにはそれらの実装を手助けするための、専用のコンポーネントが沢山用意されております。
その中に、グーグルアナリティクスを実装する為のコンポーネントがあります。
それが、amp-analyticsコンポーネントです。

head内の記述

まずは、他のAMPコンポーネント同様、コンポーネントを読み込みます。

  <script async custom-element="amp-analytics" src='https://cdn.ampproject.org/v0/amp-analytics-0.1.js'></script>

headのscriptに、amp-analyticsコンポーネントを読み込む記述を書きます。

AMPサイトにコードを設置する

bodyタグの直下に書いていきます。
次に、bodyの直下にコードを挿入します。
冒頭に書いたように、たったこれだけの記述で動きます。

他のパラメーターは、さらに詳細にデータ取得が必要な場合に使うんですね。

  <amp-analytics type="googleanalytics">    <script type="application/json">      {
        "vars": {
          "account": "UA-XXXXX-Y" //トラッキングIDを設定        },        "triggers": {
          "trackPageview": {
            "on": "visible",            "request": "pageview"          }
        }
      }
    </script>  </amp-analytics>

最小限の記述で、さらりと実装を完了してしまいます。

コンポーネントを読み込む位置に注意

最初、よくわからないエラーが出て困った・・・😢
調べてみると、

amp-analyticsコンポーネントを読み込む位置を、上の方にしなきゃいけない

ってことらしいです。

ページに AMP アナリティクス機能を追加するには、
AMP JS ライブラリの前にある
<head> に次のスクリプトを挿入します。

Google Developers

というわけで、コンポーネントを読み込む順番を、変えてみました。

  <script async src='https://cdn.ampproject.org/v0.js'></script>  <script async custom-element="amp-analytics" src='https://cdn.ampproject.org/v0/amp-analytics-0.1.js'></script>

☝️こんな順番にしたら、バリデーションエラーが出なくなりました。

設置場所はheadの最後?bodyの最後?

以前は、「bodyの閉じタグの直前」に置くものとされていたようです。
しかし、

現在推奨されているのは、「headの閉じタグの直前」

になりました。

これは、アナリティクスの読み込み&処理開始のタイミングに違いがあったとのこと。
処理が 「同期的」だったのが、「非同期的」 になった、ということみたいです。

同期と非同期とは何か?

同期は、ソースコードの上から順に処理をします。
つまり、アナリティクスの記述が書かれている場所に到達するまで、他の処理をしながらやってくるイメージです。
以前はbodyの閉じタグの直前に記述していたのですから、コンテンツが全部表示されてから、トラッキングの処理が動き出す という事ですね。

それに対して非同期は、順番ではありません。
ページにアクセスがあったら、すぐに読み込みをする準備をします。
その他の処理と並走しながら、処理をします。

これにより、他のコンテンツの読み込みを待つ必要がなくなるというわけです。

バリデーションエラーの原因はアドブロックでした

このコンソールエラーがずっと消えなくて、しばらくハマった・・・

GET https://cdn.ampproject.org/v0/amp-analytics-0.1.js net::ERR_BLOCKED_BY_CLIENT

事例を探しまくるが、ヒントを見つけることができない・・・
しばらく悩みました。
さて、どうしたものか。

「ん?あれもしや・・・このブラウザの端っこで赤くなってるやつは・・・」
アドブロックかよっwww
chrome拡張のADBLOCKを、ONにしてるせいでした。
超凡ミス・・・😓

ま、まぁ、ちゃんとエラーが消えてくれたので、OKとしましょう(笑)

永井 大介

© 二〇二五