我知道这已经晚了 10 个月,但这可能会帮助您或引导到达这里的人希望找到正确的方向和/或解决方案。在寻找其他东西时,我遇到了您未回答的问题。看来您有两个问题,所以我会尝试回答两个问题。
对于初学者,您可能想快速查看GTM 动态再营销文档。
问题 1:从哪里提取 [variables] 的信息?
您在此处使用 dataLayer 处于正确的轨道上。通常你需要在你的网站上使用自定义 Javascript 来实现它(在你的情况下你不能这样做/见下文)。您通常会使用 dataLayer.push() 函数填充事件和变量。
这是一个看起来如何的示例:
dataLayer.push({
'event': 'your_event_name',
'a_container_name' : {
'key1' : key_var_1,
'key2' : key_var_2, }
})
您还可以在这些结构(嵌套字典)中执行内部结构。
填充这些变量后,您可以在 Google 跟踪代码管理器 (GTM) 中创建变量,然后使用您使用的命名约定(用“。”分隔)简单地选择值。(点)。对于上述情况,您可以例如执行以下操作:“a_container_name.key1”,然后使用“key_var_1”的值填充 GTM 中的变量。
您可以使用事件名称(此处为“your_event_name”)作为 GTM 中代码的触发器来触发您的代码。
因此,在您的情况下,您通常希望使用一些 javascript 从网页中获取变量“ecomm_prodid”,然后将其推送到 dataLayer 中,以便您按照描述在 GTM 中获取。
问题 2:我无法将代码添加到我的网站,我该怎么办?
虽然这完全有可能,但不幸的是有点乏味并且可能更容易出错。在这种情况下,您必须通过 GTM 直接从您的网站读取所需的值。
您可以在 GTM 的变量中使用自定义 javascript。为此,请单击“变量”,然后单击“新建”并选择“自定义 Javascript”。然后,您可以在这里使用几乎任何 javascript 来根据 id、class 或任何其他 HTML 标识符从您的网站上刮取价值。如何做到这一点有很多选择。你必须使用最适合你的东西。
然而,这可能非常容易出错。原因如下:您已经声明您的价格等级是“fPrice -g-product-final-price-258”。这在我看来很像一个自动生成的标识符。下次您查看该产品或选择另一种产品时,它很可能会有所不同。因此,您的选择是采用另一个唯一标识符或使用该标识符的子字符串(例如:仅 fPrice -g-product-final-price)。但是请记住,如果您的网站更新或更改了这些类名,那么您立即编写的 javascript 将不再起作用。
因此,重要的是选择某种健壮的标识符形式或编写 javascript 代码以使其持久。如前所述,从您的网站上直接抓取或读取的 jvascript 可以根据您的喜好进行自定义。这是一个粗略的例子,说明这会是什么样子。
var text = ''; // empty value placeholder
if (document.getElementsByClassName("YOUR_SPECIFIC_CLASS_NAME")) {
....loop through returned elements if applicable....
....do stuff here or check stuff here...
text = SOME_ELEMENT.innerHTML;
console.log(text) // helps to debug your code
}
return text
这只是一个粗略的例子,但如果你让它工作,那么你可以简单地在你的标签中使用填充的变量,在任何支持带有双花括号的变量的字段中:{{YOU_TAG_MANAGER_VARIABLE_NAME}}
我希望这会有所帮助,并为您提供一些见解。祝你好运!
PS:顺便说一句。如果您因为您的网站提供商或网站引擎而无法编辑您的代码,那么我强烈建议您远离它。如您所见,它会为您省去很多麻烦。对于中小型网站和小型电子商务商店,请使用 Wordpress。对于更大的东西,还有其他解决方案。无论如何,那里有一些网站建设者非常糟糕,但同时也非常具有误导性。基本上会导致您遇到您所描述的问题。不要使用它们:)