我正在尝试通过 Google 标签管理器实现架构标记。
例如,一段代码可以从产品页面动态提取唯一的网址。
用简单的术语来说,这将是“如果class =“X”那么
好吧,有一些问题。
通过 GTM 实现 Schema 的想法是一种非常流行但非常错误的想法。我认为通常小型企业会聘请 SEO 专家,然后也给他们 GTM,因为 GTM 是 Google,所以当这些 SEO 需要部署架构时,他们会使用唯一可用的工具。这可能就是整个思考过程。
GTM 并不是为了提供内容甚至元内容而设计的。除了一些简单的分析库和像素之外,TMS(标签管理系统)不应该进行 DOM 写入。通过 TMS 做意想不到的事情会导致技术债务增加、混乱、可维护性问题等等。另外,经典模式只是一大堆文本。好吧,GTM 容器的最大大小是有上限的(200 kb),因此用随机的大模式文本对象填充它并不是最好的决定。
使用 itemprops 和 itemscopes(也称为微数据)是一种有点过时的实现模式的方法。为此,您可以考虑使用 JSON-LD。它将占用更少的空间,并且不需要您改变 DOM。不过,用 GTM 来提供它仍然是一个坏主意。
最好的解决方案是使用您的站点模板通过 JSON-LD 部署架构,或者要求您的 Web 开发团队为您部署它们。
如果您仍然想使用 GTM,您可以这样做。不过,在事件可见性触发中不需要。它们很重。最好永远不要使用它们。
相反,您可以使用 DOM Ready 作为触发器,然后向其中添加一个条件来检查 CJS(自定义 Java 脚本)变量的值。
在 CJS 中,您检查 DOM 并执行您需要执行的检查。你检查一下是否是产品页面等等。尽管如此,依赖 dataLayer 比解析 DOM 更好,因为一旦前端更改选择器,你的逻辑就会消失,这也是不使用 GTM 部署内容的另一个原因。
您要部署的标签将是一个 CHTML(自定义 HTML)标签,它将部署一个
<script>
来更新页面上需要更新的所有字段。当然,或者只是部署 JSON-LD 有效负载。