目标属性

在创建 ASRouter 消息(例如上下文功能推荐或入门卡片)时,您可以选择在这些消息中包含**目标信息**。

目标信息必须捕获在表达式中,该表达式可以访问以下属性。您可以根据需要组合和比较任何这些属性。

请注意,某些目标属性需要比可以收集到的更严格的遥测控制,因此如有疑问,请寻求审查。

可用属性

详细用法

addonsInfo

提供有关用户已安装的附加组件的信息。

请注意,nameuserDisabledinstallDate 仅在 isFullDatatrue 时可用(这通常不是启动时的状态)。

由于现有错误,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 的字符串,如果构建没有关联的分发,则为空字符串。

fxViewButtonAreaType

显示 Firefox View 按钮的容器名称的字符串,如果已删除该按钮,则为 null。

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 上的 hasPackageIdtrue 时为 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 次。