Adobe Experience Platform Launch已更名为Adobe Experience Platform中的一套数据收集技术。 因此,产品文档中的术语有一些改动。有关术语更改的综合参考,请参阅以下文档。
核心标记扩展是随Adobe Experience Platform一起发布的默认扩展。
本文档提供了有关使用核心扩展构建规则时可用的选项的信息。
本主题介绍核心扩展中可用的事件类型。有关可以为多种不同事件类型设置的选项的信息,请参阅 选项 部分。
当选项卡失去焦点时,选项卡模糊事件会触发该操作。 没有适用于此事件类型的设置。
选项卡聚焦事件会在选项卡获得焦点时触发该操作。 没有适用于此事件类型的设置。
当表单失去焦点时,模糊事件会触发该操作。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
焦点事件会在表单获得焦点时触发该操作。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
提交事件会在提交表单时触发该操作。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
按下某个键时会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
媒体结束时,将触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
媒体加载数据时会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
暂停媒体时会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
播放媒体时会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
媒体停止时会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果媒体已播放指定的时长,则会触发该事件。 您必须指定媒体必须播放的持续时间才能触发事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果音量升高或降低,则会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果设备的方向发生更改,则会触发该事件。 您必须指定方向必须更改才能触发事件的持续时间。 没有适用于此事件类型的设置。
如果用户执行放大或缩小操作,则会触发该事件。 没有适用于此事件类型的设置。
如果选择(单击)指定的元素,则会触发该事件。 (可选)您可以为元素指定在触发该事件之前必须为 true 的属性值。
如果元素是锚点标记(<a>
)到链接的内容,您还可以指定是否将导航延迟一段时间。 如果您的规则需要额外的执行时间,并且在页面导航发生之前通常无法完成操作,则可以使用此选项。
使用此选项时应格外谨慎,因为如果使用不正确,它可能会对用户体验产生负面影响。
当您使用链接延迟时,Platform实际上会阻止浏览器导航离开页面。 然后,在指定的超时时间后,它将执行JavaScript重定向到原始目标。 当您的页面标记具有以下特征时,这会特别危险 <a>
标记中,预期功能不会实际将用户导航到离开页面。 如果您无法以任何其他方式解决您的问题,则您应该极其准确地使用选择器定义,以便此事件将在您真正需要它的地方(而不是其他任何地方)触发。
默认的链接延迟值为100毫秒。 请注意,标记将始终等待指定的时间,不会以任何方式与规则操作的执行相关联。 延迟可能会强制用户等待的时间超过所需时间,也可能会延迟时间不足以成功完成规则的所有操作。 较长的延迟为规则执行提供了更多时间,但也加剧了用户体验。
要触发延迟,需要提供触发事件的选定元素以及触发事件之前的特定时间量。
有关高级选项,请参阅 选项 部分以了解更多信息。
如果用户将鼠标悬停在指定的元素上,则会触发该事件。 您还必须配置规则是立即触发还是在指定的毫秒数之后触发。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果发生自定义事件类型,则会触发该事件。 在代码库中的其他位置定义的命名JavaScript函数可用作自定义事件类型。 必须指定自定义事件类型的名称,并配置任何其他设置,如中所述 选项 部分。
如果指定的数据元素发生更改,则会触发该事件。 必须提供数据元素的名称。 您可以在文本字段中键入数据元素的名称,或者选择文本字段右侧的数据元素图标,然后从显示的对话框中提供的列表中选择数据元素。
直接调用事件绕过事件检测和查找系统。 直接调用规则最适合您希望准确告知系统当前发生事件的情况。 此外,它们还适用于系统无法检测到DOM中的事件的情况。
定义直接调用事件时,必须指定将用作此事件标识符的字符串。 如果 触发直接调用操作 会触发包含相同标识符的任何直接调用事件规则,然后运行侦听该标识符的任何直接调用事件规则。
如果存在指定的元素,则会触发该事件。 请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果用户进入指定的视区,则会触发该事件。 必须提供CSS选择器作为定位匹配元素的条件。 您还必须配置规则是立即触发还是在指定的毫秒数后触发,以及事件是应在每次事件发生时触发,还是只应在第一次发生时触发。
请参阅 选项 部分以了解有关可自定义的事件设置的更多信息。
如果发生pushState或hashchange事件,则会触发该事件。 没有适用于此事件类型的设置。
如果用户在页面上停留指定的秒数,则会触发该事件。 必须指定触发事件之前必须经过的秒数。
当DOM就绪时,将触发该事件,用户可以与页面进行交互。 没有适用于此事件类型的设置。
加载标记库后,就会触发事件。 没有适用于此事件类型的设置。
事件触发一次 _satellite.pageBottom();
已被调用。 异步加载标记库时,不应使用此事件类型。 没有适用于此事件类型的设置。
当浏览器调用了onLoad并且页面加载完成时,会触发事件。 没有适用于此事件类型的设置。
每个表单事件类型都使用以下设置:
输入用于标识将会触发事件的元素的 CSS 选择器。
如果选择此选项,则以下参数将变为可用:
property=value
指定属性的值
Regex
如果 property=value
是正则表达式,则启用此选项。
Add
添加其他 property=value
对。
此部分介绍核心扩展中可用的条件类型。这些条件类型可以与常规或例外逻辑类型一起使用。
指定要使事件触发操作而必须存在的 Cookie 名称和值。
指定必须作为事件条件存在的任何自定义代码。
自定义代码现在支持ES6+ JavaScript。 请注意,某些较旧的浏览器不支持ES6+。 要了解使用ES6+函数的影响,请针对所有应受支持的Web浏览器进行测试。
使用内置代码编辑器输入自定义代码:
将自动提供一个名为 event
的变量,您可以从自定义代码中引用该变量。event
对象将包含有关触发规则的事件的有用信息。确定哪些事件数据可用的最简单方法是从自定义代码中将 event
记录到控制台:
console.log(event);
return true;
在浏览器中运行规则,并在浏览器控制台中检查已记录的事件对象。了解了哪些信息可用后,您便可以将其用于自定义代码中的程序化决策。
条件排序
启用属性设置中的“按顺序运行规则组件”选项后,您可以在执行异步任务时,让后续规则组件等待。
当条件返回承诺时,直到返回的承诺得到解析后才会执行规则中的下一个条件。如果承诺被拒绝,标记会将该条件视为失败,且不会执行该规则的其他条件或操作。
返回承诺的条件的示例:
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (new Date().getDay() === 5) {
resolve();
} else {
reject();
}
}, 1000);
});
比较两个值以确定此条件是否返回 true。
假设您有一个包含多个条件的规则,此条件可能会返回 true,但是由于其他条件评估为 false 或其中一个例外评估为 true,因此该规则仍不会触发。
可以使用以下值比较运算符:
Equal:如果使用非严格比较后认为两个值相等,则该条件会返回 true(在 JavaScript 中,运算符为 ==)。值可以是任何类型。在值字段中输入 true、false、null 或 undefined 之类的词时,该词将作为字符串进行比较,而不会转换为其 JavaScript 等效字符。
Does Not Equal:如果使用非严格比较后认为两个值不相等,则该条件会返回 true(在 JavaScript 中,运算符为 !=)。值可以是任何类型。在值字段中输入 true、false、null 或 undefined 之类的词时,该词将作为字符串进行比较,而不会转换为其 JavaScript 等效字符。
Contains:如果第一个值包含第二个值,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 false。
Does Not Contain:如果第一个值不包含第二个值,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 true。
Starts With:如果第一个值以第二个值开头,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 false。
Does Not Start With:如果第一个值不以第二个值开头,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 true。
Ends With:如果第一个值以第二个值结尾,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 false。
Does Not End With:如果第一个值不以第二个值结尾,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 true。
Matches Regex:如果第一个值匹配正则表达式,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 false。
Does Not Match Regex:如果第一个值不匹配正则表达式,则该条件会返回 true。数字将转换为字符串。除数字或字符串之外的任何其他值都会导致该条件返回 true。
Is Less Than:如果第一个值小于第二个值,则该条件会返回 true。表示数字的字符串将转换为数字。除数字或可转换字符串之外的任何其他值都会导致该条件返回 false。
Is Less Than Or Equal To:如果第一个值小于或等于第二个值,则该条件会返回 true。表示数字的字符串将转换为数字。除数字或可转换字符串之外的任何其他值都会导致该条件返回 false。
Is Greater Than:如果第一个值大于第二个值,则该条件会返回 true。表示数字的字符串将转换为数字。除数字或可转换字符串之外的任何其他值都会导致该条件返回 false。
Is Greater Than Or Equal To:如果第一个值大于或等于第二个值,则该条件会返回 true。表示数字的字符串将转换为数字。除数字或可转换字符串之外的任何其他值都会导致该条件返回 false。
Is True:如果提供的值是值为 true 的布尔值,则该条件会返回 true。如果您提供的值是任何其他类型,则不会将该值转换为布尔值。除值为 true 的布尔值之外的任何其他值都会导致该条件返回 false。
Is Truthy:如果提供的值在转换为布尔值后为 true,则该条件会返回 true。有关 truthy 值的示例,请参阅 MDN 的 Truthy 文档。
Is False:如果提供的值是值为 false 的布尔值,则该条件会返回 true。如果您提供的值是任何其他类型,则不会将该值转换为布尔值。除值为 false 的布尔值之外的任何其他值都会导致该条件返回 false。
Is Falsy:如果提供的值在转换为布尔值后为 false,则该条件会返回 true。有关 falsy 值的示例,请参阅 MDN 的 Falsy 文档。
指定要使事件触发操作而必须存在的 JavaScript 变量名称和值。
指定用户必须登陆才能触发事件的页面。
指定要使事件触发操作,访客应该是新访客还是回访访客。
选择下列选项之一:
配置在触发操作之前访客必须查看页面的次数。
如果用户的会话数满足指定的标准,则会触发操作。
如果用户的会话数满足指定的标准,则会触发操作。
配置在触发操作之前访客必须在网站上停留的时长。
如果用户的会话数满足指定的标准,则会触发操作。
指定要使操作能够触发,必须为 true 的访客流量源。
选择要使操作能够触发,访客必须使用的浏览器。
选择以下一种或多种浏览器:
选择要使操作能够触发,访客必须使用的设备类型。
选择以下一种或多种设备类型:
选择要使操作能够触发,访客必须使用的操作系统。
选择以下一种或多种操作系统:
选择要使操作能够触发,访客必须在其设备上使用的屏幕分辨率。
选择要使操作能够触发,访客必须在其设备上使用的窗口大小。
指定访客的域。
指定 URL 中必须存在的一个或多个哈希模式。
使用 OR 连接多个哈希模式。
指定 URL 中必须存在的一个或多个路径。这包括路径和查询字符串。
使用 OR 连接多个路径。
指定 URL 中必须存在的一个或多个路径。这包括路径,但不包括查询字符串。
使用 OR 连接多个路径。
指定 URL 中使用的协议。
选择下列选项之一:
指定 URL 中使用的 URL 参数。
指定 URL 中必须存在的一个或多个子域。
使用 OR 连接多个子域。
指定日期范围。选择发生事件的日期和时间范围以及时区。
指定条件会返回 true 的最大次数。您可以从下列选项中进行选择:
对于每个会话最大频率为 1 的条件,可将这两个 localStorage
项目进行比较。如果 visitorTracking.sessionCount
大于 maxFrequency.session
计数,则取样条件为 true。如果两者相等,则条件为 false。
sessionCount
是 visitorTracking
项目,因此必须启用访客 API 才能使取样条件正常工作。
指定条件会返回 true 的次数百分比。
此部分介绍核心扩展中可用的操作类型。
自定义代码现在支持ES6+ JavaScript。 请注意,某些较旧的浏览器不支持ES6+。 要了解使用ES6+函数的影响,请针对所有应受支持的Web浏览器进行测试。
提供在触发事件并评估条件后运行的代码。
选择 JavaScript 作为语言时,将自动提供一个名为 event
的变量,您可以从自定义代码中引用该变量。event
对象将包含有关触发规则的事件的有用信息。确定哪些事件数据可用的最简单方法是从自定义代码中将 event
记录到控制台:
console.log(event);
在浏览器中运行规则,并在浏览器控制台中检查已记录的事件对象。了解哪些信息可用后,您便可以将其用于自定义代码中的程序化决策,将一段 event
对象发送到服务器等。
适用于所有Adobe Experience Platform用户的核心扩展包含用于执行用户提供的JavaScript或HTML的Custom Code操作。 通常,了解如何处理具有 Custom Code 操作的规则对用户很有用。
自定义操作的代码会嵌入在主标记库中。 该代码将使用 document.write 写入文档。如果规则具有多个 Custom Code 操作,则该代码将按规则中配置的顺序写入。
自定义操作的代码将从服务器加载并使用 Postscribe 写入文档。如果规则具有多个 Custom Code 操作,则该代码将从服务器并行加载,但会按照规则中配置的顺序写入。
虽然在加载页面后使用 document.write 通常会出现问题,但对于通过 Custom Code 操作提供的代码来说,这并不是问题。无论何时执行代码,您都可以在 Custom Code 操作中使用 document.write。
标记代码编辑器中使用的验证器可识别开发人员编写的代码中存在的问题。 经过缩小的代码(例如从代码管理器中下载的 AppMeasurement.js 代码)可能会被 验证器错误地标记为存在问题,这通常可以忽略不计。
启用属性设置中的“按顺序运行规则组件”选项后,您可以在操作执行异步任务时,让后续规则组件等待。 对于 JavaScript 和 HTML 自定义代码,这项操作的原理有所不同。
JavaScript
创建 JavaScript 自定义代码操作时,您可以从操作返回承诺。规则中的下一项操作将仅在返回的承诺得到解析后才执行。如果承诺被拒绝,则不会执行规则中的后续操作。
仅当JavaScript未设置为全局执行时,这项操作才起作用。 如果您正在全局范围内执行自定义代码操作,标记会将承诺视为立即解析,并转到处理队列中的下一个项目。
返回承诺的 JavaScript 自定义代码操作的示例:
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (new Date().getDay() === 5) {
resolve();
} else {
reject();
}
}, 1000);
});
HTML
创建 HTML 自定义代码操作时,可在自定义代码中使用名为 onCustomCodeSuccess()
的函数。您可以调用此函数来指示您的自定义代码已完成,并且标记可能会继续执行后续操作。 另一方面,如果您的自定义代码以某种方式失败,您可以调用 onCustomCodeFailure()
。它会通知标记不要执行该规则中的后续操作。
使用新回调的 HTML 自定义代码操作的示例:
<script>
setTimeout(function() {
if (new Date().getDay() === 5) {
onCustomCodeSuccess();
} else {
onCustomCodeFailure();
}
}, 1000);
</script>
此操作会触发使用特定规则的所有规则 直接调用事件. 在配置操作时,必须提供要触发的直接调用事件的标识符字符串。 或者,您也可以通过将数据传递到直接调用事件 detail
对象,可包含一组自定义的键值对。
该操作将直接映射到 track
方法 在 satellite
对象,可通过客户端代码访问该对象。
数据元素类型由扩展决定。对于可创建的类型,没有任何限制。
以下部分介绍核心扩展中可用的数据元素类型。其他扩展则使用其他数据元素类型。
可在“Cookie 名称”字段中提及任何可用的域 Cookie。
cookieName
随后可在操作或条件中引用的任何常数字符串值。
string
自定义代码现在支持ES6+ JavaScript。 请注意,某些较旧的浏览器不支持ES6+。 要了解使用ES6+函数的影响,请针对所有应受支持的Web浏览器进行测试。
通过选择“打开编辑器”并将代码插入编辑器窗口,可以将自定义 JavaScript 输入到用户界面中。
编辑器窗口中需要一个返回语句,以指示应该将什么值用作数据元素值。如果不包括返回语句或返回了值 null
或 undefined
,则将使用数据元素的默认值作为数据元素值。
示例:
var pageType = $('div.page-wrapper').attr('class').split('')[1];
if (window.location.pathname == '/') {
return 'homepage';
} else {
return pageType;
}
如果在规则执行时检索自定义代码数据元素,则将自动提供一个名为 event
的变量,您可以从自定义代码中引用该变量。event
对象将包含有关触发规则的事件的有用信息。确定哪些事件数据可用的最简单方法是从自定义代码中将 event
记录到控制台:
console.log(event);
return true;
在浏览器中运行规则,并在浏览器控制台中检查已记录的事件对象。了解可能使用您的数据元素的各种规则下哪些信息可用后,您便可以将其用于自定义代码中的程序化决策,或返回一段 event
对象作为数据元素的值。
可以检索任何元素值,例如 div 或 H1 标记。
CSS 选择器链:
id#dc logo img
获取以下元素的值:
src
可以使用路径字段引用任何可用的 JavaScript 对象或变量。
标记数据元素可用于捕获标记JavaScript变量或对象属性。 随后,您可以通过引用标记数据元素,在扩展或自定义规则中使用这些值。 如果数据源发生更改,则只需更新对该源的引用即可。
在以下示例中,标记包含一个名为的JavaScript变量 Page_Name
.
<script>
//data layer
var Page_Name = "Homepage"
</script>
在创建数据元素时,只需提供该变量的路径。
如果您使用数据收集器对象作为数据层的一部分,请在路径中使用点表示法来引用要捕获到数据元素中的对象和属性,例如 _myData.pageName
,或 digitalData.pageName
,等等。
window.document.title
在 Local Storage Item Name 字段中提供本地存储项目的名称。
本地存储允许浏览器将信息从一个页面存储到另一个页面 (https://www.w3schools.com/html/html5_webstorage.asp)。本地存储的工作方式与 Cookie 非常类似,只是其存储空间更大,存储方式更灵活。
使用提供的字段指定您为本地存储项目创建的值,例如 lastProductViewed.
选择多个数据元素,每个元素都会提供对象。 这些对象将深层(递归)地合并在一起,以生成一个新的对象。 将不会修改源对象。 如果在多个源对象的同一位置找到属性,则将使用后一个对象的值。 如果源属性值是 undefined
,它不会覆盖先前源对象中的值。 如果在多个源对象上的同一位置找到数组,则这些数组将连接在一起。
例如,假设您选择的数据元素提供了以下对象:
{
"sport": {
"name": "tennis"
},
"dessert": "ice cream",
"fruits": [
"apple",
"banana"
]
}
假定您还选择另一个提供以下对象的数据元素:
{
"sport": {
"name": "volleyball"
},
"dessert": undefined,
"pet": "dog",
"instrument": undefined,
"fruits": [
"cherry",
"duku"
]
}
合并对象数据元素的结果会是以下对象:
{
"sport": {
"name": "volleyball"
},
"dessert": "ice cream",
"pet": "dog",
"instrument": undefined,
"fruits": [
"apple",
"banana",
"cherry",
"duku"
]
}
使用这些数据点捕获页面信息,以将其用在规则逻辑中,或者将信息发送到 Analytics 或外部跟踪系统。
您可以选择以下任一页面属性,以将其用在数据元素中:
在 URL Parameter 字段中指定单个 URL 参数。
只有名称部分是必需提供的,并且应该忽略任何特殊标志符,例如“?”或“=”
contentType
使用此数据元素可生成一个随机数。随机数通常用于对数据采样或创建ID,例如点击ID。 随机数也可用于对敏感数据进行模糊或加盐处理。一些示例可能包括:
指定随机数的最小值和最大值。
默认值:
最小值:0
最大值:1000000000
在 Session Storage Item Name 字段中提供会话存储项目的名称。
会话存储类似于本地存储,不同之处在于,会话存储在会话结束后会丢弃数据,而本地存储或 Cookie 则可以保留数据。
与页面信息类似,此数据元素使用常见行为类型来丰富规则和其他平台解决方案中的逻辑。
选择以下任一访客行为属性:
一些常见用例包括:
的包装器 Value Comparison 条件。 根据比较的结果,将在表单中返回两个可用值之一。 因此可以处理“如果……那么……否则……”无需额外规则的情况。
允许您选择以下变量之一:
_satellite.environment.stage
以区分开发/暂存/生产环境。turbine.buildInfo.buildDate
包含相同的值,如 _satellite.buildInfo.buildDate
._satellite.property.name
以获取Launch资产的名称。_satellite.property.id
获取Launch资产的IDevent.$rule.name
包含已执行规则的名称。event.$rule.id
包含已执行规则的ID。event.$type
包含触发规则的事件类型。event.detail
包含自定义事件或直接调用规则的有效负载。event.identifier
包含直接调用规则的标识符。返回以下其中一个访客设备属性:
它是常用JavaScript操作的包装器。 它接收数据元素作为输入。 它会返回数据元素值的以下转换之一的结果: