广告归因的实施方式

This post is also available in: English Français Български

为了改善用户决定启用广告的网站的广告变现结果,Vivaldi 现在加入了对广告归因的支持。 您可以 在此处阅读有关实施此更改的原因的更多信息。

本页主要旨在描述广告归因的实施方式,并解释导致此实施的选择。 目标是对允许通过的内容和时间保持完全透明。

与广告拦截器代码的其余部分一样,此实现完全作为我们发布的 源代码包的一部分提供。 这样,您就可以完全验证我们的实现是否与此处和其他文章中描述的相同。

允许广告归因规则

广告变现的主要挑战在于,许多广告提供商依赖已知的跟踪链接来防止点击欺诈并确保在付款前发生转化。 不幸的是,唯一的解决方案是允许加载此类跟踪链接,无论我们的跟踪链接阻止列表怎么说。 但是,我们还希望确保这些跟踪链接不会作为常规浏览的一部分加载。

为了满足所有这些要求,我们扩展了普通的 广告拦截规则格式。 这与所有流行的广告拦截器和 规则列表使用的格式相同。 扩展格式包含三个新选项,下面将详细介绍。

选择这种实现方式是因为它允许我们重用大部分广告拦截器功能来有效地实现广告归因的目标,同时还允许我们使用广告拦截器规则列表附带的自动更新机制。 这确保了我们可以及时修复任何错误。

运作方式

确保广告归因有效是一项复杂的任务,需要多个步骤才能完成。 一般来说,重点是使用广告提供支持的网站,但是大部分工作是在点击给定广告后完成的。 作为实现的一部分,我们将经历以下状态:

1. 导航到用户想要支持的站点。

发生这种情况时,广告归因实施会记录它应该寻找广告点击。 我们说它已经准备好了。

广告归因通常在任何禁用了广告拦截器的网站上进行准备,无论跟踪链接拦截器的状态如何。 启动广告归因意味着我们将检查下一个导航是否为广告点击。 它没有其他影响。

为了能够在为所有网站启用广告拦截的情况下支持我们的合作伙伴搜索引擎的广告归因,我们引入了 attribute-ads 规则选项:

@@||partner-site.example.com/page-i-want-to-Support$attribute-ads

这会导致广告归因在匹配页面上启动,而不管广告拦截器状态如何。 在实践中,我们还会添加一个 document 选项(与 AdBlockPlus 支持的 文档允许规则 相同),以允许合作伙伴网站展示广告:

@@||partner-site.example.com/page-i-want-to-Support$attribute-ads,document

2. 在广告归因启动时匹配广告。

发生这种情况时,广告归因实施将检查正在加载的 URL 以及作为加载过程中发生的任何重定向的 URL。

如果这些 URL 都与已知广告不匹配,则广告归因将保持禁用状态。 如果用户最终访问的站点是用户想要支持的站点,则可能会再次启动该站点。

如果 URL 与已知广告匹配,则广告归因将进入下一阶段,该过程将继续。

ad-query-trigger 选项用于指示应使用规则来匹配广告 URL:

||advertiser.example.com/ad-URL$ad-query-trigger=&click-id-param=|&other-click-id-param=

ad-query-trigger 选项采用一个值,该值由多个查询字符串片段组成,以 | 分隔开。

直接或通过重定向到达与规则模式 ad-query-trigger 匹配的文档后,将检查进一步的重定向。 对于这些重定向,将检查 URL 的查询字符串。 如果它包含作为选项值提供的任何字符串,则广告归因将被完全启用,并且匹配 URL 的来源将存储为此标签页的广告登陆来源。

ad-query-trigger 选项需要一个在广告 URL 模式中提供域名的模式。 这意味着,模式应该是主机锚定的,并且域后面应该跟着 ^/ 或者 ?

为特定标签页和源启用广告归因后,只要该标签页在同一源内导航,就会保留该状态。 导航到其他来源将导致广告归因被禁用,但其状态将保留半小时。 在截止日期内进行进一步的导航会将其延长至半小时。 如果截止时间过后,在原始源之外的进一步导航将完全清除该状态。 导航回着陆源将重新启用广告归因。

广告归因状态通常局限于启用它的标签页。 但是,从启用新标签页的标签页到新标签页的同源导航将保留其状态。

广告归因也始终在触发 7 天后被禁用。

3.启用广告归因时匹配跟踪链接

启用广告归因后,它会检查其来源与着陆来源匹配的页面上加载的资源。 为了指示应允许哪些资源进行广告归因,使用了带有该选项的 ad-attribution-tracker 规则。

@@||advertiser.example.org/track-click$ad-attribution-tracker=advertiser.example.com/&click-id-param=|advertiser.example.net/&ad_id=

此规则的正文与资源本身的 url 匹配,而 option 的值 ad-attribution-tracker 提供应允许它的上下文。 此选项的值由一对 domain/query-fragment 组成,以 |分隔开。 网域部分与点击的广告的网域(广告本身,而不是其登陆来源)进行匹配。 查询片段与用于启用广告归因的查询片段进行匹配。 如果两个组件都匹配,则成对匹配。 如果资源 url 匹配,并且域/查询片段对中的任何一个匹配,则此规则匹配。 当跟踪器以这种方式被允许时,它会绕过广告拦截器和跟踪链接拦截器中的屏蔽器。

这些规则目前仅在 Vivaldi 提供的“允许来自我们合作伙伴的广告”列表中可用。 这是为了避免它们可能被用于恶意规则列表的情况。 您可以 在此处查看我们的列表,了解哪些合作伙伴网站启用了广告归因,以及允许使用哪些跟踪链接。