Google 带 Json-ld 的跟踪代码管理器 - 数据层变量未返回值

Google Tag Manager with Json-ld - datalayer variable not returning value

我正在尝试在电子商务产品页面上执行此操作。我在产品页面的所有综合浏览量上触发了以下自定义 HTML 标记。它使用数据层变量,debuging/preview 工具显示每个变量的正确值:

{
    “@context” : “http://schema.org”,  
    “@type”: “Product”,
    “name”: {{productName}},
    “image”: {{productImage}},
    “description”: {{productDescription}},
    “brand”: {
    “@type”: “Thing”,
    “name”: {{productBrand}}
 },
    “offers”: {
    “@type”: “Offer”,
    “priceCurrency”: “GBP”,
    “price”: {{productPrice}}
    }
}

我认为我正确地遵循了模板,但这就是 Google 的结构化数据测试工具中显示的内容:

“@context” : “http://schema.org”,
“@type”: “Product”,
“name”: google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023100’),
“image”: google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023101’),
“description”: google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023102’),

“brand”: {
“@type”: “Thing”,
“name”: google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023103’)},

“offers”: {
“@type”: “Offer”,
“priceCurrency”: “GBP”,
“price”: google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023104’)
}

似乎return GTM 数据模型中宏的名称而不是值?我是不是做错了什么?

您没有做错任何事 - 这是一个表达式,将评估您的数据层变量的值。

google_tag_manager[“GTM-PHZTTZ”].macro(‘gtm1469648023100’) 很简单就是 "return the value from the variable with the internal id of 1469648023100 from the tag manager instance with the id GTM-PHZTTZ".

Googlebot 在为站点编制索引时会执行 Javascript,并且能够直接解析 JSON(不执行 Javascript 的抓取工具很可能无法使用Json,所以这不是问题)。