Googleタグマネージャーの「ユーザー定義変数」タイプ別の戻り値調査
2021年11月16日
ライター:伊藤 禎子

はじめに

Googleタグマネージャー(以下GTMと記載)では2つの変数があります。
「組み込み変数」と「ユーザー定義変数」です。

「組み込み変数」とは
よく利用する値をあらかじめ変数として扱えるようGTM側で用意されたものです。
例えばPage Path(現在のURLのPath)やClick Element(クリックが発生した DOM 要素)など利用頻度が多い値を取得することができます。

「ユーザー定義変数」とは
ユーザーが設定できる変数です。
複数の変数タイプがあり、変数タイプによってさまざまな値を取得することが可能となります。
自由度の高い変数ですので大変便利な変数ですが、変数タイプによってさまざまな戻り値が存在します。

今回のコラムでは、ユーザー定義変数の変数タイプ別に、各種変数の戻り値のチェックを行いました。
GTM設定の際のご参考にしていただければ幸いです。

ユーザー定義変数のタイプ別戻り値一覧

・特に記載がない場合、検証URLは’https://ayudante.jp/’となります。
・必ず値が存在するもの、または検証が不可能なもは検証不要となっています。

ナビゲーション

-HTTP参照

要素タイプ 戻り値がある場合 戻り値がない場合
URL全体 https://ayudante.jp/ ”(空の文字列)
クエリ

検証URL
https://ayudante.jp/?keyA=valueA&keyB=valueB

クエリーキー未設定の場合
→’keyA=valueA&keyB=valueB’

クエリーキー「keyA」設定の場合
→’valueA’

URLソース中にクエリーがなく、クエリーキーの指定がない場合
”(空の文字列)を返します。

URLソース中に指定のクエリキーが存在しなかった場合
未定義値 undefinedを返します。
パス 検証URL
https://ayudante.jp/?keyA=valueA
→’/’

検証URL
https://ayudante.jp/
→’/’

検証URL
https://ayudante.jp/column
→’/column’

検証URL
https://ayudante.jp/profiles-jp.htm
→’/profiles-jp.htm’
検証不要
フラグメント

検証URL
https://ayudante.jp/column/?test=test#a02

→”(空の文字列)
リファラーにハッシュタグが付いていても取得できません。

”(空の文字列)
プロトコル ‘https’ ”(空の文字列)
ポート ‘443’

URL内にポートが含まれていない場合でも、
サーバー設定に応じたポート番号が取得されます。
”(空の文字列)
ホスト名 ‘ayudante.jp’ ”(空の文字列)

-URL

要素タイプ 戻り値がある場合 戻り値がない場合
URL全体 ‘https://ayudante.jp/’ 検証不要
クエリ 検証URL
https://ayudante.jp/?keyA=valueA&keyB=valueB

クエリーキー未設定の場合
→’keyA=valueA&keyB=valueB’

クエリーキー「keyA」設定の場合
→’valueA’
URLソース中にクエリーがなく、クエリーキーの指定がない場合
”(空の文字列)を返します。

URLソース中に指定のクエリキーが存在しなかった場合
未定義値 undefinedを返します。
パス 検証URL
https://ayudante.jp/column/2021-01-26/
→’/column/2021-01-26/’

検証URL
https://ayudante.jp/index.html
→’/index.html’

検証不要

ドメイン名末尾の「/」がなくてもルートディレクトリだと「/」が出ます 。

URL末尾ディレクトリの「/」有の場合は「/」が付きますが、
無の場合は「/」はつきません。

ファイル名の拡張子 ‘html’

”(空の文字列)

URLに実際に拡張子が入っていない場合「/」終わりのURLの場合も該当します。

フラグメント

検証URL
https://ayudante.jp/column/?test=test#a02

→’a02′

”(空の文字列)
プロトコル ‘https’ 検証不要
ポート ‘443’

URL内にポートが含まれていない場合でも、
サーバー設定に応じたポート番号が取得されます。
検証不要
ホスト名 ‘ayudante.jp’ 検証不要

ページ変数


-javascript変数

戻り値がある場合 戻り値がない場合

‘hogehoge’

数値、true/falseなど文字列以外の場合もあります。

未定義値 undefined

-カスタムJavascript

戻り値がある場合 戻り値がない場合

‘hogehoge’

数値、true/falseなど文字列以外の場合もあります。

未定義値 undefined

-データレイヤーの変数

戻り値がある場合 戻り値がない場合

‘hogehoge’

数値、true/falseなど文字列以外の場合もあります。

未定義値 undefined

-ファーストパーティ Cookie

戻り値がある場合 戻り値がない場合

‘hogehoge’

未定義値 undefined

ページ要素

-Dom要素

選択方法 戻り値がある場合 戻り値がない場合
ID

属性名の設定がある場合
対象要素および対象属性がある場合の返り値は、
対象要素の対象属性の値となります。

属性名の設定が無い場合はテキストが返ります。
テキストのみが対象です。
(画像が含まれている場合などもalt属性等は無視されます。)

‘null’
CSSセレクタ 属性名の設定がある場合
対象要素および対象属性がある場合の返り値は、
対象要素の対象属性の値となります。

属性名の設定が無い場合はテキストが返ります。
テキストのみが対象です。
(画像が含まれている場合などもalt属性等は無視されます。)

‘null’

-自動イベント変数

選択方法 戻り値がある場合 戻り値がない場合
要素

HTML Object

検証例:Ayudateロゴクリック時
‘https://ayudante.jp/: html >
body.archive.author.author-daisuke.auth’ +
‘or-11.left-content.color02.one-column >
header#header > div.wrap.cle’ + ‘arfix >
p#logo > a#top’

未定義値 undefined
要素ID 検証例:Ayudateロゴクリック時
‘top’
自動イベント変数が反応するイベント(クリックなど)であれば、
対象要素が該当のデータを持たない場合は空の文字列(”)になります。

自動イベント変数が反応しないイベント(Content Loadedなど)であれば、
未定義値 undefinedを返します。
要素URL-URL全体 検証例:Ayudateロゴクリック時
‘https://ayudante.jp/’
自動イベント変数が反応するイベント(クリックなど)であれば、
対象要素が該当のデータを持たない場合は空の文字列(”)になります。

自動イベント変数が反応しないイベント(Content Loadedなど)であれば、
未定義値 undefinedを返します。
要素URL-アウトバウンド false/true false
要素URL-クエリ 検証URL
https://ayudante.jp/?keyA=valueA&keyB=valueB


クエリーキー未設定の場合
→’keyA=valueA&keyB=valueB’

クエリーキー「keyA」設定の場合
→’valueA’

URLソース中にクエリーがなく、クエリーキーの指定がない場合
”(空の文字列)を返します。

URLソース中に指定のクエリキーが存在しなかった場合
未定義値 undefinedを返します。

要素URL-パス 検証URL:https://ayudante.jp/?keyA=valueA
→’/’

検証URL:https://ayudante.jp/
→’/’

検証URL:https://ayudante.jp/column
→’/column’

検証URL:https://ayudante.jp/profiles-jp.htm
→’/profiles-jp.htm’

検証不要

取得できないタイミング(Container Loadedなど)では「/」になります。
Topページ以外であっても「/」になります。

要素URL-ファイル拡張子 ‘html’

”(空の文字列)

URLに実際に拡張子が入っていない場合「/」終わりのURLの場合も該当します。

要素URL-フラグメント

検証URL
https://ayudante.jp/column/?test=test#a03

→’a03′

”(空の文字列)
要素URL-プロトコル ‘https’ 検証不要

本来取得できないタイミング(Container Loadedなど)では
「https」など「ページのプロトコル」が値になります。
要素URL-ポート ‘443’ 検証不要

本来取得できないタイミング(Container Loadedなど)では
「ページのポート番号」が値になります。
要素URL-ホスト名 ‘ayudante.jp’ 検証不要

本来取得できないタイミング(Container Loadedなど)では
「ayudante.jp」など「ページのホスト名」が値になります。
要素クラス ‘hogehoge’

自動イベント変数が反応するイベント(クリックなど)であれば、
対象要素が該当のデータを持たない場合は空の文字列(”)になります。
自動イベント変数が反応しないイベント(Content Loadedなど)であれば、
未定義値 undefinedを返します。

要素ターゲット ‘_blank’ 自動イベント変数が反応するイベント(クリックなど)であれば、
対象要素が該当のデータを持たない場合は空の文字列(”)になります。
自動イベント変数が反応しないイベント(Content Loadedなど)であれば、
未定義値undefinedを返します。
要素テキスト ‘hogehoge’ 自動イベント変数が反応するイベント(クリックなど)であれば、
対象要素が該当のデータを持たない場合は空の文字列(”)になります。
自動イベント変数が反応しないイベント(Content Loadedなど)であれば、
未定義値undefinedになります。
要素のタイプ ‘FORM’ 未定義値 undefinedを返します。
要素の属性 styleで設定した場合
‘display: none;’
”(空の文字列)
履歴:古いURLの一部 ‘hogehoge’ ”(空の文字列)
history API以外のイベントでは未定義値 undefinedを返します。
履歴:古いステータス ‘hogehoge’ null
history API以外のイベントでは未定義値 undefinedを返します。
履歴:新しいURLの一部 ‘hogehoge’ ”(空の文字列)
history API以外のイベントでは未定義値 undefinedを返します。
履歴:新しいステータス ‘hogehoge’ null
history API以外のイベントでは未定義値 undefinedを返します。
履歴:変更の参照元

‘pushState’
履歴の変更を引き起こしたイベントを返します。

history API以外のイベントでは未定義値 undefinedを返します。

-要素の視認性

選択方法 戻り値がある場合 戻り値がない場合
ID true/false/% ページに要素が存在しない場合はnullを返します。
CSSセレクタ true/false/% ページに要素が存在しない場合はnullを返します。

ユーティリティ

-Googleアナリティクス設定

戻り値がある場合 戻り値がない場合
object 検証不要

-カスタムイベント

戻り値がある場合 戻り値がない場合
‘gtm.dom’ event変数をpushしていないdataLayer.push(Message表記など)は
文字列の’undefined’になります。

-ルックアップテーブル

戻り値がある場合 戻り値がない場合
‘hogehoge’
数値、True/falseなど文字列以外の場合もあります。
戻り値を他変数を参照する設定にしている場合、
指定した変数の型になります。
未定義値 undefined

-環境名

戻り値がある場合 戻り値がない場合
プレビュー モードに表示される環境の名前を返します。 GTMプレビューに出力されません。

-正規表現の表

戻り値がある場合 戻り値がない場合
‘hogehoge’
戻り値に他の変数を指定した場合、
変数の型が文字列で返ります。
未定義値 undefined

-定数

戻り値がある場合 戻り値がない場合
‘hogehoge’
戻り値に他の変数を指定した場合、
指定した変数の型になります。
検証不要

-未定義値

戻り値がある場合 戻り値がない場合
未定義値、undefindを返します。 検証不要

-乱数

戻り値がある場合 戻り値がない場合
956627976 検証不要

コンテナデータ

-コンテナID

戻り値がある場合 戻り値がない場合
‘GTM-93FD’ 検証不要

-コンテナのバージョン番号

戻り値がある場合 戻り値がない場合
‘QUICK_PREVIEW’ 検証不要

-デバックモード

戻り値がある場合 戻り値がない場合
true false

採用情報はこちら

この記事を書いた人
$uname
伊藤 禎子
デジタルマーケティングエンジニア
茶道、華道、フラワーアレンジメントと、見た目とたがわぬ女性らしい趣味を持つ一方、システムエンジニアからGTMエンジニアに転身という経歴。優しい笑顔の下に、仕事に育児に忙しい中でも、タスクを次々クリアするパワーを秘めている。
最近書いた記事