angularjs アプリの Google タグ マネージャーを介して追跡を実装しようとしています。tag-manager で定義されたクリック リスナーを使用すると、次のスクリプトがクリックごとにアプリに挿入されます (またはそのように思われます)。
(function (a)
{
var b = {}, c;
for (c in a || {})if (a.hasOwnProperty(c) && "undefined" != typeof a[c])try {
b[c] = JSON.stringify(a[c])
} catch (d) {
console.log("Cannot stringify " + c)
}
a = document.createEvent("CustomEvent");
a.initCustomEvent("RetrievedVariablesEvent", !0, !0, {variables: b});
window.dispatchEvent(a)
})({'studioV2': window['studioV2'], 'richMediaIframeBreakoutCreatives': window['richMediaIframeBreakoutCreatives'], 'dataLayer': window['dataLayer']})
クリックが追跡されると、"Cannot stringify dataLayer"
エラーが発生します。この理由は、クリックすると、オブジェクトに関連付けられた子参照と親参照のために、それ自体への循環参照を持つ要素も送信されるためです (おそらく jquery によって??)。
この再帰に遭遇することなく、Googleタグマネージャーでクリックリスナーを実装する方法はありますか?