0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GTMデバッグURLで確認したJSファイルのデータ構造を調べてみる

Posted at

▼調べ方

GTMのプレビューURLにて開いたページであれば検証ツールにて変数やトリガー、タグがどのように設定されてるかを確認することが出来る。

検証ツールのSourcesタブのwww.googletagmanger.com配下のJSファイルを開く(debugという文字列がある方を選択)

▼データ構造を調べる

dataというオブジェクトの中にresourceというキーがあり、その中に変数とタグとトリガー条件などが格納されていそうだ
それぞれについて見ていく。

➀変数

data>resource>macrosというオブジェクトの階層になっている。

macrosに変数が入っている。ここには組み込み変数とユーザ定義変数が格納されていそうだ。GTMにて追加した変数のみが表示される

  • function名として変数タイプを表す文字列が書かれている
    • 例えば、__jsmであればカスタムJS変数

ex)カスタムJS変数

"function": "__jsm",
"instance_name": "タイトル取得変数",
"vtp_javascript": ["template", "(function(){return document.title})();"]

➁タグ

data>resource>tags

tagsにタグが入っている。タグの種類ごとに持つキーの種類が違いそうだ。一つ一つのタグにはIDが振られている。instance_nameにはタグ名が入っている。

  • function
    • __googletag
      • Googleタグ
    • _gaawe
      • GA4イベントタグ
    • __html
      • カスタムHTML

ex)GA4イベントタグ

"function": "__gaawe",
"instance_name": "falseClickタグ",
"metadata": ["map"],
"once_per_event": true,
"vtp_sendEcommerceData": false,
"vtp_enhancedUserId": false,
"vtp_eventName": "falseClisk",
"vtp_measurementIdOverride": "G-XXXXXXX",
"vtp_enableUserProperties": true,
"vtp_enableMoreSettingsOption": true,
"vtp_enableEuid": true,
"vtp_migratedToV2": true,
"vtp_demoV2": false,
"tag_id": 28

③トリガー条件

data>resource>predicates

おそらくトリガーが入っている。トリガーの中でもその中の発生条件単位で格納されている。一つのトリガーに複数のドメインを条件として追加したとすると、ドメインごとにデータが格納される仕組みのようだ

  • functionにはマッチタイプが入っている
    • __eq
      • 完全一致
    • __re
      • 正規表現に一致
    • cn
      • 含む

ex)カスタムイベントトリガー

"function": "_eq",
"arg0": ["macro", 0],
"arg1": "consent_update"

これは、0番目の変数が"consent_update"とに完全一致するという条件となる。
0番目の変数はmacrosオブジェクト配列の0番目を確認すると以下のようになる。

"function": "__e",
"instance_name": "_event"

イベント名を取得する変数であると推測出来る。
まとめると、このトリガーはイベント名がが"consent_update"とに完全一致ものに発火するものであると理解できる

▼分かったこと

GTM UIにて設定した変数・タグ・トリガーはオブジェクトとして格納されている。
以下のようにオブジェクトのキーが対応する。補足説明についても記載する。

  • 変数
    • macros
      • 組み込み変数とユーザ定義変数の両方が入っている
  • タグ
    • tags
      • タグの種類ごとに持つ属性が異なる
  • トリガー条件
    • predicates
      • トリガー単位ではなく、トリガーの詳細条件という単位で格納される
      • macrosに格納されたものを呼び出している

また、今回調査をしなかったが推測出来たもの、見つけたものについても述べる

  • rulesにトリガーが格納されており、if文とaddを駆使してそのトリガーを発動させている。
  • runtime属性
    • 何が行われているか分からなかった
  • entities
    • よくわからなかったが複数キーに対してtrueという値を設定していた
  • permissions
    • あらゆるものに対しての許可設定を行っている箇所だと推測する

理解不能な箇所も多いが、GTMが裏側で行っている処理が少しは見えてきた気がする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?