配置文件属性

Adobe Target 中的配置文件属性是特定于某个访客的参数。这些属性存储在该访客的配置文件中,以提供可在您的活动中使用的关于该访客的信息。

用户配置文件包含网页访客的人口统计和行为信息。此信息可包括年龄、性别、购买的产品、上次访问的时间等等,Target 使用这些信息使它为访客提供的内容个性化。

在访客浏览您的网站时或在访客因另一会话而返回时,可使用保存在该配置文件中的配置文件属性定位内容或记录信息以供进行区段过滤。

设置配置文件属性:

  1. 单击​受众 > 配置文件脚本

    “配置文件脚本”选项卡

  2. 单击​创建脚本

    “创建配置文件脚本”对话框

    可以使用以下类型的配置文件属性:

    参数类型 描述
    mbox 创建 mbox 时,直接通过页面代码传入。请参阅 将参数传递到全局 Mbox
    注意:Target 对于每个 mbox 调用有 50 个唯一配置文件属性的限制。如果必须将超过 50 个配置文件属性传递到 Target,请使用配置文件更新 API 方法传递它们。有关详细信息,请参阅 Adobe Target API 文档中的“配置文件更新”
    配置文件 直接使用 JavaScript 代码段定义。这些代码段可存储运行总计,如消费者消费的总金额,并在每次 mbox 请求时执行这些代码段。请参阅以下“配置文件脚本属性”。

配置文件脚本属性

可使用关联的 JavaScript 代码段定义配置文件脚本属性。

您可以使用配置文件脚本,在多次访问中捕获访客属性。配置文件脚本属性是在 Target 中使用某种形式的服务器端 JavaScript 定义的代码段。例如,可使用配置文件脚本捕获某位访客访问您网站的频繁程度以及该访客上次访问的时间。

配置文件脚本与配置文件参数不同。配置文件参数使用 Target 的 mbox 代码实现捕获关于访客的信息。

创建配置文件脚本

可在 Target 界面的受众选项卡下找到配置文件脚本。

要添加配置文件脚本,请依次单击​配置文件脚本​选项卡、创建脚本,然后编写您的脚本。

要复制现有的配置文件脚本,请从配置文件脚本列表中单击所需的脚本对应的省略号图标,然后单击​复制

然后,您可以对受众进行编辑以创建一个类似的受众。

配置文件脚本对每个位置请求都运行配置文件属性“catchers”。收到位置请求后,Target 确定应该运行什么活动,并显示适合该活动和该体验的内容。Target 还跟踪该活动的成功情况,并运行任何相关的配置文件脚本。通过此过程可跟踪关于访问的信息,如访客的位置、访问时间是几点、访客访问网站的次数、以前是否购买过等等。然后,将这些信息添加到访客的配置文件,以使您可更好地跟踪该访客在您网站上的活动。

配置文件脚本属性在属性名称之前插入 user. 标记。例如:

if (mbox.name == 'Track_Interest') {
    if (profile.get('model') == "A5" &&; profile.get('subcat') == "KS6") {
        return (user.get('A5KS6') || 0) + 1;
    }
}

请记住以下信息:

  • 在代码中使用 user.get('parameterName') 引用配置文件脚本属性(包括本身)。

  • 使用 user.setLocal('variable_name', 'value') 保存下次运行脚本时可以访问的变量(在下一个 mbox 请求上)。使用 user.getLocal('variable_name') 引用变量。在您需要引用上个请求的日期和时间时,此过程非常有用。

    这些值就像配置文件脚本一样持续存在,但您只能在设置这些值的脚本中访问它们。

  • 参数和值区分大小写。请对照您在活动或测试期间收到的参数和值的大小写。

  • 有关更多 JavaScript 语法,请参阅下方的“脚本配置文件参数的 JavaScript 参考”部分。

  • 禁用脚本后,参数保留在配置文件中。对于用户,如果其配置文件已包含活动受众使用的参数,则符合该活动的资格。

  • 不能删除活动中正在使用的配置文件脚本。

  • 建议不要创建在一个配置文件脚本中使用另一个配置文件脚本所得结果的依赖性配置文件脚本。因为无法保证配置文件脚本执行的顺序。

查看配置文件脚本信息卡片

您可以查看配置文件脚本信息弹出卡片,该卡片类似于选件信息卡片。通过这些配置文件脚本信息卡片,您可以查看引用了所选配置文件脚本的活动列表,以及其他有用的元数据。

例如,通过从列表中(受众 > 配置文件脚本)单击所需配置文件脚本的信息图标,访问以下配置文件脚本信息卡片。

脚本信息选项卡包含以下信息:名称、描述和脚本代码。

配置文件脚本信息卡片

单击​查看完整详细信息​可查看引用所选配置文件脚本的受众和活动。

配置文件脚本信息卡片 >“脚本使用情况”选项卡

注意

在下列情况中,脚本使用情况选项卡不显示引用所选配置文件脚本的活动:

  • 活动处于草稿状态。
  • 活动中使用的内容或选件使用了脚本变量(活动中的内联选件或选件库中的选件)。

Target 在某些情况下禁用配置文件脚本

Target 在某些情况下自动禁用配置文件脚本,例如,如果脚本执行耗时过长或其指令过多。

禁用某个配置文件脚本后,Target UI 中的该配置文件脚本旁边会显示一个黄色警报图标,如下图所示:

将鼠标悬停在该配置文件脚本上时,会显示有关错误的详细信息,如下图所示:

系统禁用配置文件脚本的典型原因包括:

  • 引用了未定义的变量。
  • 引用了无效值。此错误一般是引用 URL 值和其他用户输入的数据但未经适当的验证所致。
  • 使用了过多 JavaScript 指令。Target 具有每个脚本 2000 条 JavaScript 指令的限制,但无法通过手动阅读 JavaScript 而简单地计算此限制。例如,Rhino 将所有函数调用和“new”调用视为 100 条指令。对任何函数的任何调用占用 100 条指令。此外,任何输入数据(例如 URL 值)的大小可能会对指令计数产生影响。
  • 不遵循以下最佳实践部分重点列举的项目。

最佳实践

下列准则旨在帮助编写简化的配置文件脚本,尽量减少出现错误,从而无需强制中断系统脚本即可对脚本进行处理。这些准则是从经过验证可高效运作的最佳实践中得出的。这些规范将与 Rhino 开发社区制定的原则和建议一起应用。

  • 将当前的脚本值设置为用户脚本中的局部变量,设置故障转移到空白字符串。

  • 通过确保该局部变量不是空白字符串而验证它。

  • 使用基于字符串的操作函数与正则表达式。

  • 使用有限制的 for 循环与无限制的 for 或 while 循环。

  • 切勿超过 1,300 个字符或 50 次循环迭代。

  • 切勿超过 2,000 条 JavaScript 指令。Target 具有每个脚本 2000 条 JavaScript 指令的限制,但无法通过手动阅读 JavaScript 而简单地计算此限制。例如,Rhino 将所有函数调用和“new”调用视为 100 条指令。此外,任何输入数据(例如 URL 值)的大小可能会对指令计数产生影响。

  • 不仅要注意脚本性能,还要注意所有脚本的组合性能。作为最佳实践,Adobe 建议指令总数小于 5000 条。清点指令数量并不显而易见,但重要的是要记住,将自动禁用超过 2000 条指令的脚本。活动的配置文件脚本数不应超过 300。随每个 mbox 调用执行每个脚本。应只运行所需数量的脚本。

  • 在正则表达式中,几乎从不需要以点星开头(例如:/.*match//a|.*b/)。正则表达式搜索将从字符串中的任意位置开始(除非与 ^ 绑定),因此其已经假定包含点和星形符号。如果此类正则表达式与足够长的输入数据相匹配(最少可达几百个字符),则脚本执行可能会中断。

  • 如果全部失败,则将脚本嵌套在 try/catch 中。

  • 以下建议可帮助您限制配置文件脚本的复杂性。配置文件脚本可执行的指令数量有限。

    作为最佳实践:

    • 使配置文件脚本保持小规模且尽可能简洁。
    • 避免使用正则表达式或仅使用简单的正则表达式。即使简单的表达式也需要使用许多指令求值。
    • 避免出现递归。
    • 应测试配置文件脚本的性能后再将配置文件脚本添加到 Target。在每次执行 mbox 请求时执行所有配置文件脚本。如果配置文件脚本无法正确执行,则执行 mbox 请求耗时更长,而这可能会影响流量和转化。
    • 如果配置文件脚本过于复杂,请考虑改为使用响应令牌
  • 有关更多信息,请参阅 JS Rhino 引擎文档。

调试配置文件脚本

以下方法可用于调试配置文件脚本:

注意

在配置文件脚本中使用 console.log 不会输出配置文件值,因为配置文件脚本在服务器端执行。

  • 添加配置文件脚本作为响应令牌以调试配置文件脚本:

    在 Target 中,依次单击​管理响应令牌,然后启用要调试的配置文件脚本。

    只要加载上面有 Target 的网站的页面,Target 产生的部分响应就会包含给定配置文件脚本的值,如下所示:

  • 使用 mboxTrace 调试工具调试配置文件脚本。

    此方法需要可在调试器工具部分中通过单击 Target > 管理 > 实施 > 生成授权令牌​而生成的授权令牌。

    然后,可将 mboxTrace=window&authorization=YOURTOKEN 这两个参数添加到页面 URL 的“?”之后。

    添加这些参数比响应令牌能够提供更多的信息,因为您可以获得配置文件的执行前快照和执行后快照。它还显示您所有可用的配置文件。

配置文件脚本常见问题解答

是否可以使用配置文件脚本捕获位于数据层中的页面信息?

由于配置文件脚本在服务器端执行,因此它们无法直接读取页面。数据必须通过 mbox 请求或其他 将数据导入 Target 的方法。当数据进入 Target 之后,配置文件脚本可按照 mbox 参数或配置文件参数的形式读取数据。

脚本配置文件参数的 JavaScript 参考

有效地使用脚本配置文件参数需要一点简单的 Javascript 知识。本节提供了一个快速参考,借助此参考,您在几分钟内便可以高效地使用此功能。

“脚本配置文件参数”位于 mbox/配置文件选项卡下。您可以编写返回任何 Javascript 类型(字符串、整数、数组等)的 Javascript 程序。

脚本配置文件参数示例

**名称:**user.recency

var dayInMillis = 3600 * 24 * 1000;
if (mbox.name == 'orderThankyouPage') {
    user.setLocal('lastPurchaseTime', new Date().getTime());
}
var lastPurchaseTime = user.getLocal('lastPurchaseTime');
if (lastPurchaseTime) {
    return ((new Date()).getTime() - lastPurchaseTime) / dayInMillis;
}

创建一个以毫秒为单位的“天数”变量。如果 mbox 名称为 orderThankyouPage,请设置一个名为 lastPurchaseTime 的局部(不可见)用户配置文件属性以显示当前日期和时间的值。其中读取上次购买时间的值,如果已定义,Target 还返回自上次购买时间以来过去的时间除以一天的毫秒数(得出自上次购买以来的天数)。

**名称:**user.frequency

var frequency = user.get('frequency') || 0;
if (mbox.name == 'orderThankyouPage') {
    return frequency + 1;
}

创建名为 frequency 的变量,并将其初始化为以前的值,如果没有以前的值,则初始化为 0。如果 mbox 名称为 orderThankyouPage,则返回递增的值。

**名称:**user.monetaryValue

var monetaryValue = user.get('monetaryValue') || 0;
if (mbox.name == 'orderThankyouPage') {
    return monetaryValue + parseInt(mbox.param('orderTotal'));
}

创建一个名为 monetaryValue 的变量,查找给定访客的当前值(如果没有前一个值,则设置为 0)。如果 mbox 名称为 orderThankyouPage,则通过添加前一个值和传递给 mbox 的 orderTotal 参数值来返回新的货币值。

名称: adobeQA

if (page.param("adobeQA"))
     return page.param("adobeQA");
else if (page.param("adobeqa"))
     return page.param("adobeqa");
else if (mbox.param("adobeQA"))
     return mbox.param("adobeQA");

创建名为 adobeQA 的变量以跟踪活动 QA 的用户。

对象和方法

脚本配置文件参数可引用以下对象和方法:

对象或方法 详细信息
page.url 当前 URL。
page.protocol 页面使用的协议(http 或 https)。
page.domain 当前的 URL 域(第一个斜杠之前的所有内容)。例如,http://www.acme.com/categories/men_jeans?color=blue&size=small 中的 www.acme.com
page.query 当前页面的查询字符串。“?”之后的所有内容。例如,http://www.acme.com/categories/mens_jeans?color=blue&size=small 中的 blue&size=small
page.param(‘<par_name>’) <par_name> 表示的参数的值。如果当前 URL 是 Google 搜索页面,而且您已经输入 page.param('hl'),则对于 URL http://www.google.com/search?hl=en& q=what+is+asdf&btnG=Google+Search,您将获得“en”。
page.referrer 与上述相同的一组操作适用于反向链接和登陆(即 referrer.url 是反向链接的 url 地址)。
landing.url, landing.protocol, landing.query, 和 landing.param 类似于此类页面,但登陆页面除外。
mbox.name 活动 mbox 的名称。
mbox.param(‘<par_name>’) 活动 mbox 中给定名称的 mbox 参数。
profile.get(‘<par_name>’) 客户端创建的用户配置文件参数,名称为 <par_name>。例如,如果用户设置了名为“gender”的配置文件参数,则可以使用“profile.gender”提取该值。返回为当前访客设置的“profile.<par_name>”值;如果尚未设置任何值,则返回 null。请注意,profile.get(<par_name>) 被认定为函数调用。
user.get(‘<par_name>’) 返回为当前访客设置的“user.<par_name>”值;如果未设置任何值,则返回 null。
user.categoryAffinity 返回最佳类别的名称。
user.categoryAffinities 返回具有最佳类别的数组。
user.isFirstSession 如果这是访客的第一个会话,则返回 true。
user.browser 返回 HTTP 标头中的用户代理。例如,您可以创建仅针对 Safari 用户的表达式目标:if (user.browser != null && user.browser.indexOf('Safari') != -1) { return true; }

常用运算符

所有标准的 JavaScript 运算符均已列出并可用。JavaScript 运算符可用于字符串和数字(和其他数据类型)。简要介绍:

运算符 描述
== 表示相等。当两边的操作数相等时,为 true。
!= 表示不相等。当两边的操作数不相等时,为 true。
< 表示左侧的变量小于右侧的变量。如果变量相等,则得出的值为 false。
> 表示左侧的变量大于右侧的变量。如果变量相等,则得出的值为 false。
<= 除了如果变量相等,则其所得的值为 true 之外,与 < 相同。
>= 除了如果变量相等,则其所得的值为 true 之外,与 > 相同。
&& 从逻辑上讲,对于“AND”左侧和右侧的表达式,仅当两侧都为 true 时才为 true(否则为 false)。
`
// 检查源是否包含目标布尔值所包含的所有元素(源数组,目标数组)。
// 从(正则表达式对应的)目标提取子字符串并将它解码 Array/*String*/ decode(String encoding, String regexp, String target)
该功能还支持使用常量字符串值、分组 (`condition1

培训视频:配置文件脚本 “教程”标记

以下视频包含有关使用和创建配置文件脚本的信息。

  • 阐明配置文件脚本是什么
  • 介绍配置文件脚本与配置文件参数的不同之处
  • 创建简单的配置文件脚本
  • 使用“可用令牌”菜单访问可用选项
  • 启用和禁用配置文件脚本

在此页面上