Professional Documents
Culture Documents
OpenWPM 1 Million Site Tracking Measurement
OpenWPM 1 Million Site Tracking Measurement
This is an extended version of our paper that appeared at ACM CCS 2016.
...
subsequently used to track users on the web [41, 2, 1]. In Browser
Selenium Browser
Section 6.1 we present several new fingerprinting techniques Manager
tio at
M t tr ogin ppo
on ipt cha es
ex rum s
ac ent
i
e
ok
lu les
is aw ion
ng
su
n
va sta co
ofi
ne es
t
et ted in
Pe ul c ma
A rai ofil
pr
Ja or ing
g
Fi ten ls
st
te
to
In
r
tr
l
d
k
ne t p
on ac
at au
ut ed
a
St er
nt
c
r
om
an
sc
-g
s
it
te
ef
ec
w
rs
dv
ro
Study Year
D
A
C
B
Persistent tracking mechanisms [1] 2014 • • • • • • •
FB Connect login permissions [47] 2014 • • ◦
Surveillance implications of web tracking [14] 2015 • • • •
HSTS and key pinning misconfigurations [21] 2015 • • • ◦ •
The Web Privacy Census [4] 2015 • • • •
Geographic Variations in Tracking [17] 2015 • •
Analysis of Malicious Web Shells [55] 2016 •
This study (Sections 5 & 6) 2016 • • • • • • • •
instrumentation necessary to measure canvas fingerprinting Beyond just monitoring and manipulating state, the plat-
(Section 6.1) is three additional lines of code, while the We- form provides the ability to capture any Javascript API call
bRTC measurement (Section 6.3) is just a single line of code. with the included Javascript instrumentation. This is used
Similarly, the code to add support for new extensions to measure device fingerprinting (Section 6).
or privacy settings is relatively low: 7 lines of code were Finally, the platform also has a limited ability to extract
required to support Ghostery, 8 lines of code to support content from web pages through the content extraction mod-
HTTPS Everywhere, and 7 lines of codes to control Fire- ule, and a limited ability to automatically log into web-
fox’s cookie blocking policy. sites using the Facebook Connect automated login capabil-
Even measurements themselves require very little addi- ity. Logging in with Facebook has been used to study login
tional code on top of the platform. Each configuration listed permissions [47].
in Table 2 requires between 70 and 108 lines of code. By
comparison, the core infrastructure code and included in-
strumentation is over 4000 lines of code, showing that the 4. WEB CENSUS METHODOLOGY
platform saves a significant amount of engineering effort. We run measurements on the homepages of the top 1 mil-
lion sites to provide a comprehensive view of web tracking
3.4 Applications of OpenWPM and web privacy. These measurements provide updated met-
Seven academic studies have been published in journals, rics on the use of tracking and fingerprinting technologies,
conferences, and workshops, utilizing OpenWPM to perform allowing us to shine a light onto the practices of third par-
a variety of web privacy and security measurements.10 Ta- ties and trackers across a large portion of the web. We also
ble 1 summarizes the advanced features of the platform that explore the effectiveness of consumer privacy tools at giving
each research group utilized in their measurements. users control over their online privacy.
In addition to browser automation and HTTP data dumps, Measurement Configuration. We run our measure-
the platform has several advanced capabilities used by both ments on a “c4.2xlarge” Amazon EC2 instance, which cur-
our own measurements and those in other groups. Mea- rently allocates 8 vCPUs and 15 GiB of memory per ma-
surements can keep state, such as cookies and localStor- chine. With this configuration we are able to run 20 browser
age, within each session via stateful measurements, or persist instances in parallel. All measurements collect HTTP Re-
this state across sessions with persistent profiles. Persisting quests and Responses, Javascript calls, and Javascript files
state across measurements has been used to measure cookie using the instrumentation detailed in Section 3. Table 2
respawning [1] and to provide seed profiles for larger mea- summarizes the measurement instance configurations. The
surements (Section 5). In general, stateful measurements are data used in this paper were collected during January 2016.
useful to replicate the cookie profile of a real user for track- All of our measurements use the Alexa top 1 million site
ing [4, 14] and cookie syncing analysis [1] (Section 5.6). In list (http://www.alexa.com), which ranks sites based on their
addition to recording state, the platform can detect tracking global popularity with Alexa Toolbar users. Before each
cookies. measurement, OpenWPM retrieves an updated copy of the
The platform also provides programmatic control over in- list. When a measurement configuration calls for less than
dividual components of this state such as Flash cookies through 1 million sites, we simply truncate the list as necessary. For
fine-grained profiles as well as plug-ins via advanced plug-in eash site, the browser will visit the homepage and wait until
support. Applications built on top of the platform can mon- the site has finished loading or until the 90 second timeout
itor state changes on disk to record access to Flash cookies is reached. The browser does not interact with the site or
and browser state. These features are useful in studies which visit any other pages within the site. If there is a timeout
wish to simulate the experience of users with Flash enabled we kill the process and restart the browser for the next page
[4, 17] or examine cookie respawning with Flash [1]. visit, as described in Section 3.2.
10
We are aware of several other studies in progress. Stateful measurements. To obtain a complete picture
an ls
D rip les
d
Sc Cal
ef ble
sc Fi
sc a
va at
s
a
va t
isk t
Ja rip
D
St En
Pa ul
H el
P
ll
h
T
ra
at
as
T
Ja
Configuration # Sites # Success Timeout % Time to Crawl
Fl
Default Stateless 1 Million 917,261 10.58% • • • • 14 days
Default Stateful 100,000 94,144 8.23% ◦ • • • • 3.5 days
Ghostery 55,000 50,023 5.31% • • • • 0.7 days
Block TP Cookies 55,000 53,688 12.41% • • • • 0.8 days
HTTPS Everywhere 55,000 53,705 14.77% • • • • 1 day
ID Detection 1* 10,000 9,707 6.81% • • • • • • 2.9 days
ID Detection 2* 10,000 9,702 6.73% • • • • • • 2.9 days
% First-Parties
tracking a user will experience in the wild. In particular, the 60 Tracking Context
average number of third parties per site increases from 22 50 Non-Tracking Context
40
to 34. The 20 most popular third parities embedded on the 30
homepages of sites are found on 6% to 57% more sites when 20
10
internal page loads are considered. Similarly, fingerprinting 0
scripts found in Section 6 were observed on more sites. Can-
g l le . e t
ic is . e t
se ter et
s .g g o lic k m
fa e a p c o m
le o g o o m
bl ent m
yo tag om
u b t ic m
g o x . fa c o o k o m
io o m
us a es. m
le tw cdn m
co xs m
ta y b e. m
an g. m
ya er.c m
m
m eka com
ho om
c o
o g g o e b .c o
o
d o s ta s .c o
ic o
u o
g m t im c o
ag co
co
fb .c o
er dn co
o o o g .n
n d a p .n
a d it .n
vas fingerprinting increased from 4% to 7% of the top sites
le .c
n t .c
h c
b .c
at c
rv .c
u t .c
s y le k
a t i.
o.
u .
c e is
n
g ic
t
ly
while canvas-based font fingerprinting increased from 2% to
na
-a
le
2.5%. An increase in trackers is expected as each additional
og
og
le
le
nt
og
aj
og
go
go
fo
page visit within a site will cycle through new dynamic con-
go
go
tent that may load a different set of third parties. Addition-
ally, sites may not embed all third-party content into their Figure 2: Top third parties on the top 1 million sites. Not
homepages. all third parties are classified as trackers, and in fact the
The measurements presented in this paper were collected same third party can be classified differently depending on
the context. (Section 4).
from an EC2 instance in Amazon’s US East region. It is
Further, if we use the definition of tracking based on
possible that some sites would respond differently to our
tracking-protection lists, as defined in Section 4, then track-
measurement instance than to a real user browsing from
ers are even less prevalent. This is clear from Figure 2, which
residential or commercial internet connection. That said,
shows the prevalence of the top third parties (a) in any con-
Fruchter, et al. [17] use OpenWPM to measure the varia-
text and (b) only in tracking contexts. Note the absence or
tion in tracking due to geographic differences, and found no
reduction of content-delivery domains such as gstatic.com,
evidence of tracking differences caused by the origin of the
fbcdn.net, and googleusercontent.com.
measurement instance.
We can expand on this by analyzing the top third-party
Although OpenWPM’s instrumentation measures a di-
organizations, many of which consist of multiple entities.
verse set of tracking techniques, we do not provide a com-
As an example, Facebook and Liverail are separate entities
plete analysis of all known techniques. Notably absent from
but Liverail is owned by Facebook. We use the domain-to-
our analysis are non-canvas-based font fingerprinting [2],
organization mappings provided by Libert [31] and Discon-
navigator and plugin fingerprinting [12, 33], and cookie respawn-
nect[11]. As shown in Figure 3, Google, Facebook, Twitter,
ing [53, 6]. Several of these javascript-based techniques are
Amazon, AdNexus, and Oracle are the third-party organi-
currently supported by OpenWPM, have been measured
zations present on more than 10% of sites. In comparison
with OpenWPM in past research [1], and others can be eas-
to Libert’s [31] 2014 findings, Akamai and ComScore fall
ily added (Section 3.3). Non-Javascript techniques, such as
significantly in market share to just 2.4% and 6.6% of sites.
font fingerprinting with Adobe Flash, would require addi-
Oracle joins the top third parties by purchasing BlueKai and
tional specialized instrumentation.
AddThis, showing that acquisitions can quickly change the
Finally, for readers interested in further details or in repro-
tracking landscape.
ducing our work, we provide further methodological details
in the Appendix: what constitutes distinct domains (13.1), 90
80 Tracking Context
how to detect the landing page of a site using the data col-
% First-Parties
70
lected by our Platform (13.2), how we detect cookie syncing 60 Non-Tracking Context
50
(13.3), and why obfuscation of Javascript doesn’t affect our 40
ability to detect fingerprinting (13.4). 30
20
10
5. RESULTS OF 1-MILLION SITE CENSUS 0
A e
Pr sk
eu t
M O xus
M aho h
m tic
Cl and L
Tw ook
Ru Tr tal re
co D x
r
ar
O ore
ia cle
ne n
ce le
Th D udfl ex
Au axC o!
to DN
Ad X
N jec
ob
Am itte
bi ade ogi
Y at
Y O
Ad azo
n e
e a a
Fa oog
st
co mat
ed ra
Sc
M
pe
o
b
G
Prominence (log)
1K-site measurement
In Section 5.1 we ranked third parties by the number of 100 50K-site measurement
first party sites they appear on. This simple count is a good 1M-site measurement
first approximation, but it has two related drawbacks. A ma- 10− 1
jor third party that’s present on (say) 90 of the top 100 sites 10− 2
would have a low score if its prevalence drops off outside the
top 100 sites. A related problem is that the rank can be sen- 10− 3
sitive to the number of websites visited in the measurement. 0 200 400 600 800 1000
Thus different studies may rank third parties differently. Rank of third-party
We also lack a good way to compare third parties (and
especially trackers) over time, both individually and in ag- Figure 4: Prominence of third party as a function of promi-
nence rank. We posit that the curve for the 1M-site mea-
gregate. Some studies have measured the total number of surement (which can be approximated by a 50k-site mea-
cookies [4], but we argue that this is a misleading metric, surement) presents a useful aggregate picture of tracking.
since cookies may not have anything to do with tracking.
HTTPS w\ Passive
To avoid these problems, we propose a principled met- HTTPS HTTP
ric. We start from a model of aggregate browsing behavior. Mixed Content
There is some research suggesting that the website traffic fol- Firefox 47
lows a power law distribution, with the frequency of visits
to the N th ranked website being proportional to N1 [3, 22]. Chrome 47
The exact relationship is not important to us; any formula
for traffic can be plugged into our prominence metric below. Figure 5: Secure connection UI for Firefox Nightly 47 and
Definition:. Chrome 47. Clicking on the lock icon in Firefox reveals
1 the text “Connection is not secure” when mixed content is
Prominence(t) = Σedge(s,t)=1 present.
rank(s)
where edge(s, t) indicates whether third party t is present 55K Sites 1M Sites
on site s. This simple formula measures the frequency with HTTP Only 82.9% X
which an “average” user browsing according to the power-law HTTPS Only 14.2% 8.6%
model will encounter any given third party. HTTPS Opt. 2.9% X
The most important property of prominence is that it
de-emphasizes obscure sites, and hence can be adequately Table 3: First party HTTPS support on the top 55K and
approximated by relatively small-scale measurements, as shown top 1M sites. “HTTP Only” is defined as sites which fail
in Figure 4. We propose that prominence is the right metric to upgrade when HTTPS Everywhere is enabled. ‘HTTPS
for: Only” are sites which always redirect to HTTPS. “HTTPS
Optional” are sites which provide an option to upgrade,
1. Comparing third parties and identifying the top third but only do so when HTTPS Everywhere is enabled. We
parties. We present the list of top third parties by promi- carried out HTTPS-everywhere-enabled measurement for
nence in Table 14 in the Appendix. Prominence rank- only 55,000 sites, hence the X’s.
ing produces interesting differences compared to rank-
ing by a simple prevalence count. For example, Content- loaded on a secure site. This poses a security problem, lead-
Distribution Networks become less prominent compared ing to browsers to block the resource load or warn the user
to other types of third parties. depending on the content loaded [38]. Passive mixed con-
2. Comparing third parties and identifying the top third tent, that is, non-executable resources loaded over HTTP,
parties. We present the list of top third parties by promi- cause the browser to display an insecure warning to the user
nence in the full version of this paper. Prominence rank- but still load the content. Active mixed content is a far
ing produces interesting differences compared to rank- more serious security vulnerability and is blocked outright
ing by a simple prevalence count. For example, Content- by modern browsers; it is not reflected in our measurements.
Distribution Networks become less prominent compared Third-party support for HTTPS. To test the hypoth-
to other types of third parties. esis that third parties impede HTTPS adoption, we first
3. Measuring the effect of tracking-protection tools, as we characterize the HTTPS support of each third party. If a
do in Section 5.5. third party appears on at least 10 sites and is loaded over
4. Analyzing the evolution of the tracking ecosystem over HTTPS on all of them, we say that it is HTTPS-only. If
time and comparing between studies. The robustness of it is loaded over HTTPS on some but not all of the sites,
the rank-prominence curve (Figure 4) makes it ideally we say that it supports HTTPS. If it is loaded over HTTP
suited for these purposes. on all of them, we say that it is HTTP-only. If it appears
on less than 10 sites, we do not have enough confidence to
5.3 Third parties impede HTTPS adoption make a determination.
Table 3 shows the number of first-party sites that sup- Table 4 summarizes the HTTPS support of third party
port HTTPS and the number that are HTTPS-only. Our domains. A large number of third-party domains are HTTP-
results reveal that HTTPS adoption remains rather low de- only (54%). However, when we weight third parties by
spite well-publicized efforts [13]. Publishers have claimed prominence, only 5% are HTTP-only. In contrast, 94% of
that a major roadblock to adoption is the need to move prominence-weighted third parties support both HTTP and
all embedded third parties and trackers to HTTPS to avoid HTTPS. This supports our thesis that consolidation of the
mixed-content errors [57, 64]. third-party ecosystem is a plus for security and privacy.
Mixed-content errors occur when HTTP sub-resources are Impact of third-parties. We find that a significant
Prominence 50
HTTPS Support Percent weighted % Tracker
40
Non-Tracker
HTTP Only 54% 5% 30
HTTPS Only 5% 1%
Both 41% 94% 20
10
Table 4: Third party HTTPS support. “HTTP Only” is 0
defined as domains from which resources are only requested
l
ws
sp s
ts
t
ga e
sh es
a v in g
so s
bu ety
m ess
he s
k i re o n
th
re n c e
e
cr e
an ona
over HTTP across all sites on our 1M site measurement.
ul
t
r
en
nc
m
re a g
te
ar
or
al
ti
ne
ad
s in
ci
ho
te
ie
re
pu
ea
ds gi
op
er
sc
fe
‘HTTPS Only” are domains from which resources are
co
only requested over HTTPS. “Both” are domains which
have resources requested over both HTTP and HTTPS.
Results are limited to third parties embedded on at least Figure 6: Average # of third parties in each Alexa category.
10 first-party sites.
Top 1M Top 55k free, and lack an external funding source, they are pressured
Class % FP % FP to monetize page views with significantly more advertising.
Own 25.4% 24.9%
Favicon 2.1% 2.6% 5.5 Does tracking protection work?
Tracking 10.4% 20.1% Users have two main ways to reduce their exposure to
CDN 1.6% 2.6% tracking: the browser’s built in privacy features and exten-
Non-tracking 44.9% 35.4% sions such as Ghostery or uBlock Origin.
Multiple causes 15.6% 6.3% Contrary to previous work questioning the effectiveness
of Firefox’s third-party cookie blocking [14], we do find the
Table 5: A breakdown of causes of passive mixed-content feature to be effective. Specifically, only 237 sites (0.4%)
warnings on the top 1M sites and on the top 55k sites. have any third-party cookies set during our measurement
“Non-tracking” represents third-party content not classified set to block all third-party cookies (“Block TP Cookies” in
as a tracker or a CDN.
Table 2). Most of these are for benign reasons, such as redi-
recting to the U.S. version of a non-U.S. site. We did find ex-
fraction of HTTP-default sites (26%) embed resources from ceptions, including 32 that contained ID cookies. For exam-
third-parties which do not support HTTPS. These sites would ple, there are six Australian news sites that first redirect to
be unable to upgrade to HTTPS without browsers display- news.com.au before re-directing back to the initial domain,
ing mixed content errors to their users, the majority of which which seems to be for tracking purposes. While this type of
(92%) would contain active content which would be blocked. workaround to third-party cookie blocking is not rampant,
Similarly, of the approximately 78,000 first-party sites that we suggest that browser vendors should closely monitor it
are HTTPS-only, around 6,000 (7.75%) load with mixed pas- and make changes to the blocking heuristic if necessary.
sive content warnings. However, only 11% of these warnings Another interesting finding is that when third-party cookie
(around 650) are caused by HTTP-only third parties, sug- blocking was enabled, the average number of third parties
gesting that many domains may be able to mitigate these per site dropped from 17.7 to 12.6. Our working hypothesis
warnings by ensuring all resources are being loaded over for this drop is that deprived of ID cookies, third parties cur-
HTTPS when available. We examined the causes of mixed tail certain tracking-related requests such as cookie syncing
content on these sites, summarized in Table 5. The major- (which we examine in Section 5.6).
ity are caused by third parties, rather than the site’s own
content, with a surprising 27% caused solely by trackers.
Fraction of TP Blocked
1.0
6.6 The wild west of fingerprinting scripts 7. CONCLUSION AND FUTURE WORK
In Section 5.5 we found the various tracking protection Web privacy measurement has the potential to play a key
measures to be very effective at reducing third-party track- role in keeping online privacy incursions and power imbal-
ing. In Table 9 we show how blocking tools miss many of the ances in check. To achieve this potential, measurement tools
scripts we detected throughout Section 6, particularly those must be made available broadly rather than just within the
using lesser-known techniques. Although blocking tools de- research community. In this work, we’ve tried to bring this
tect the majority of instances of well-known techniques, only ambitious goal closer to reality.
a fraction of the total number of scripts are detected. The analysis presented in this paper represents a snapshot
of results from ongoing, monthly measurements. OpenWPM
Disconnect EL + EP and census measurements are two components of the broader
Technique % Scripts % Sites % Scripts % Sites Web Transparency and Accountability Project at Princeton.
We are currently working on two directions that build on the
Canvas 17.6% 78.5% 25.1% 88.3%
work presented here. The first is the use of machine learning
Canvas Font 10.3% 97.6% 10.3% 90.6%
to automatically detect and classify trackers. If successful,
WebRTC 1.9% 21.3% 4.8% 5.6%
this will greatly improve the effectiveness of browser pri-
Audio 11.1% 53.1% 5.6% 1.6%
vacy tools. Today such tools use tracking-protection lists
Table 9: Percentage of fingerprinting scripts blocked by that need to be created manually and laboriously, and suf-
Disconnect or the combination of EasyList and EasyPrivacy fer from significant false positives as well as false negatives.
for all techniques described in Section 6. Included is the Our large-scale data provide the ideal source of ground truth
percentage of sites with fingerprinting scripts on which for training classifiers to detect and categorize trackers.
scripts are blocked. The second line of work is a web-based analysis platform
that makes it easy for a minimally technically skilled ana-
Fingerprinting scripts pose a unique challenge for manu- lyst to investigate online tracking based on the data we make
ally curated block lists. They may not change the rendering available. In particular, we are aiming to make it possible
of a page or be included by an advertising entity. The script for an analyst to save their analysis scripts and results to
content may be obfuscated to the point where manual in- the server, share it, and for others to build on it.
spection is difficult and the purpose of the script unclear.
8. ACKNOWLEDGEMENTS
Fraction of Scripts Blocked
1.0
We would like to thank Shivam Agarwal for contribut-
0.8 ing analysis code used in this study, Christian Eubank and
0.6 Peter Zimmerman for their work on early versions of Open-
0.4
WPM, and Gunes Acar for his contributions to OpenWPM
and helpful discussions during our investigations, and Dillon
0.2 Reisman for his technical contributions.
0.0 We’re grateful to numerous researchers for useful feed-
10− 6 10− 5 10− 4 10− 3 10− 2 back: Joseph Bonneau, Edward Felten, Steven Goldfeder,
Prominence of Script (log) Harry Kalodner, and Matthew Salganik at Princeton, Fer-
nando Diaz and many others at Microsoft Research, Franziska
Figure 10: Fraction of fingerprinting scripts with promi- Roesner at UW, Marc Juarez at KU Leuven, Nikolaos Laoutaris
nence above a given level blocked by Disconnect, EasyList, at Telefonia Research, Vincent Toubiana at CNIL, France,
or EasyPrivacy on the top 1M sites.
Lukasz Olejnik at INRIA, France, Nick Nikiforakis at Stony
OpenWPM’s active instrumentation (see Section 3.2) de- Brook, Tanvi Vyas at Mozilla, Chameleon developer Alexei
tects a large number of scripts not blocked by the current Miagkov, Joel Reidenberg at Fordham, Andrea Matwyshyn
privacy tools. Disconnect and a combination of EasyList at Northeastern, and the participants of the Princeton Web
and EasyPrivacy both perform similarly in their block rate. Privacy and Transparency workshop. Finally, we’d like to
The privacy tools block canvas fingerprinting on over 78% thank the anonymous reviewers of this paper.
of sites, and block canvas font fingerprinting on over 90%. This work was supported by NSF Grant CNS 1526353,
However, only a fraction of the total number of scripts uti- a grant from the Data Transparency Lab, and by Amazon
lizing the techniques are blocked (between 10% and 25%) AWS Cloud Credits for Research.
showing that less popular third parties are missed. Lesser-
known techniques, like WebRTC IP discovery and Audio 9. REFERENCES
fingerprinting have even lower rates of detection. [1] G. Acar,
In fact, fingerprinting scripts with a low prominence are C. Eubank, S. Englehardt, M. Juarez, A. Narayanan,
blocked much less frequently than those with high promi- and C. Diaz. The web never forgets: Persistent tracking
nence. Figure 10 shows the fraction of scripts which are mechanisms in the wild. In Proceedings of CCS, 2014.
[2] G. Acar, M. Juarez, N. Nikiforakis, C. Diaz, S. Gürses, sonally identifiable information via online social networks. In
F. Piessens, and B. Preneel. FPDetective: dusting the 2nd ACM workshop on Online social networks. ACM, 2009.
web for fingerprinters. In Proceedings of CCS. ACM, 2013. [26] P. Laperdrix, W. Rudametkin, and B. Baudry.
[3] L. A. Adamic and B. A. Huberman. Zipf’s Beauty and the beast: Diverting modern web browsers
law and the internet. Glottometrics, 3(1):143–150, 2002. to build unique browser fingerprints. In 37th IEEE
[4] H. C. Altaweel I, Symposium on Security and Privacy (S&P 2016), 2016.
Good N. Web privacy census. Technology Science, 2015. [27] M. Lécuyer, G. Ducoffe, F. Lan, A. Papancea,
[5] J. Angwin. What they T. Petsios, R. Spahn, A. Chaintreau, and R. Geambasu.
know. The Wall Street Journal. http://online.wsj.com/ Xray: Enhancing the web’s transparency with differential
public/page/what-they-know-digital-privacy.html, 2012. correlation. In USENIX Security Symposium, 2014.
[6] M. Ayenson, D. J. Wambach, A. Soltani, [28] M. Lecuyer, R. Spahn,
N. Good, and C. J. Hoofnagle. Flash cookies and Y. Spiliopolous, A. Chaintreau, R. Geambasu, and D. Hsu.
privacy II: Now with HTML5 and ETag respawning. World Sunlight: Fine-grained targeting detection at scale with
Wide Web Internet And Web Information Systems, 2011. statistical confidence. In Proceedings of CCS. ACM, 2015.
[7] P. E. Black. Ratcliff/Obershelp pattern recognition. [29] A. Lerner, A. K. Simpson, T. Kohno,
http://xlinux.nist.gov/dads/HTML/ratcliffObershelp.html, and F. Roesner. Internet jones and the raiders of the
Dec. 2004. lost trackers: An archaeological study of web tracking from
[8] Bugzilla. WebRTC Internal IP Address Leakage. 1996 to 2016. In Proceedings of USENIX Security), 2016.
https://bugzilla.mozilla.org/show bug.cgi?id=959893. [30] J. Leyden. Sites pulling sneaky flash cookie-snoop. http:
[9] A. Datta, //www.theregister.co.uk/2009/08/19/flash cookies/, 2009.
M. C. Tschantz, and A. Datta. Automated experiments on [31] T. Libert. Exposing the invisible web: An
ad privacy settings. Privacy Enhancing Technologies, 2015. analysis of third-party http requests on 1 million websites.
[10] W. Davis. KISSmetrics Finalizes Supercookies Settlement. International Journal of Communication, 9(0), 2015.
http://www.mediapost.com/publications/article/ [32] D. Mattioli. On Orbitz, Mac users steered
191409/kissmetrics-finalizes-supercookies-settlement.html, to pricier hotels. http://online.wsj.com/news/articles/
2013. [Online; accessed 12-May-2014]. SB10001424052702304458604577488822667325882, 2012.
[11] Disconnect. Tracking [33] J. R. Mayer
Protection Lists. https://disconnect.me/trackerprotection. and J. C. Mitchell. Third-party web tracking: Policy and
[12] P. Eckersley. How unique is your web browser? technology. In Security and Privacy (S&P). IEEE, 2012.
In Privacy Enhancing Technologies. Springer, 2010. [34] A. M. McDonald and L. F.
[13] Electronic Frontier Foundation. Cranor. Survey of the use of Adobe Flash Local Shared
Encrypting the Web. https://www.eff.org/encrypt-the-web. Objects to respawn HTTP cookies, a. ISJLP, 7, 2011.
[14] S. Englehardt, D. Reisman, C. Eubank, [35] J. Mikians, L. Gyarmati, V. Erramilli, and N. Laoutaris.
P. Zimmerman, J. Mayer, A. Narayanan, and E. W. Felten. Detecting price and search discrimination on the internet.
Cookies that give you away: The surveillance implications In Workshop on Hot Topics in Networks. ACM, 2012.
of web tracking. In 24th International Conference [36] N. Mohamed.
on World Wide Web, pages 289–299. International You deleted your cookies? think again. http://www.wired.
World Wide Web Conferences Steering Committee, 2015. com/2009/08/you-deleted-your-cookies-think-again/, 2009.
[15] Federal Trade Commission. Google will pay $22.5 million [37] K. Mowery and H. Shacham. Pixel perfect: Fingerprinting
to settle FTC charges it misrepresented privacy assurances canvas in html5. Proceedings of W2SP, 2012.
to users of Apple’s Safari internet browser. https://www. [38] Mozilla
ftc.gov/news-events/press-releases/2012/08/google-will- Developer Network. Mixed content - Security. https://
pay-225-million-settle-ftc-charges-it-misrepresented, 2012. developer.mozilla.org/en-US/docs/Security/Mixed content.
[16] D. Fifield and S. Egelman. Fingerprinting [39] C. Neasbitt, B. Li, R. Perdisci, L. Lu, K. Singh, and
web users through font metrics. In Financial Cryptography K. Li. Webcapsule: Towards a lightweight forensic engine
and Data Security, pages 107–124. Springer, 2015. for web browsers. In Proceedings of CCS. ACM, 2015.
[17] N. Fruchter, H. Miao, S. Stevenson, [40] N. Nikiforakis, L. Invernizzi, A. Kapravelos, S. Van Acker,
and R. Balebako. Variations in tracking in relation W. Joosen, C. Kruegel, F. Piessens, and G. Vigna.
to geographic location. In Proceedings of W2SP, 2015. You are what you include: Large-scale evaluation of remote
[18] S. Gorman javascript inclusions. In Proceedings of CCS. ACM, 2012.
and J. Valentino-Devries. New Details Show Broader [41] N. Nikiforakis, A. Kapravelos, W. Joosen,
NSA Surveillance Reach. http://on.wsj.com/1zcVv78, 2013. C. Kruegel, F. Piessens, and G. Vigna. Cookieless
[19] A. Hannak, G. Soeller, D. Lazer, A. Mislove, and C. Wilson. monster: Exploring the ecosystem of web-based device
Measuring price discrimination and steering on e-commerce fingerprinting. In Security and Privacy (S&P). IEEE, 2013.
web sites. In 14th Internet Measurement Conference, 2014. [42] F. Ocariza, K. Pattabiraman, and
[20] C. J. Hoofnagle and N. Good. B. Zorn. Javascript errors in the wild: An empirical study.
Web privacy census. Available at SSRN 2460547, 2012. In Software Reliability Engineering (ISSRE). IEEE, 2011.
[21] M. Kranch and [43] L. Olejnik,
J. Bonneau. Upgrading HTTPS in midair: HSTS and key G. Acar, C. Castelluccia, and C. Diaz. The leaking
pinning in practice. In NDSS ’15: The 2015 Network and battery. Cryptology ePrint Archive, Report 2015/616, 2015.
Distributed System Security Symposium, February 2015. [44] L. Olejnik, C. Castelluccia, et al. Selling
[22] S. A. Krashakov, A. B. Teslyuk, and L. N. off privacy at auction. In NDSS ’14: The 2014 Network
Shchur. On the universality of rank distributions of website and Distributed System Security Symposium, 2014.
popularity. Computer Networks, 50(11):1769–1780, 2006. [45] Phantom JS. Supported web
[23] B. Krishnamurthy, K. Naryshkin, and C. Wills. standards. http://www.webcitation.org/6hI3iptm5, 2016.
Privacy leakage vs. protection measures: the growing [46] M. Z. Rafique, T. Van Goethem, W. Joosen,
disconnect. In Proceedings of W2SP, volume 2, 2011. C. Huygens, and N. Nikiforakis. It’s free for a reason:
[24] B. Krishnamurthy and C. Wills. Exploring the ecosystem of free live streaming services.
Privacy diffusion on the web: a longitudinal perspective. In Network and Distributed System Security (NDSS), 2016.
In Conference on World Wide Web. ACM, 2009. [47] N. Robinson and J. Bonneau. Cognitive disconnect:
[25] B. Krishnamurthy and C. E. Wills. On the leakage of per-
Understanding Facebook Connect login permissions. In 2nd study of insecure javascript practices on the web.
ACM conference on Online social networks. ACM, 2014. ACM Transactions on the Web (TWEB), 7(2):7, 2013.
[48] F. Roesner, T. Kohno, and D. Wetherall. [68] A. Zarras, A. Kapravelos, G. Stringhini,
Detecting and Defending Against Third-Party T. Holz, C. Kruegel, and G. Vigna. The dark alleys of
Tracking on the Web. In Symposium on Networking madison avenue: Understanding malicious advertisements.
Systems Design and Implementation. USENIX, 2012. In Internet Measurement Conference. ACM, 2014.
[49] S. Schelter and J. Kunegis. On
the ubiquity of web tracking: Insights from a billion-page
web crawl. arXiv preprint arXiv:1607.07403, 2016. APPENDIX
[50] Selenium
Browser Automation. Selenium faq. https://code.google.
com/p/selenium/wiki/FrequentlyAskedQuestions, 2014. 35
% First-Parties
30
[51] R. Singel. Online Tracking 25
Firm Settles Suit Over Undeletable Cookies. http:// 20
www.wired.com/2010/12/zombie-cookie-settlement/, 2010. 15
10
[52] K. Singh, A. Moshchuk, H. J. 5
Wang, and W. Lee. On the incoherencies in web browser 0
access control policies. In Proceedings of S&P. IEEE, 2010.
oo ap om
dn m
yo flar om
co s m
bo g api om
st g om
ou g m
ub om
ry m
le az wp om
pi m
cd ak po om
s.g b nt. m
oo aid com
.b q .com
ta ihd m
tw m.c et
dn m
om
jw mg m
pc co
ue o
er aw co
ea co
cl ytim .co
e o
ns a o
pc .co
o
gr .n
.g le c.c
d .c
gs .c
e c
ot oo s.c
ut e.c
jq e.c
.c
nt .c
ni am t.c
.c
ra le.
us on .
gl u.
gl is.
[53] A. Soltani, S. Canty, Q. Mayo, L. Thomas, and C. J. Hoofna-
lo q
s
ax og ti
a
aj .go sta
i
gle. Flash cookies and privacy. In AAAI Spring Symposium:
s g
og m
bp
Intelligent Information Privacy Management, 2010.
go s3.a
nt
ap
fo
m
[54] A. Soltani,
A. Peterson, and B. Gellman. NSA uses Google cookies to
pinpoint targets for hacking. http://www.washingtonpost.
com/blogs/the-switch/wp/2013/12/10/nsa-uses-google- Figure 11: Third-party trackers on the top 55k sites with
cookies-to-pinpoint-targets-for-hacking, December 2013. Ghostery enabled. The majority of the top third-party
[55] O. Starov, J. Dahse, domains not blocked are CDNs or provide embedded
S. S. Ahmad, T. Holz, and N. Nikiforakis. No honor among content (such as Google Maps).
thieves: A large-scale analysis of malicious web shells.
In International Conference on World Wide Web, 2016.
[56] The Guardian.
‘Tor Stinks’ presentation - read the full document.
http://www.theguardian.com/world/interactive/2013/oct/
04/tor-stinks-nsa-presentation-document, October 2013.
[57] Z. Tollman. We’re Going HTTPS: Here’s How WIRED Is
Tackling a Huge Security Upgrade. https://www.wired.com/
2016/04/wired-launching-https-security-upgrade/, 2016.
[58] J. Uberti. New proposal
for IP address handling in WebRTC. https://www.
ietf.org/mail-archive/web/rtcweb/current/msg14494.html.
[59] J. Uberti and G. wei Shieh.
WebRTC IP Address Handling Recommendations. https:
//datatracker.ietf.org/doc/draft-ietf-rtcweb-ip-handling/.
[60] S. Van Acker, D. Hausknecht, W. Joosen, and A. Sabelfeld.
Password meters and generators on the web: From
large-scale empirical study to getting it right. In Conference
on Data and Application Security and Privacy. ACM, 2015.
[61] S. Van Acker, N. Nikiforakis, L. Desmet,
W. Joosen, and F. Piessens. Flashover: Automated
discovery of cross-site scripting vulnerabilities in rich
internet applications. In Proceedings of CCS. ACM, 2012.
[62] T. Van Goethem, F. Piessens, W. Joosen, and N. Nikiforakis.
Clubbing seals: Exploring the ecosystem of third-party
security seals. In Proceedings of CCS. ACM, 2014.
[63] T. Vissers, N. Nikiforakis,
N. Bielova, and W. Joosen. Crying wolf? on the price
discrimination of online airline tickets. HotPETS, 2014.
[64] W. V. Wazer. Moving the Washington Post to HTTPS.
https://developer.washingtonpost.com/pb/blog/post/
2015/12/10/moving-the-washington-post-to-https/, 2015.
[65] X. Xing, W. Meng, D. Doozan, Figure 12: Three sample canvas fingerprinting images
N. Feamster, W. Lee, and A. C. Snoeren. Exposing created by fingerprinting scripts, which are subsequently
inconsistent web search results with bobble. In Passive hashed and used to identify the device.
and Active Measurement, pages 131–140. Springer, 2014.
[66] X. Xing, W. Meng, B. Lee, U. Weinsberg, A. Sheth,
R. Perdisci, and W. Lee. Understanding malvertising 10. MIXED CONTENT CLASSIFICATION
through ad-injecting browser extensions. In 24th
International Conference on World Wide Web. International To classify URLs in the HTTPS mixed content analysis,
World Wide Web Conferences Steering Committee, 2015. we used the block lists described in Section 4. Additionally,
[67] C. Yue and H. Wang. A measurement we include a list of CDNs from the WebPagetest Project16 .
16
https://github.com/WPO-Foundation/webpagetest
The mixed content URL is then classfied according to the Content-Type Count
first rule it satisfies in the following list: binary/octet-stream 8
1. If the requested domain matches the landing page do- image/jpeg 12664
main, and the request URL ends with favicon.ico clas- image/svg+xml 177
sify as a “favicon”. image/x-icon 150
2. If the requested domain matches the landing page do- image/png 7697
main, classify as the site’s “own content”. image/vnd.microsoft.icon 41
3. If the requested domain is marked as “should block” by text/xml 1
the blocklists, classify as “tracker”. audio/wav 1
4. If the requested domain is in the CDN list, classify as application/json 8
“CDN”. application/pdf 1
5. Otherwise, classify as “non-tracking” third-party content. application/x-www-form-urlencoded 8
application/unknown 5
audio/ogg 4
11. ICE CANDIDATE GENERATION image/gif 2905
It is possible for a Javascript web application to access video/webm 20
ICE candidates, and thus access a user’s local IP addresses application/xml 30
and public IP address, without explicit user permission. Al- image/bmp 2
though a web application must request explicit user permis- audio/mpeg 1
sion to access audio or video through WebRTC, the frame- application/x-javascript 1
work allows a web application to construct an RTCDataChan- application/octet-stream 225
nel without permission. By default, the data channel will image/webp 1
launch the ICE protocol and thus enable the web application text/plain 91
to access the IP address information without any explicit text/javascript 3
user permission. Both users behind a NAT and users behind text/html 7225
a VPN/proxy can have additional identifying information video/ogg 1
exposed to websites without their knowledge or consent. image/* 23
Several steps must be taken to have the browser gener- video/mp4 19
ate ICE candidates. First, a RTCDataChannel must be cre- image/pjpeg 2
ated as discussed above. Next, the RTCPeerConnection.c- image/small 1
reateOffer() must be called, which generates a Promise image/x-png 2
that will contain the session description once the offer has
been created. This is passed to RTCPeerConnection.setLo- Table 10: Counts of responses with given Content-Type
which cause mixed content errors. NOTE: Mixed content
calDescription(), which triggers the gathering of candi- blocking occurs based on the tag of the initial request (e.g.
date addresses. The prepared offer will contain the sup- image src tags are considered passive content), not the
ported configurations for the session, part of which includes response Content-Type. Thus it is likely that the Javascript
the IP addresses gathered by the ICE Agent.17 A web appli- and other active content loads listed above are the result of
cation can retrieve these candidate IP addresses by using the misconfigurations and mistakes that will be dropped by the
event handler RTCPeerConnection.onicecandidate() and browser. For example, requesting a Javascript file with an
image tag.
retrieving the candidate IP address from the RTCPeerConnect-
ionIceEvent.candidate or, by parsing the resulting Session
A third script, *.cdn-net.com/cc.js, utilizes AudioContext
Description Protocol (SDP)18 string from RTCPeerConnec-
to generate a fingerprint. First, the script generates a tri-
tion.localDescription after the offer generation is com-
angle wave using an OscillatorNode. This signal is passed
plete. In our study we only found it necessary to instru-
through an AnalyserNode and a ScriptProcessorNode. Fi-
ment RTCPeerConnection.onicecandidate() to capture all
nally, the signal is passed into a through a GainNode with
current scripts.
gain set to zero to mute any output before being connect to
the AudioContext’s destination (e.g. the computer’s speak-
12. AUDIO FINGERPRINT CONFIGURATION ers). The AnalyserNode provides access to a Fast Fourier
Figure 8 in Section 6.4 summarizes one of two audio fin- Transform (FFT) of the audio signal, which is captured us-
gerprinting configurations found in the wild. This configura- ing the onaudioprocess event handler added by the Script-
tion is used by two scripts, (client.a.pxi.pub/*/main.min.js ProcessorNode. The resulting FFT is fed into a hash and
and http://js.ad-score.com/score.min.js). These scripts use used as a fingerprint.
an OscillatorNode to generate a sine wave. The output
signal is connected to a DynamicsCompressorNode, possibly 13. ADDITIONAL METHODOLOGY
to increase differences in processed audio between machines. All measurements are run with Firefox version 41. The
The output of this compressor is passed to the buffer of an Ghostery measurements use version 5.4.10 set to block all
OfflineAudioContext. The script uses a hash of the sum of possible bugs and cookies. The HTTPS Everywhere mea-
values from the buffer as the fingerprint. surement uses version 5.1.0 with the default settings. The
17 Block TP Cookies measurement sets the Firefox setting to
https://w3c.github.io/webrtc-pc/#widl-
RTCPeerConnection-createOffer-Promise- “block all third-party cookies”.
RTCSessionDescription--RTCOfferOptions-options
18
https://tools.ietf.org/html/rfc3264
13.1 Classifying Third-party content • If the ID appears in the location URL: the original re-
In order to determine if a request is a first-party or third- quested domain is the sender of the ID, and the redirected
party request, we utilize the URL’s “public suffix + 1” (or location domain is the receiver.
PS+1). A public suffix is “is one under which Internet users This methodology does not require reverse engineering
can (or historically could) directly register names. [Exam- any domain’s cookie sync API or URL pattern. An im-
ples include] .com, .co.uk and pvt.k12.ma.us.” A PS+1 is the portant limitation of this generic approach is the lack of
public suffix with the section of the domain immediately pro- discrimination between intentional cookie syncing and acci-
ceeding it (not including any additional subdomains). We dental ID sharing. The latter can occur if a site includes a
use Mozilla’s Public Suffix List19 in our analysis. We con- user’s ID within its URL query string, causing the ID to be
sider a site to be a potential third-party if the PS+1 of shared with all third parties in the referring URL.
the site does not match the landing page’s PS+1 (as de- The results of this analysis thus provide an accurate rep-
termined by the algorithm in the supplementaary materials resentation of the privacy implications of ID sharing, as a
Section 13.2). Throughout the paper we use the word “do- third party has the technical capability to use an uninten-
main” to refer to a site’s PS+1. tionally shared ID for any purpose, including tracking the
user or sharing data. However, the results should be in-
13.2 Landing page detection from HTTP data terpreted only as an upper bound on cookie syncing as the
Upon visiting a site, the browser may either be redirected practice is defined in the online advertising industry.
by a response header (with a 3XX HTTP response code or 13.4 Detection of Fingerprinting
“Refresh” field), or by the page content (with javascript or a
“Refresh” meta tag). Several redirects may occur before the Javascript minification and obfuscation hinder static anal-
site arrives at its final landing page and begins to load the ysis. Minification is used to reduce the size of a file for tran-
remainder of the content. To capture all possible redirects sit. Obfuscation stores the script in one or more obfuscated
we use the following recursive algorithm, starting with the strings, which are transformed and evaluated at run time
initial request to the top-level site. For each request: using eval function. We find that fingerprinting and track-
ing scripts are frequently minified or obfuscated, hence our
1. If HTTP redirect, following it preserving referrer details dynamic approach. With our detection methodology, we
from previous request. intercept and record access to specific Javascript objects,
2. If the previous referrer is the same as the current we as- which is not affected by minification or obfuscation of the
sume content has started to load and return the current source code.
referrer as the landing page. The methodology builds on that used by Acar, et.al. [1]
3. If the current referrer is different from the previous refer- to detect canvas fingerprinting. Using the Javascript calls
rer, and the previous referrer is seen in future requests, instrumentation described in Section 3.2, we record access
assume it is the actual landing page and return the pre- to specific APIs which have been found to be used to fin-
vious referrer. gerprint the browser. Each time an instrumented object is
4. Otherwise, continue to the next request, updating the accessed, we record the full context of the access: the URL
current and previous referrer. of the calling script, the top-level url of the site, the prop-
This algorithm has two failure states: (1) a site redirects, erty and method being accessed, any provided arguments,
loads additional resources, then redirects again, or (2) the and any properties set or returned. For each fingerprint-
site has no additional requests with referrers. The first fail- ing method, we design a detection algorithm which takes
ure mode will not be detected, but the second will be. From the context as input and returns a binary classification of
manual inspection, the first failure mode happens very in- whether or not a script uses that method of fingerprinting
frequently. For example, we find that only 0.05% of sites when embedded on that first-party site.
are incorrectly marked as having HTTPS as a result of this When manual verification is necessary, we have two ap-
failure mode. For the second failure mode, we find that we proaches which depend on the level of script obfuscation. If
can’t correctly label the landing pages of 2973 first-party the script is not obfuscated we manually inspect the copy
sites (0.32%) on the top 1 million sites. For these sites we which was archived according to the procedure discussed in
fall back to the requested top-level URL. Section 3.2. If the script is obfuscated beyond inspection, we
embed a copy of the script in isolation on a dummy HTML
13.3 Detecting Cookie Syncing page and inspect it using the Firefox Javascript Deobfusca-
We consider two parties to have cookie synced if a cookie tor20 extension. We also occasionally spot check live versions
ID appears in specific locations within the referrer, request, of sites and scripts, falling back to the archive when there
and location URLs extracted from HTTP request and re- are discrepancies.
sponse pairs. We determine cookie IDs using the algorithm
described in Section 4. To determine the sender and re-
ceiver of a synced ID we use the following classification, in
line with previous work [44, 1]:
• If the ID appears in the request URL: the requested do-
main is the recipient of a synced ID.
• If the ID appears in the referrer URL: the referring do-
main is the sender of the ID, and the requested domain is
the receiver.
20
https://addons.mozilla.org/en-US/firefox/addon/
19
https://publicsuffix.org/ javascript-deobfuscator/
Fingerprinting Script Count
cdn.doubleverify.com/dvtp src internal24.js 4588
cdn.doubleverify.com/dvtp src internal23.js 2963
ap.lijit.com/sync 2653
cdn.doubleverify.com/dvbs src.js 2093
rtbcdn.doubleverify.com/bsredirect5.js 1208
g.alicdn.com/alilog/mlog/aplus v2.js 894
static.audienceinsights.net/t.js 498
static.boo-box.com/javascripts/embed.js 303
admicro1.vcmedia.vn/core/fipmin.js 180
c.imedia.cz/js/script.js 173
ap.lijit.com/www/delivery/fp 140
www.lijit.com/delivery/fp 127
s3-ap-southeast-1.amazonaws.com/af-bdaz/bquery.js 118
d38nbbai6u794i.cloudfront.net/*/platform.min.js 97
voken.eyereturn.com/ 85
p8h7t6p2.map2.ssl.hwcdn.net/fp/Scripts/PixelBundle.js 72
static.fraudmetrix.cn/fm.js 71
e.e701.net/cpc/js/common.js 56
tags.bkrtx.com/js/bk-coretag.js 56
dtt617kogtcso.cloudfront.net/sauce.min.js 55
685 others 1853
18283
TOTAL 14371 unique1
Table 11: Canvas fingerprinting scripts on the top Alexa 1 Million sites.
**: Some URLs are truncated for brevity.
1: Some sites include fingerprinting scripts from more than one domain.
Table 12: Canvas font fingerprinting scripts on the top Alexa 1 Million sites.
**: Some URLs are truncated for brevity.
1: The majority of these inclusions were as subdomain of the first-party site, where the DNS record points to a subdomain
of online-metrix.net.
2: Some sites include fingerprinting scripts from more than one domain.
Fingerprinting Script First-party Count Classification
cdn.augur.io/augur.min.js 147 Tracking
click.sabavision.com/*/jsEngine.js 115 Tracking
static.fraudmetrix.cn/fm.js 72 Tracking
*.hwcdn.net/fp/Scripts/PixelBundle.js 72 Tracking
www.cdn-net.com/cc.js 45 Tracking
scripts.poll-maker.com/3012/scpolls.js 45 Tracking
static-hw.xvideos.com/vote/displayFlash.js 31 Non-Tracking
g.alicdn.com/security/umscript/3.0.11/um.js 27 Tracking
load.instinctiveads.com/s/js/afp.js 16 Tracking
cdn4.forter.com/script.js 15 Tracking
socauth.privatbank.ua/cp/handler.html 14 Tracking
retailautomata.com/ralib/magento/raa.js 6 Unknown
live.activeconversion.com/ac.js 6 Tracking
olui2.fs.ml.com/publish/ClientLoginUI/HTML/cc.js 3 Tracking
cdn.geocomply.com/101/gc-html5.js 3 Tracking
retailautomata.com/ralib/shopifynew/raa.js 2 Unknown
2nyan.org/animal/ 2 Unknown
pixel.infernotions.com/pixel/ 2 Tracking
167.88.10.122/ralib/magento/raa.js 2 Unknown
80 others present on a single first-party 80 -
TOTAL 705 -
Table 13: WebRTC Local IP discovery on the Top Alexa 1 Million sites.
**: Some URLs are truncated for brevity.
Table 14: Top 20 third-parties on the Alexa top 1 million, sorted by prominence. The number of first-party sites
each third-party is embedded on is included. Rank change denotes the change in rank between third-parties ordered
by first-party count and third-parties ordered by prominence.