[英]How to use Google Tag Manager with Multiple Schema Product reviews using JSON-LD and Variables
[英]Using Google Tag Manager to Dynamically Generate Schema/JSON-LD Tags, but keep getting the following error: ' unparsable structured data'
美好的一天,我真的需要别人的帮助,拜托了。 我正在尝试为新闻文章部分动态生成架构。 当我使用富结果工具对其进行测试时,一切看起来都很好,但谷歌控制台返回以下错误:“无法解析的结构化数据”。 我想我必须用 JS 包装代码,但我在这方面不是很擅长,请感谢您的帮助。 非常感谢您为我调查此事。
jsonld脚本截图
简而言之:你很可能很好。 您看到的错误只是因为 Google 测试工具获取源代码而不呈现 DOM。 Google Bot 将正确呈现它,因此没有问题。
您当然不需要 JS 包装器,尽管您可以使用它。 当我不想用变量扩大它的大小时,我将它与模式一起使用。 这是一个快速示例:
var script = document.createElement('script'); script.type = "application/ld+json"; script.innerHTML = JSON.stringify(data); document.getElementsByTagName('head')[0].appendChild(script);
其中 Data 是表示架构 json 的 JS 对象。
您的错误很可能是由于 Google 获取代码而不是呈现页面并让 JS 填充 DOM。
使用 GTM 部署模式虽然方便,但会导致 Future 出现问题。 它应该被视为导致技术债务的临时解决方案。
我刚刚测试了您的代码,看起来不错。
这是那些想要它的人的代码:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "NewsArticle", "mainEntityofPage": { "@type": "WebPage", "id": "{{Page URL}}" }, "headline": "{{UA-CJS-Schema-Heading}}", "description": "{{UA-CJS-Schema-Meta-Description}}", "image": "{{UA-CJS-BlogImageURL}}", "author": { "@type": "Organization", "name": "Association for Project Management" }, "publisher": { "@type": "Organization", "name": "Association for Project Management", "logo": { "@type": "ImageObject", "url": "https://www.apm.org.uk/" } }, "datePublished": "{{UA-CJS-Schema-Date Published-Edited}}", "dateModified": "{{UA-CJS-Schema-DatePublished-Edited}}" } </script>
我将添加一些调试步骤,但您实际上并不需要它们,因为您使用了不同的服务并且它确认了模式存在。 但以防万一。
调试步骤:
Rich Results Test 工具和 Search Console Test 都会在测试之前呈现,因此如何将 json-ld 添加到页面中仍然可能存在问题。
这些工具通常会指出发生这种语法错误的地方。
一个可能的问题是动态内容(例如 UA-CJS-Schema-Meta-Description)是否包含双引号或结束脚本标签。 我不确定 GTM 如何转义此内容,但如果不转义,它们可能会导致无效的 json。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.