有没有办法 javascript 读取自己的变量并仅通过 GTM 脚本生成数据层变量?

Is there a way that javascript reads its own variables and generates datalayer variables via GTM scripts only?

<script>
    dataLayer = [{
      'pageCategory': 'signup',
      'visitorType': 'high-value'
    }];
</script>

您可以使用 GTM 变量读取页面上的全局 JavaScript 变量,是的。然后,您可以在自定义 HTML 标记中使用该 GTM 变量来推送到数据层。确保它也触发了一个 "im-ready" 事件,所以任何相关标签都可以等待它触发。

这里有一个简单的例子来说明如何做。创建一个 "Custom HTML tag" 并在其中插入:

<script>
    dataLayer.push("documentTitle", document.title);
    dataLayer.push("event", "documentTitleReady");
</script>

现在您可以使用此事件触发读取此 dataLayer 变量的另一个标记。