目标属性¶
在创建 ASRouter 消息(例如上下文功能推荐或入门卡片)时,您可以选择在这些消息中包含**目标信息**。
目标信息必须捕获在表达式中,该表达式可以访问以下属性。您可以根据需要组合和比较任何这些属性。
请注意,某些目标属性需要比可以收集到的更严格的遥测控制,因此如有疑问,请寻求审查。
可用属性¶
详细用法¶
addonsInfo
¶
提供有关用户已安装的附加组件的信息。
请注意,name
、userDisabled
和 installDate
仅在 isFullData
为 true
时可用(这通常不是启动时的状态)。
由于现有错误,userDisabled
目前不可用
示例¶
用户是否安装了独角兽附加组件?
addonsInfo.addons["[email protected]"]
用户是否安装并禁用了独角兽附加组件?
addonsInfo.isFullData && addonsInfo.addons["[email protected]"].userDisabled
定义¶
declare const addonsInfo: Promise<AddonsInfoResponse>;
interface AddonsInfoResponse {
// Does this include extra information requiring I/O?
isFullData: boolean;
// addonId should be something like [email protected]
[addonId: string]: {
// Version of the add-on
version: string;
// (string) e.g. "extension"
type: AddonType;
// Version of the add-on
isSystem: boolean;
// Is the add-on a webextension?
isWebExtension: boolean;
// The name of the add-on
name: string;
// Is the add-on disabled?
// CURRENTLY UNAVAILABLE due to an outstanding bug
userDisabled: boolean;
// When was it installed? e.g. "2018-03-10T03:41:06.000Z"
installDate: string;
};
}
attributionData
¶
一个包含有关 Firefox 如何下载的确切信息的对象
示例¶
浏览器是否通过
"back_to_school"
活动安装?
attributionData && attributionData.campaign == "back_to_school"
定义¶
declare const attributionData: AttributionCode;
interface AttributionCode {
// Descriptor for where the download started from
campaign: string,
// A source, like addons.mozilla.org, or google.com
source: string,
// The medium for the download, like if this was referral
medium: string,
// Additional content, like an addonID for instance
content: string
}
browserSettings
¶
update
,其中包含有关 Firefox 更新渠道的信息
示例¶
更新是否已启用?
browserSettings.update.enabled
是否为 Beta 渠道?
browserSettings.update.channel == 'beta'
定义¶
declare const browserSettings: {
attribution: undefined | {
// Referring partner domain, when install happens via a known partner
// e.g. google.com
source: string;
// category of the source, such as "organic" for a search engine
// e.g. organic
medium: string;
// identifier of the particular campaign that led to the download of the product
// e.g. back_to_school
campaign: string;
// identifier to indicate the particular link within a campaign
// e.g. https://mozilla.org/some-page
content: string;
},
update: {
// Is auto-downloading enabled?
autoDownload: boolean;
// What release channel, e.g. "nightly"
channel: string;
// Is updating enabled?
enabled: boolean;
}
}
currentDate
¶
检查消息目标时的当前日期。
示例¶
当前日期是否在 2018 年 10 月 3 日之后?
currentDate > "Wed Oct 03 2018 00:00:00"|date
定义¶
declare const currentDate; ECMA262DateString;
// ECMA262DateString = Date.toString()
type ECMA262DateString = string;
devToolsOpenedCount
¶
Web 控制台的使用次数。
示例¶
用户是否打开了 Web 控制台超过 10 次?
devToolsOpenedCount > 10
定义¶
declare const devToolsOpenedCount: number;
isDefaultBrowser
¶
Firefox 是否是用户的默认浏览器?
定义¶
declare const isDefaultBrowser: boolean;
isDefaultBrowserUncached
¶
行为与 isDefaultBrowser
相同,但直接从 shell 服务检索当前值,而不是使用缓存值。这可能效率不高。
isDefaultHandler
¶
Firefox 是否是用户针对各种文件扩展名的默认处理程序?
仅限 Windows。
定义¶
declare const isDefaultHandler: {
pdf: boolean;
html: boolean;
};
示例¶
Firefox 是否为默认 PDF 处理程序?
isDefaultHandler.pdf
defaultPDFHandler
¶
有关用户默认 PDF 处理程序的信息
仅限 Windows。
定义¶
declare const defaultPDFHandler: {
// Does the user have a default PDF handler registered?
registered: boolean;
// Is the default PDF handler a known browser?
knownBrowser: boolean;
};
firefoxVersion
¶
浏览器的主要 Firefox 版本
示例¶
浏览器的版本是否大于 63?
firefoxVersion > 63
定义¶
declare const firefoxVersion: number;
launchOnLoginEnabled
¶
登录时启动选项是否已启用?
declare const launchOnLoginEnabled: boolean;
locale
¶
浏览器的当前区域设置,包括国家/地区代码,例如 en-US
。
示例¶
浏览器的区域设置是英语(美国)还是德语(德国)?
locale in ["en-US", "de-DE"]
定义¶
declare const locale: string;
localeLanguageCode
¶
浏览器的当前区域设置,不包括国家/地区代码,例如 en
。这对于匹配特定语言的所有国家/地区很有用。
示例¶
浏览器的区域设置是否为任何英语区域设置?
localeLanguageCode == "en"
定义¶
declare const localeLanguageCode: string;
needsUpdate
¶
客户端是否安装了最新版本
declare const needsUpdate: boolean;
pinnedSites
¶
用户新标签页上固定的站点(包括搜索快捷方式)。
示例¶
用户是否在
foo.com
上固定了任何站点?
"foo.com" in pinnedSites|mapToProperty("host")
用户是否有一个固定的
duckduckgo.com
搜索快捷方式?
"duckduckgo.com" in pinnedSites[.searchTopSite == true]|mapToProperty("host")
定义¶
interface PinnedSite {
// e.g. https://foo.mozilla.com/foo/bar
url: string;
// e.g. foo.mozilla.com
host: string;
// is the pin a search shortcut?
searchTopSite: boolean;
}
declare const pinnedSites: Array<PinnedSite>
previousSessionEnd
¶
先前关闭会话的时间戳。
定义¶
declare const previousSessionEnd: UnixEpochNumber;
// UnixEpochNumber is UNIX Epoch timestamp, e.g. 1522843725924
type UnixEpochNumber = number;
primaryResolution
¶
一个包含主显示器的可用宽度和可用高度(以像素为单位)的对象。这些值考虑了扩展坞和任务栏的存在。
定义¶
interface primaryResolution {
width: number;
height: number;
}
profileAgeCreated
¶
配置文件创建的日期,以 UNIX 纪元时间戳表示。
定义¶
declare const profileAgeCreated: UnixEpochNumber;
// UnixEpochNumber is UNIX Epoch timestamp, e.g. 1522843725924
type UnixEpochNumber = number;
profileAgeReset
¶
配置文件重置的日期,以 UNIX 纪元时间戳表示(如果已重置)。
示例¶
配置文件是否从未重置过?
!profileAgeReset
定义¶
// profileAgeReset can be undefined if the profile was never reset
// UnixEpochNumber is number, e.g. 1522843725924
declare const profileAgeReset: undefined | UnixEpochNumber;
// UnixEpochNumber is UNIX Epoch timestamp, e.g. 1522843725924
type UnixEpochNumber = number;
providerCohorts
¶
有关每个提供商的队列设置(来自首选项,包括屏蔽研究)的信息。
示例¶
用户是否在 cfr 的“foo_test”队列中?
providerCohorts.cfr == "foo_test"
定义¶
declare const providerCohorts: {
[providerId: string]: string;
}
region
¶
从 location.services.mozilla.com
获取的国家/地区代码。如果请求未完成或遇到错误,则可以为 ""
。
示例¶
用户是否在加拿大?
region == "CA"
定义¶
declare const region: string;
searchEngines
¶
有关当前和可用搜索引擎的信息。
示例¶
当前默认搜索引擎是否设置为 Google?
searchEngines.current == "google"
定义¶
declare const searchEngines: Promise<SearchEnginesResponse>;
interface SearchEnginesResponse: {
current: SearchEngineId;
installed: Array<SearchEngineId>;
}
// This is an identifier for a search engine such as "google" or "amazondotcom"
type SearchEngineId = string;
sync
¶
有关同步设备的信息。
示例¶
至少有一台移动设备与该配置文件同步了吗?
sync.mobileDevices > 0
定义¶
declare const sync: {
desktopDevices: number;
mobileDevices: number;
totalDevices: number;
}
topFrecentSites
¶
浏览器最近访问的前 25 个网站的信息。
请注意,这是一个受限的目标属性,它会影响允许收集哪些遥测数据,未经审查不得使用。
示例¶
用户的最近访问网站列表中是否包含 mozilla.com,并且访问频率大于 400?
"mozilla.com" in topFrecentSites[.frecency >= 400]|mapToProperty("host")
定义¶
declare const topFrecentSites: Promise<Array<TopSite>>
interface TopSite {
// e.g. https://foo.mozilla.com/foo/bar
url: string;
// e.g. foo.mozilla.com
host: string;
frecency: number;
lastVisitDate: UnixEpochNumber;
}
// UnixEpochNumber is UNIX Epoch timestamp, e.g. 1522843725924
type UnixEpochNumber = number;
totalBookmarksCount
¶
书签总数。
定义¶
declare const totalBookmarksCount: number;
usesFirefoxSync
¶
用户是否使用 Firefox 同步?
定义¶
declare const usesFirefoxSync: boolean;
isFxAEnabled
¶
用户是否启用了 Firefox 同步?该服务可能被关闭企业版本。
定义¶
declare const isFxAEnabled: boolean;
isFxASignedIn
¶
用户是否登录了 Firefox 账户?
定义¶
declare const isFxASignedIn: Promise<boolean>
creditCardsSaved
¶
用户为表单和自动填充保存的信用卡数量。
示例¶
creditCardsSaved > 1
定义¶
declare const creditCardsSaved: Promise<number>
addressesSaved
¶
用户为表单和自动填充保存的地址数量。
示例¶
addressesSaved > 1
定义¶
declare const addressesSaved: Promise<number>
archBits
¶
此构建中用于表示指针的位数。
定义¶
declare const archBits: number;
xpinstallEnabled
¶
系统管理员用来禁止安装任何附加组件的首选项。
定义¶
declare const xpinstallEnabled: boolean;
hasPinnedTabs
¶
用户在任何窗口中是否有任何固定标签。
定义¶
declare const hasPinnedTabs: boolean;
hasAccessedFxAPanel
¶
布尔首选项,在用户第一次打开 FxA 工具栏面板时设置。
定义¶
declare const hasAccessedFxAPanel: boolean;
totalBlockedCount
¶
内容阻止数据库中事件的总数。
定义¶
declare const totalBlockedCount: number;
recentBookmarks
¶
最近书签的 GUID 数组,由NewTabUtils.getRecentBookmarks
提供。
定义¶
interface Bookmark {
bookmarkGuid: string;
url: string;
title: string;
...
}
declare const recentBookmarks: Array<Bookmark>
userPrefs
¶
有关用户界面首选项的信息,可通过about:preferences
进行配置。
示例¶
userPrefs.cfrFeatures == false
定义¶
declare const userPrefs: {
cfrFeatures: boolean;
cfrAddons: boolean;
}
attachedFxAOAuthClients
¶
有关与 FxA 帐户关联的已连接服务的信息。如果未找到帐户或发生错误,则返回空数组。
定义¶
interface OAuthClient {
// OAuth client_id of the service
// https://docs.telemetry.mozilla.org/datasets/fxa_metrics/attribution.html#service-attribution
id: string;
lastAccessedDaysAgo: number;
}
declare const attachedFxAOAuthClients: Promise<OAuthClient[]>
示例¶
{
id: "7377719276ad44ee",
name: "Pocket",
lastAccessTime: 1513599164000
}
platformName
¶
定义¶
declare const platformName = "linux" | "win" | "macosx" | "android" | "other";
memoryMB
¶
Firefox 可用的 RAM 量,以兆字节为单位。
定义¶
declare const memoryMB = number;
messageImpressions
¶
将消息 ID 映射到展示时间戳的字典。时间戳按顺序存储。可用于检测消息的首次展示和展示次数。可用于目标定位,例如在另一条消息已被展示后展示一条消息。展示次数用于频率限制,因此我们仅在消息配置了frequency
时才存储它们。徽章的展示次数可能无法按预期工作:我们为每个打开的窗口添加一个徽章,因此存储的展示次数可能高于预期。此外,并非所有徽章都具有frequency
限制,因此messageImpressions
可能未定义。徽章展示次数不应用于目标定位。
定义¶
declare const messageImpressions: { [key: string]: Array<UnixEpochNumber> };
blockedCountByType
¶
返回过去 42 天内所有被阻止资源按类别的细分。
定义¶
declare const blockedCountByType: { [key: string]: number };
示例¶
Object {
trackerCount: 0,
cookieCount: 34,
cryptominerCount: 0,
fingerprinterCount: 3,
socialCount: 2
}
browserIsSelected
¶
所有触发器都包含的上下文属性,指示触发器来自的标签是否为当前选定的标签。对于某些实际上并非来自标签的触发器,此值始终为 true。对于其他触发器,例如openURL
,如果触发器发生在后台标签中,则此值可能为 false。
定义¶
declare const browserIsSelected: boolean;
isChinaRepack
¶
用户是否使用Mozilla 在线分发的合作伙伴重新打包版本,Mozilla 在线是 Mozilla 公司的全资子公司,在中国运营。
定义¶
declare const isChinaRepack: boolean;
userId
¶
由 Normandy 生成的唯一用户 ID(请注意,这不是 clientId)。
定义¶
declare const userId: string;
profileRestartCount
¶
一个会话计数器,显示浏览器启动的次数。有关详细信息,请参阅遥测文档。
定义¶
declare const profileRestartCount: number;
homePageSettings
¶
反映浏览器主页 (about:home) 当前设置的对象。
定义¶
declare const homePageSettings: {
isDefault: boolean;
isLocked: boolean;
isWebExt: boolean;
isCustomUrl: boolean;
urls: Array<URL>;
}
interface URL {
url: string;
host: string;
}
示例¶
默认 about:home
Object {
isDefault: true,
isLocked: false,
isCustomUrl: false,
isWebExt: false,
urls: [
{ url: "about:home", host: "" }
],
}
带有锁定首选项的默认 about:home
Object {
isDefault: true,
isLocked: true,
isCustomUrl: false,
isWebExt: false,
urls: [
{ url: "about:home", host: "" }
],
}
自定义 URL
Object {
isDefault: false,
isLocked: false,
isCustomUrl: true,
isWebExt: false,
urls: [
{ url: "https://www.google.com", host: "google.com" }
],
}
自定义 URL
Object {
isDefault: false,
isLocked: false,
isCustomUrl: true,
isWebExt: false,
urls: [
{ url: "https://www.google.com", host: "google.com" },
{ url: "https://www.youtube.com", host: "youtube.com" }
],
}
Web 扩展
Object {
isDefault: false,
isLocked: false,
isCustomUrl: false,
isWebExt: true,
urls: [
{ url: "moz-extension://123dsa43213acklncd/home.html", host: "" }
],
}
newtabSettings
¶
反映浏览器新标签页 (about:newtab) 当前设置的对象。
定义¶
declare const newtabSettings: {
isDefault: boolean;
isWebExt: boolean;
isCustomUrl: boolean;
url: string;
host: string;
}
示例¶
默认 about:newtab
Object {
isDefault: true,
isCustomUrl: false,
isWebExt: false,
url: "about:newtab",
host: "",
}
自定义 URL
Object {
isDefault: false,
isCustomUrl: true,
isWebExt: false,
url: "https://www.google.com",
host: "google.com",
}
Web 扩展
Object {
isDefault: false,
isCustomUrl: false,
isWebExt: true,
url: "moz-extension://123dsa43213acklncd/home.html",
host: "",
}
activeNotifications
¶
当显示信息栏样式的消息或当 awesomebar 展开以显示消息(例如入门提示)时为 true。
isMajorUpgrade
¶
布尔值。如果浏览器刚刚更新到新的主要版本,则为true
。
hasActiveEnterprisePolicies
¶
布尔值。如果任何企业策略处于活动状态,则为true
。
userMonthlyActivity
¶
返回一个条目数组,格式为[int, unixTimestamp]
,用于用户活动中的每一天,其中第一个条目是当天访问的 URL 总数。
doesAppNeedPin
¶
检查 Firefox 应用程序是否可以并且未固定到 MSIX 构建中的操作系统任务栏/停靠栏或 Windows 开始菜单。
doesAppNeedPinUncached
¶
与doesAppNeedPin
相同,但直接从 shell 服务检索当前值,而不是使用缓存的值。这可能效率不高。
doesAppNeedPrivatePin
¶
检查 Firefox 隐私浏览模式是否可以并且未固定到操作系统任务栏/停靠栏。目前,这仅适用于某些 Windows 版本。
isBackgroundTaskMode
¶
检查此调用是否在后台任务模式下运行。
backgroundTaskName
¶
如果此调用在后台任务模式下运行,则为非空字符串任务名称;如果此调用未在后台任务模式下运行,则为null
。
userPrefersReducedMotion
¶
检查用户是否首选减少运动,如prefers-reduced-motion
的媒体查询的值所示。
distributionId
¶
包含分发 ID 的字符串,如果构建没有关联的分发,则为空字符串。
hasMigratedBookmarks
¶
布尔值。如果用户自 Firefox 113 发布以来曾经使用过迁移向导来迁移书签,则为true
。在 Firefox 113 及更高版本中可用;如果用户仅在 Firefox 113 发布之前迁移过书签,则不会为 true。
hasMigratedCSVPasswords
¶
布尔值。如果自 Firefox 116 发布以来通过迁移向导导入了 CSV 密码,则为true
。在 Firefox 116 及更高版本中可用;如果用户仅在 Firefox 116 发布之前迁移过 CSV 密码,则不会为 true。
hasMigratedHistory
¶
一个布尔值。如果用户在 Firefox 113 发布后曾经使用过迁移向导迁移历史记录,则为 true
。适用于 Firefox 113 及更高版本;如果用户仅在 Firefox 113 发布之前迁移过历史记录,则不会为真。
hasMigratedPasswords
¶
一个布尔值。如果用户在 Firefox 113 发布后曾经使用过迁移向导迁移密码,则为 true
。适用于 Firefox 113 及更高版本;如果用户仅在 Firefox 113 发布之前迁移过密码,则不会为真。
useEmbeddedMigrationWizard
¶
一个布尔值。如果用户配置为在 about:welcome 中使用嵌入式迁移向导,则为 true
。
isRTAMO
¶
一个布尔值。当使用 RTAMO 下载 Firefox 时为 true
,否则为 false
。
canCreateSelectableProfiles
¶
一个布尔值。当当前安装和当前配置文件都支持使用 SelectableProfileService
创建其他配置文件时为 true
;否则为 false
。
hasSelectableProfiles
¶
一个布尔值。当 toolkit.profiles.storeID
首选项具有值时为 true
。表示该配置文件是 SelectableProfileService
管理的配置文件组的一部分,并且用户已使用多配置文件功能。否则为 false
。
isMSIX
¶
一个布尔值。当 Windows 上的 hasPackageId
为 true
时为 true
,否则为 false
。
isDeviceMigration
¶
一个布尔值。当 support.mozilla.org 用于作为“迁移”活动的一部分下载浏览器以获取设备迁移指南时为 true
,否则为 false
。
screenImpressions
¶
一个数组,将 about:welcome 屏幕 ID 映射到其最新的展示时间戳。应仅用于唯一的屏幕 ID,以避免无意中针对具有相同屏幕 ID 的消息。
定义¶
declare const screenImpressions: { [key: string]: Array<UnixEpochNumber> };
systemArch
¶
此 Firefox 版本的体系结构:x86、x86-64 或 aarch64。
定义¶
declare const systemArch: string | null;
totalSearches
¶
返回用户在 URL 地址栏中完成搜索的次数。此数字任意限制在 100 次。