amp-analytics
Description
AMP ドキュメントからアナリティクス データを収集します。
Required Scripts
<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
AMP ドキュメントからアナリティクス データを収集します。
| 必要なスクリプト | <script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script> |
| 例 | AMP By Example の amp-analytics の例をご覧ください。 |
ベンダーや社内へのアナリティクス データの送信
サイトで AMP アナリティクスを使い始める前に、ユーザー エンゲージメント分析にサードパーティのアナリティクス ツールを使用するか、社内のソリューションを使用するかを決める必要があります。
アナリティクス ベンダーへのデータの送信
AMP アナリティクスでは、1 回の測定で得たデータを複数の URL に送信できます。すでに 1 社以上のアナリティクス ベンダーを利用している場合は、アナリティクス ベンダーの一覧で、該当のソリューションが AMP と統合されているかどうかをご確認ください。
統合型 AMP アナリティクス ベンダーの場合:
<amp-analytics>タグにtype属性を追加して、その値を指定されているベンダーに設定します。- どのデータを収集してトラッキングするかを決め、設定データにその詳細を指定します。アナリティクス データの収集方法については、ベンダーのドキュメントをご覧ください。
アナリティクス ベンダーが AMP を統合していない場合は、ベンダーに問い合わせてサポートを依頼してください。AMP プロジェクトに問題を報告し、ベンダーを追加するようリクエストすることをおすすめします。また、AMP HTML にアナリティクス ツールを統合する方法もご確認ください。さらに、指定された URL にデータを送信する際には、ベンダーと協力してください。詳しくは、以下の社内へのデータの送信をご覧ください。
例: 第三者アナリティクス プロバイダへのデータの送信
次の例では、AMP を統合済みの第三者アナリティクス プロバイダである Nielsen にアナリティクス データを送信します。Nielsen 向けにアナリティクス データを設定する方法について詳しくは、Nielsen のドキュメントをご覧ください。
<amp-analytics type="nielsen">
<script type="application/json">
{
"vars": {
"apid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"apv": "1.0",
"apn": "My AMP Website",
"section": "Entertainment",
"segA": "Music",
"segB": "News",
"segC": "Google AMP"
}
}
</script>
</amp-analytics>
社内へのデータの送信
ユーザー エンゲージメントの測定に社内のソリューションを使用する場合は、URL さえあれば、AMP アナリティクスをそのソリューションと統合できます。この URL がデータの送信先となります。データは複数の URL に送信することもできます。たとえば、ページビュー データとソーシャル エンゲージメント データをそれぞれ別の URL に送信できます。
特定の URL にデータを送信する方法は次のとおりです。
- どのデータを収集してトラッキングするかを決め、設定データにその詳細を指定します。
requests設定オブジェクトで、トラッキングするリクエストのタイプ(ページビュー、特定のトリガー イベントなど)と、トラッキング データの送信先の URL を指定します。
usqp パラメータを取り除くか無視します。このパラメータは、Google が Google AMP キャッシュのテストをトリガーする際に使用されます。 例: URL へのデータの送信
以下に、ページビューをトラッキングする簡単な例を示します。ページが表示されるたびにトリガー イベントが起動し、ページビュー データがランダムな ID とともに定義済みの URL に送信されます。
<amp-analytics>
<script type="application/json">
{
"requests": {
"pageview": "https://foo.com/pixel?RANDOM"
},
"triggers": {
"trackPageview": {
"on": "visible",
"request": "pageview"
}
}
}
</script>
</amp-analytics>
設定データの指定
<amp-analytics> 要素では、測定の対象やアナリティクス データの送信先に関する詳細情報を格納する JSON 設定オブジェクトを指定します。
<amp-analytics> の設定オブジェクトの形式は次のとおりです。
{
"requests": {
request-name: request-value,
...
},
"vars": {
var-name: var-value,
...
},
"extraUrlParams": {
extraurlparam-name: extraurlparam-value,
...
},
"triggers": {
trigger-name: trigger-object,
...
},
"transport": {
"beacon": *boolean*,
"xhrpost": *boolean*,
"image": *boolean*,
}
}
インラインまたはリモート設定
設定データは、インラインで指定することも、config 属性で URL を指定してリモートで取得することも可能です。また、type 属性を使用して、一般的なアナリティクス ベンダーの組み込み設定を選択することもできます。
複数の提供元の設定データを使用する場合、設定オブジェクト(変数、リクエスト、トリガー)がマージされます。この場合、優先順位は次のようになります。
- リモート設定がインライン設定よりも優先される。
- インライン設定がベンダー設定よりも優先される。
リモート設定の読み込み
リモート設定を読み込むには、<amp-analytics> 要素で、config 属性と設定データの URL を指定します。URL の指定では HTTPS スキームを使用する必要があります。URL には AMP URL 変数を含めることができます。Cookie にアクセスする場合は、data-credentials 属性を確認してください。レスポンスは AMP CORS セキュリティ ガイドラインに準拠する必要があります。
次の例では、指定した URL から設定データを読み込むように config 属性を指定しています。
<amp-analytics config="https://example.com/analytics.account.config.json">
設定リライタ
設定リライタ機能では、指定された設定をアナリティクス プロバイダが動的に書き換えることができます。この機能はリモート設定機能に似ていますが、ユーザーが指定した設定をサーバーへのリクエストに追加することができます。現在のところ、この機能を有効にできるのはアナリティクス ベンダーだけです。
アナリティクス ベンダーは、サーバーの URL を使用して configRewriter プロパティを指定します。
export const VENDOR_ANALYTICS_CONFIG = {
...
'configRewriter': {
'url': 'https://www.vendor.com/amp-config-rewriter',
},
...
}
ランタイムは、指定されたリモート設定とマージされたインライン設定を含むリクエストを、ベンダーが指定した configRewriter エンドポイントに送信します。ベンダーはこのデータをサーバー側で使用して、新たに書き換えられた設定を作成して返します。
ランタイムはその後、指定されたすべての設定をマージして、以下のように優先順位の高い順に最終的な設定を決定します。
- 書き換えられた設定
- インライン設定
- ベンダーが定義した設定
変数グループ
変数グループは、ユーザーが簡単に有効化できる定義済みの変数セットをアナリティクス プロバイダがグループ化するための機能です。これらの変数は解決され、指定の configRewriter エンドポイントに送信されます。
アナリティクス プロバイダはこの機能を有効にするために、configRewriter 設定の内部に新しい varGroups オブジェクトを作成する必要があります。サイト運営者はその後、指名したアナリティクス プロバイダが作成した有効化対象の varGroups をアナリティクス設定に含めることができます。AMP HTML の置換ガイドでサポートされている変数はすべて使用できます。重要な注意事項: ${varName} バリアントは使用できません。
あるベンダーによる設定例を以下に示します。
// This is predefined by vendor.
export const VENDOR_ANALYTICS_CONFIG = {
...
'configRewriter': {
'url': 'https://www.vendor.com/amp-config-rewriter',
'varGroups' : {
'group1': {
'referrer': 'DOCUMENT_REFERRER',
'source': 'SOURCE_URL',
'group2': {
'title': 'TITLE',
},
},
},
},
...
}
プロバイダの <amp-analytics> 設定内に特定の varGroups に対する {enabled: true} を含めることで、どの変数グループを有効にするかを指定できます。enabled は予約キーワードのため、変数名として使用することはできません。
以下の例では、group1 と group2 の両方が有効化されています。明確に有効化されていないグループは無視されます。ランタイムは、有効化された変数をすべて解決し、1 つの configRewriter.vars オブジェクトにマージします。このオブジェクトが設定リライタの URL に送信されます。
/* Included on publisher page */
<amp-analytics type="myVendor" id="myVendor" data-credentials="include">
<