【问题标题】:Inserting JSON through Google Tag Manager通过谷歌标签管理器插入 JSON
【发布时间】:2017-07-12 00:06:18
【问题描述】:

尝试从网站上的模板中动态提取 HTML 元素。 {{SCHEMA - Recipe Image}}{{SCHEMA - Recipe Description}} 无法正常工作。 {{SCHEMA - Recipe Image}} 引用了正确的部分,但在 Google 的结构化数据测试工具中返回 null(为 image.url 提供的值必须是有效的 URL)。
{{SCHEMA - Recipe Description}},当我创建文章架构时它工作,由于某种原因不适用于这种类型的架构,并给了我一个

第 9 行,字符 5 处的错误:解析错误。 '}' 预期

错误。
谁能帮我理解为什么没有正确提取图片 URL 和描述?

<script>
  (function(){
var data = {
     "@context": "http://schema.org",
     "@type": "Recipe",
     "author": "Example",
     "cookTime": "PT1H",
     "description": "Generic description goes here.",
     "image": {
      "@type": "ImageObject",
      "url": {{SCHEMA - Recipe Image}}
     },
     "recipeIngredient": [
       {{SCHEMA - Recipe Ingredient}}
  ],
 "name": {{SCHEMA - Recipe Title}},
 "prepTime": "PT15M",
 "recipeInstructions": {{SCHEMA - Recipe Steps}}
}

var script = document.createElement('script');
script.type = "application/ld+json";
script.innerHTML = JSON.stringify(data);
document.getElementsByTagName('head')[0].appendChild(script); 
 })(document);
</script>

【问题讨论】:

  • 描述已修复,通过变量仍然无法拉取图像 URL,是我使用了错误的代码吗?

标签: json seo google-tag-manager structured-data


【解决方案1】:

我可以查看您的自定义变量{{ SCHEMA - Recipe Image }} 的代码吗?我的第一个想法是您没有正确选择图像的 src 属性值,但除非我看到该代码,否则我无法知道。此外,查看您尝试选择的 HTML 可能会有所帮助。

作为参考,这是我成功实现图像自定义变量的方式:

function(){
var image = document.querySelector(".slide-2 a").getAttribute('href');
return image;
}

请注意,这是选择包装图像的链接的href 属性,您可能需要选择图像的src 属性,具体取决于您的HTML 结构。

一种可能是您忘记“返回”图像,一旦您选择了它,请检查一下。

您可能需要做一些更接近此的事情:

 function(){
    var image = document.querySelector("img").getAttribute('src');
    return image;
    }

另一个可能的答案:我最近为我的一个站点实现了此功能,并且我让 Google 的结构化数据测试工具将自定义变量随机显示为 null,但并非一直如此。我会刷新测试工具,它最终会正确显示,所以我不会 100% 信任该工具,因为它可能有问题。刷新一下,看看是否有帮助。

真正判断字段是否实际填充的唯一方法是打开“元素”选项卡下的 Chrome 开发人员工具,点击 Control - F 并搜索“架构”以找到由 GTM 插入的 JSON 对象,并查看 "url": 字段是否实际填充了 URL。

所以,如果这不能解决您的问题,请提供更多信息,我很乐意再看看!

【讨论】:

    【解决方案2】:

    https://moz.com/blog/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags

    ".....因为跟踪代码管理器将每个变量替换为一小段调用函数的 JavaScript — 返回调用的任何变量的值。"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 2018-04-13
      • 1970-01-01
      • 2014-07-15
      相关资源
      最近更新 更多