カテゴリー
【SEOのGoogleアナリティクス(GA4)対応】シンプルなJavascript/HtmlのスクリプトでGoogleタグ(gtag.js)からイベントトラッキングを操作する
※ 当ページには【広告/PR】を含む場合があります。
2020/09/07
2023/02/13
Googleタグ(gtag.js)の使い方の基本をおさらい
Googleアナリティクスへのgtag.jsの導入
<!-- Google Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxx-xx"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'UA-xxxxx-xx');
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXX');
</script>
gtag.js
gtag
gtag.jsによるイベントトラッキングの基本(UA編)
gtag('event', 'イベント名', {...})
gtag('event', 'アクション名', {
'event_category': 'カテゴリ名',
'event_label': 'ラベル名',
'value': 'イベント値'
});
UAのgtag関数の三つの引数のオブジェクト書式
gtag関数
event_category:
イベントカテゴリ
event_label:
イベントラベル
value:
イベント値(オプション)
UAでクリックイベント(onclick)でgtag関数を埋め込んで使ってみる例
onclick
<!-- 引数label ... 何か商品を識別できる情報 -->
<script>
function gtagClick(label) {
gtag('event', 'アフィリエイトクリック', {
event_category: 'Amazonアソシエイト',
event_label: label
});
}
</script>
onclick
<input type="button" value="クリック" onclick="gtagClick('リンク1の商品の情報')">
<!-- もしくは -->
<input type="button" value="クリック" id="リンク1の商品の情報" onclick="gtagClick(this.id)">
gtagClick
this
data-*
<input type="button" value="クリック" data-value="リンク1の商品の情報" onclick="gtagClick(this.dataset.value)">
data-value
this.dataset.value
dataset
addEventListenerでgtag関数を追加する方法
addEventListener
getElementById
<input type="button" id="link1" value="クリック">
<script>
const link1 = document.getElementById("link1");
link1.addEventListener("click", gtagClick('リンク1の商品の情報'));
</script>
onclick="hoge()"
Googleアナリティクスのコンバージョンを設定する〜【旧GA編】
UA-
管理
目標
新しい目標
①目標設定
②目標の説明
③目標の詳細
カスタム
続行
イベント
続行
gtag
<script>
function gtagClick(label) {
gtag('event', 'アフィリエイトクリック', {
event_category: 'Amazonアソシエイト',
event_label: label
});
}
</script>
カテゴリ
event_category
イベント
第2引数の文字列
カテゴリ [等しい]:
Amazonアソシエイト
イベント [等しい]:
アフィリエイトクリック
等しい
先頭が一致
正規表現
コンバージョンの目標値としてイベント値を使用
いいえ
[管理]タブ > [ビューの設定] > [通貨]
保存
Googleアナリティクスのeコマース測定を設定する〜【GA4編】
UA-...
G-...
GA4からイベントを利用する
gtag('event', 'イベント名', {
'event_category': 'カテゴリ名',
'event_label': 'ラベル名',
'value': 'イベント値'
});
イベント
アクション(イベント)
イベントカテゴリ
ラベル
「イベントのヒットタイプ」
“ユーザー定義の野良イベント(=カスタムイベント)”
「イベントの情報を勝手に記録はしない」
「必要最小限で勝手に自動的に収集される」
[レポート] > [エンゲージメント] > [イベント]
first_visit/page_view/scroll/sesstion_start
GA4のカスタムイベントはどうしようも無いときだけ(オススメしない)
1. 自動的に収集されるイベント(デフォルトイベント):
ユーザーが何もしなくてもアナリティクスに常時自動で収集されているイベント。
例)session_startなど
2. 測定機能の強化(※1):
デフォルトイベントの内、GA4プロパティの管理画面からオンオフする測定用に特化したイベント。
例)page_viewなど
3. 推奨イベント(※2):
ユーザーが手動で実装できるイベント。
ただし、使用には事前に定義されたイベント名とパラメータ名の規約に従う必要がある。
例)purchaseなど
4. カスタムイベント:
デフォルトイベントや推奨イベントで対応できない場合に利用するユーザーが独自設計するイベント。
柔軟かつ高度な測定が可能となる。
[管理] > [プロパティ] > [データ ストリーム] > [ウェブ] > [拡張計測機能]
sign_up
gtag('event', 'sign_up', {
method: 'カスタマー専用ページ サインイン'
});
(1) イベントを自分で実装するのではなく、可能な限り
自動的に収集されるイベント(デフォルトイベント)と測定機能の強化イベントを使用する
(2) 必要なイベントが自動的に収集されていない、
もしくは測定機能の強化の一部として提供されていない場合は推奨イベントを利用する
(1)と(2)で実装が困難な場合にのみ、カスタムイベントを実装する
「推奨イベント」
「カスタムイベント」
「カスタムイベント」
推奨イベント
ウェブページから商品が購入されたときのpurchaseイベント
gtag('event', 'purchase', {
transaction_id: '[取引を一意に決めたID値]',
currency: 'JPY',
items: [
{
item_name: '激安うまか棒一本',
promotion_name: '訳あり品セール',
item_category: 'アソシA'
price: 10,
currency: 'JPY',
quantity: 1
}
]
});
purchase
transaction_id
currency
items
収益化
item_nameかitem_id
promotion_nameかpromotion_id
item_category
purchase
[レポート] > [エンゲージメント] > [ページとスクリーン]
[レポート] > [収益化] > [eコマース購入数]
ウェブページの商品アイテムが閲覧されたときのview_itemイベント
view_item
gtag('event', 'view_item', {
currency: 'JPY',
value: 1000,
items: [{
item_name: '商品A',
item_id: '[商品のID値]'
}]
});
ユーザーが閲覧しているときにイベントを発生させる
img要素
onloadイベント
<a href="[商品購入先へのリンク]">
<img src="dummy.png" border="0" width="1" height="1" onload="gtag('event','view_item',{...});">
商品A
</a>
onload
<script>
//...
document.addEventListener("DOMContentLoaded", () => {
let lazyMeasurement = [...document.querySelectorAll("計測したい商品のHTML要素")];
if ("IntersectionObserver" in window) {
let obs = new IntersectionObserver((entries, observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
gtag('event','view_item',{...})
obs.unobserve(entry.target);
}
});
});
lazyMeasurement.forEach((_lazy) => { obs.observe(_lazy); });
}
});
</script>
...
[レポート] > [収益化] > [eコマース購入数]
まとめ
参考サイト
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー