Javascript 使用GTM元素可见性触发器和数据层推送动态内容

Javascript 使用GTM元素可见性触发器和数据层推送动态内容,javascript,google-tag-manager,google-datalayer,Javascript,Google Tag Manager,Google Datalayer,Google Tag Manager的元素可见性触发器似乎是一种非常好的方法,可以使用类或ID跟踪元素是否出现在视口中 标准报告似乎会收回类似这样的数据 但是,我希望能够使用触发器来检测和报告动态创建的列表中的项目。例如,该元素将根据其类触发,该类由列表中的所有其他元素共享,每个元素可能会填充从数据库中提取的特定数据,例如:名称、产品ID、价格等 目前,这已使用自定义事件触发器完成,但它会报告页面上的所有元素,无论它们是否已加载 我想知道的是,元素可见性触发器是否适用于此,如果适用,我如何操作

Google Tag Manager的元素可见性触发器似乎是一种非常好的方法,可以使用类或ID跟踪元素是否出现在视口中

标准报告似乎会收回类似这样的数据

但是,我希望能够使用触发器来检测和报告动态创建的列表中的项目。例如,该元素将根据其类触发,该类由列表中的所有其他元素共享,每个元素可能会填充从数据库中提取的特定数据,例如:名称、产品ID、价格等

目前,这已使用自定义事件触发器完成,但它会报告页面上的所有元素,无论它们是否已加载

我想知道的是,元素可见性触发器是否适用于此,如果适用,我如何操作它以执行我需要的操作?

可能是

您可以使用CSS选择器,并通过类名为动态创建的项进行选择

在“何时触发此触发器”选项中,您将选择“每次元素出现时”

最后,您将设置“侦听DOM更改”选项。这将在每次操作DOM时(例如,通过插入列表元素)检查触发器中的其他条件是否匹配


请注意,GTM警告说,使用该选项可能会导致性能损失(因为它会在每次DOM操作中运行)。所以你可能不太想这么做。

谢谢@Eike Pierstoff。这些是我目前的设置,并带回了我所包含的截图中的结果。当然,除非我错过了什么。我希望能够返回数据库中保存的特定数据,该数据在加载时与每个元素相关。您可以为gtm.element创建一个数据层变量(该变量将返回刚刚变为可见的元素),如果您使用自定义数据属性读取该元素的属性,则可以对标准属性或数据集使用getAttribute。