【发布时间】:2016-11-30 20:07:52
【问题描述】:
我正在尝试将“sku”的值捕获为 GTM 中的变量。这个值会在每个产品页面上发生变化。
页面上的代码如下所示:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"sku": "305FS-UJNA5",
"offers": [{
"@type": "Offer",
"price": "99.00",
"availability": "InStock",
"priceCurrency": "USD"
}]
}
</script>
预计要捕获的变量:305FS-UJNA5(不带双引号)。
有没有办法通过使用自定义 javascript 变量类型来实现此目的,该变量类型将在页面上搜索 "sku": " 并返回值直到下一个双引号?
或者,最好的方法是什么?
我已经尝试过搜索,但在 GTM 中返回 undefined...
function () {
var content = document.body.innerText;
var query=""sku": "";
if (content.search(query) > -1 ) {
return true;
} else {
return false;
}
}
【问题讨论】:
-
为什么不利用 GTM 并将您需要的数据推送到 dataLayer 中呢? (并不是说你的方法是错误的,但是......只是把它扔在那里,因为你已经有了 GTM。)
-
@nyuen 如果它在 dataLayer 中,那就太棒了。但是如何让 GTM 读取 305FS-UJNA5 的值并将其推送到 dataLayer?
-
您需要对键/值对进行
dataLayer.push。如果不将其放入可能无济于事的答案中,我将无法向您展示更多内容。但是你可以谷歌数据层推送。您可以使用event来执行此操作,以便 GTM 可以轻松获取数据并在您的标签中使用它们。 -
删除了我的答案,因为我认为它不相关(还)。我认为其中一个问题是您的结构化数据不容易访问。例如,如果它有一个 ID,那么你可以按照这个:autoidlabs.org.uk/GS1Digital/Demos/GS1vocab/…。我不确定您如何才能访问它。
标签: javascript google-tag-manager