1

これは、ランダムなページでよく見かけるコードです。

これはGoogleの追跡コードだと思いますが、誰か確認できますか?

JSFiddle で実行すると、何も起こらないようです。

var tvt = tvt || {};
tvt.captureVariables = function(a) {
  for (var b = new Date, c = {}, d = Object.keys(a || {}), e = 0, f; f = d[e]; e++)
    if (a.hasOwnProperty(f) &&
      "undefined" != typeof a[f]) try {
      var g = [];
      c[f] = JSON.stringify(a[f], function(a, b) {
        try {
          if ("function" !== typeof b) {
            if ("object" === typeof b && null !== b) {
              if (b instanceof HTMLElement || b instanceof Node || -1 != g.indexOf(b)) return;
              g.push(b)
            }
            return b
          }
        } catch (c) {}
      })
    } catch (l) {}
    a = document.createEvent("CustomEvent");
  a.initCustomEvent("TvtRetrievedVariablesEvent", !0, !0, {
    variables: c,
    date: b
  });
  window.dispatchEvent(a)
};
window.setTimeout(function() {
  tvt.captureVariables({
    'dataLayer': window['dataLayer']
  })
}, 2000);

4

2 に答える 2

10

これは、Google のTag Assistant拡張機能によって挿入されたスクリプトです。ソースはもっと大きいです。

私はソース コードを unminifed しました。これは Gist で見つけることができます。約 6,300 行の長さであることに注意してください。この回答には約 2,000 文字が長すぎます。

インジェクションは、動的に作成されたスクリプトを使用して、行 3030あたりで発生します。、および関数のソース コードを取得するためにkgどのように依存しているかに注意してください。Function.prototype.toString

lg = function(a) {
  if (!a.Ab && (a.Ab = !0, a = a.X(), a = Object.keys(a).map(function(a) {
    return "'" + a + "': window['" + a + "']"
  }), 0 < a.length && (!aa.tvt || !aa.tvt.captureVariables))) {
    var b = document.createElement("script");
    b.textContent = "var tvt = tvt || {}; tvt.captureVariables = " + kg + ";window.setTimeout(function() {tvt.captureVariables({" + a.join(",") + "})}, 2000);";
    (document.head || document.documentElement).appendChild(b)
  }
}

kgあなたが投稿したものに対応する次のように、その後すぐに見つけることができます。

kg = function(a) {
  for (var b = new Date, c = {}, d = Object.keys(a || {}), e = 0, f; f = d[e]; e++)
    if (a.hasOwnProperty(f) &&
      "undefined" != typeof a[f]) try {
      var g = [];
      c[f] = JSON.stringify(a[f], function(a, b) {
        try {
          if ("function" !== typeof b) {
            if ("object" === typeof b && null !== b) {
              if (b instanceof HTMLElement || b instanceof Node || -1 != g.indexOf(b)) return;
              g.push(b)
            }
            return b
          }
        } catch (c) {}
      })
    } catch (l) {}
  a = document.createEvent("CustomEvent");
  a.initCustomEvent("TvtRetrievedVariablesEvent", !0, !0, {
    variables: c,
    date: b
  });
  window.dispatchEvent(a)
};

Tag Assistant についてからの拡張機能に関する説明。

Tag Assistant について

Tag Assistant は、任意のページでの Google トラッキング スクリプトの実装を自動的に検証する Chrome 拡張機能です。現在、次の場合に機能します。

  • Google アナリティクス (ga.js)

  • Google アナリティクス (dc.js)

  • AdWords コンバージョン トラッキング

  • AdWords リマーケティング (旧)

  • AdWords リマーケティング (新しいリマーケティング タグ)

  • Doubleclick フラッドライト

  • Google タグ マネージャー

Tag Assistant の仕組み

拡張機能をインストールすると、表示中のページにタグのステータスを示すアイコンが表示されます。

  • 「x」が付いた灰色のアイコンは、ページにコードが見つからなかったことを示します

  • 有効なタグが見つかった場合、緑色のインジケーターが表示されます。アイコンの数字は、見つかったタグの数を示します

  • 青色のインジケーターは、タグ付けの全体的な健全性を改善するための提案があることを示します

  • 黄色のインジケータは、小さな実装上の問題があるタグが見つかったことを示します

  • 赤色のインジケータは、実装に重大な問題があるタグが見つかったことを示します

アイコンをクリックして、タグの詳細を含むウィンドウを開きます。見つかったタグの数、見つかったエラーの数、エラー、および問題を解決するために利用できる最も関連性の高いヘルプ ドキュメントへのリンクが表示されます。さらに、Tag Assistant は、改善が可能な場合に提案を行います。たとえば、古い Analytics タグがインストールされている場合、Tag Assistant は新しいタグへの更新を提案する場合があります。

于 2016-02-28T18:25:51.820 に答える