facebook - Facebook 目录 - 无法使每个页面的多个产品变体与 JSON-LD 一起使用
问题描述
我正在努力让 Facebook 的微数据标签调试器识别 JSON-LD 数据中定义的多个产品变体,并根据 schema.org 进行格式化。
这个问题已经描述了这个问题,但唯一的答案来自有同样问题的人,以及粘贴在 Facebook 示例数据中的人,其中仅包含 1 个变体。
从尝试实现由 Facebook 获取的微数据标签以允许更新目录,我发现的一致的事情是 Google 实现在页面中的任何位置都能找到微数据标签,以及架构的任何变化他们使用 .org 产品定义,而 Facebook 的实现在所有场景中都失败了,只有非常狭窄的场景。
首先,虽然 Facebook 开发者帮助页面中没有提到,但它只会识别在 HEAD 标记内的 JSON-LD 数据。(它声明 OpenGraph 标记应该在 HEAD 中,但对于 JSON-LD 没有这样说。)我还发现它似乎很少能够找到价格数据,并且没有解释任何验证失败很好。
我尝试按如下方式格式化 JSON-LD 数据:
- 每个变体包括一个产品对象
- 包括一个 Product 对象,其中包含多个 ProductModel 对象,每个变体一个
这些似乎都不起作用。
我已经设置了一些可以与Facebook 微数据标签调试器一起使用的测试页面:
- https://j0nkn1ght.github.io/fb-microdata1.html - 这包含来自Facebook 开发者帮助页面的确切数据
- https://j0nkn1ght.github.io/fb-microdata2.html - 这包含 2 个产品,每个变体一个
- https://j0nkn1ght.github.io/fb-microdata3.html - 这包含 1 个产品,有 2 个 ProductModel,每个变体一个
如果您使用调试器处理这些 URL,第一个成功找到包含价格的产品,第二个找到第一个变体但忽略第二个,第三个找不到产品的价格。
使用Google Rich Results 测试页面成功找到最后 2 个 URL 的两个变体。
有没有人成功让 Facebook 在同一页面上识别多个产品变体?
作为一个额外的问题,我发现的另一个奇怪的事情是,如果我从 ASP.Net MVC Core 应用程序生成 JSON 数据,并将其作为页面渲染的一部分注入页面,FB 调试器总是失败找到价格信息,而如果我将渲染的输出粘贴到视图中,FB 调试器会找到价格信息。我已经使用 Postman 来验证两种情况下呈现的页面是否相同,直到空白,所以我不知道如何解释这一点。有没有其他人经历过类似的事情?
解决方案
推荐阅读
- linux - 无法运行编译的 go 文件
- php - POST 请求中的 Symfony 正文表单数据为空
- nginx - 无法通过子域上的反向代理访问父目录
- powershell - PowerShell - 测试 TXT/CSV 文件中的多个 URL 并将 HTTP 代码记录到 CSV 文件中以进行报告
- pandas - 如何根据每行中的列值数量删除异常值
- mysql - 字段列表中的未知表?
- javascript - Wordpress:如何在 html 正文中使用 javascript 变量
- microsoft-graph-api - Graph Schedule + Shifts API:需要为应用程序上下文请求设置 MS-APP-ACTS-AS 标头
- audio - windows 10 扬声器用作麦克风
- cordova - 错误:找不到符号导入 android.support.v4.app.NotificationManagerCompat