Facebook 实际上在“赞助”文本之间隐藏了“虚拟”DOM 节点。这些值完全是随机字符,它们之间有随机数量的 DOM 节点。不可见的字符。此时,我们的 CSS 广告拦截器完全失效了。我们不可能用 CSS 编码所有可能的值。
我们之前讨论过这个问题,当时 Mike Pan 注意到了这一点。看起来从那时起它已经发展了一些,变得更加棘手了。
我刚刚打开我的 Facebook,并在“赞助”一词上选择了“复制外部 HTML”。
<span class="v_19dt4zixpg r_19dt4zk7i5"><span class="fsm fwn fcg"><span class="q_19dt4zirbc"><a class="d_19dt4zioka h_19dt4ziol1" role="button" id="u_fetchstream_3_6"><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="a" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="t" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="S" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="p" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="r" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="i" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="n" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="S" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="i" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="p" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="o" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="i" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="n" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="o" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="a" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="c" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="s" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="n" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="s" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="o" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="r" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="e" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="o" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="g" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="r" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="d" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="e" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="f" class="s_19dt4ziok9 l_19dt4zlqyi b_19dt4ziokl"></span></span><span class="s_19dt4ziok9 d_19dt4ziok- e_19dt4ziokq"><span data-content="d" class="s_19dt4ziok9 l_19dt4zlqyi n_19dt4ziokm"></span></span></span></a></span></span></span>
我想我们不应该对 Facebook 对用户不友好感到太惊讶。我可以想象一个工作环境,在那里对抗广告拦截器被变成了这种有趣的猫捉老鼠的技术网球比赛。但他们对抗的是人们想要对他们允许进入他们眼睛、耳朵和大脑的东西施加一点控制。
值得注意的是,DOM 中的任何其他内容都没有帮助识别帖子是否为广告。所以在这种意义上,它就像 Google 如何改进 SERPs,使广告看起来就像自然搜索结果一样,除了 URL 前面有一个小小的“AD”。
我们也在 CSS-Tricks 上发布赞助帖子,所以如果您觉得赞助帖子不够清晰,请随时向我们提出批评。
这很有趣,如果我可以这么说的话,这很邪恶。
关于 CSS-Tricks,我一直很喜欢广告清晰但有意义,我想这是因为这个分支,但这就是我总体上讨厌广告的原因,因为它们不相关。
在我看来,只要这些广告没有造成干扰或不道德,免费使用的社交媒体通过广告获得收入就没有什么错。我认为使用免费服务并阻止该服务合法获得收入的人应该感到羞愧。
Facebook 所做的事情很阴险,但这只是对 uBlock Origin 和 Brave 等注重隐私的工具非凡增长的回应。这是一个信号,表明它实际上正在伤害他们。
我不会说他们开发了一些广告拦截器无法克服的东西。就像你说的,这是猫捉老鼠的游戏。广告拦截器的智能还有很大的提升空间。
用户应该有权控制在他们的设备上显示什么。
也许解决方案不是正面交锋,而是最终采用像用户权利法案这样的理念,要么通过政府的强制,要么通过具有危害性较小的商业模式的企业的自愿采用。
例如,我的小企业在我们的“用户优先”政策中概述了我们不使用黑暗 UX 模式的承诺。这是一个小小的成就,但如果大规模实施,可能会对网络产生深远的影响。如果通过 SERP 或类似浏览器告知您网站是否使用 https 的徽章来激励此类政策,其影响可能会超过黑暗模式的增长。
顺便说一句,你们在这个网站上做得很好,让大家了解赞助帖子。为良好的网络商业实践干杯!
致所有人:实际上有一个非常强大的 Facebook 广告拦截器,而且它是免费的!它叫做“不要订阅 Facebook”。我说的不是“是的,但我偶尔只用一次”的付费版本,我指的是免费的、比以往任何时候都更强大的“我从未订阅过它或我已删除我的帐户”版本,它已被很多人接受,并且还在不断增加。
相信我,也相信你自己:你可以离开 Facebook。
屏幕阅读器可以访问吗?使用辅助技术的使用者可以知道这是一个广告吗?如果不是,这是否违反了 WCAG2.0?
在挪威,任何网站和数字解决方案都必须依法遵循 WCAG2.0 AA,不遵守将受到罚款。这可能是一种可罚的违法行为。
我喜欢你深入探讨如何删除赞助广告,还有其他人知道你必须输入字母回车然后输入另一个字母才能输入一个你不知道的不在你的编码程序中的单词吗?
在我看来,如果广告对任何人无害,就没有必要删除它们。