Socket
Socket
Sign inDemoInstall

third-party-web

Package Overview
Dependencies
0
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    third-party-web

Categorized data on third party entities on the web.


Version published
Maintainers
1
Created

Readme

Source

Third Party Web

Check out the shiny new web UI https://www.thirdpartyweb.today/

Data on third party entities and their impact on the web.

This document is a summary of which third party scripts are most responsible for excessive JavaScript execution on the web today.

Table of Contents

  1. Goals
  2. Methodology
  3. NPM Module
  4. Updates
  5. Data
    1. Summary
    2. How to Interpret
    3. Third Parties by Category
      1. Advertising
      2. Analytics
      3. Social
      4. Video
      5. Developer Utilities
      6. Hosting Platforms
      7. Marketing
      8. Customer Success
      9. Content & Publishing
      10. CDNs
      11. Tag Management
      12. Mixed / Other
    4. Third Parties by Total Impact
  6. Future Work
  7. FAQs
  8. Contributing

Goals

  1. Quantify the impact of third party scripts on the web.
  2. Identify the third party scripts on the web that have the greatest performance cost.
  3. Give developers the information they need to make informed decisions about which third parties to include on their sites.
  4. Incentivize responsible third party script behavior.
  5. Make this information accessible and useful.

Methodology

HTTP Archive is an inititiave that tracks how the web is built. Every month, ~4 million sites are crawled with Lighthouse on mobile. Lighthouse breaks down the total script execution time of each page and attributes the execution to a URL. Using BigQuery, this project aggregates the script execution to the origin-level and assigns each origin to the responsible entity.

NPM Module

The entity classification data is available as an NPM module.

const {getEntity} = require('third-party-web')
const entity = getEntity('https://d36mpcpuzc4ztk.cloudfront.net/js/visitor.js')
console.log(entity)
//   {
//     "name": "Freshdesk",
//     "homepage": "https://freshdesk.com/",
//     "categories": ["customer-success"],
//     "domains": ["d36mpcpuzc4ztk.cloudfront.net"]
//   }

Updates

2019-02-01 dataset

Huge props to WordAds for reducing their impact from ~2.5s to ~200ms on average! A few entities are showing considerably less data this cycle (Media Math, Crazy Egg, DoubleVerify, Bootstrap CDN). Perhaps they've added new CDNs/hostnames that we haven't identified or the basket of sites in HTTPArchive has shifted away from their usage.

2019-03-01 dataset

Almost 2,000 entities tracked now across ~3,000+ domains! Huge props to @simonhearne for making this massive increase possible. Tag Managers have now been split out into their own category since they represented such a large percentage of the "Mixed / Other" category.

2019-05-06 dataset

Google Ads clarified that www.googletagservices.com serves more ad scripts than generic tag management, and it has been reclassified accordingly. This has dropped the overall Tag Management share considerably back down to its earlier position.

2019-05-13 dataset

A shortcoming of the attribution approach has been fixed. Total usage is now reported based on the number of pages in the dataset that use the third-party, not the number of scripts. Correspondingly, all average impact times are now reported per page rather than per script. Previously, a third party could appear to have a lower impact or be more popular simply by splitting their work across multiple files.

Third-parties that performed most of their work from a single script should see little to no impact from this change, but some entities have seen significant ranking movement. Hosting providers that host entire pages are, understandably, the most affected.

Some notable changes below:

Third-PartyPreviously (per-script)Now (per-page)
Beeketing137 ms465 ms
Sumo263 ms798 ms
Tumblr324 ms1499 ms
Yandex APIs393 ms1231 ms
Google Ads402 ms1285 ms
Wix972 ms5393 ms

Data

Summary

Across top ~4 million sites, ~2700 origins account for ~57% of all script execution time with the top 50 entities already accounting for ~47%. Third party script execution is the majority chunk of the web today, and it's important to make informed choices.

How to Interpret

Each entity has a number of data points available.

  1. Usage (Total Number of Occurrences) - how many scripts from their origins were included on pages
  2. Total Impact (Total Execution Time) - how many seconds were spent executing their scripts across the web
  3. Average Impact (Average Execution Time) - on average, how many milliseconds were spent executing each script
  4. Category - what type of script is this

Third Parties by Category

This section breaks down third parties by category. The third parties in each category are ranked from first to last based on the average impact of their scripts. Perhaps the most important comparisons lie here. You always need to pick an analytics provider, but at least you can pick the most well-behaved analytics provider.

Overall Breakdown

Unsurprisingly, ads account for the largest identifiable chunk of third party script execution.

breakdown by category

Advertising

These scripts are part of advertising networks, either serving or measuring.

RankNameUsageAverage Impact
1GumGum2,88719 ms
2ExoClick1,21243 ms
3SublimeSkinz1,09458 ms
4MailMunch5,09560 ms
5Geniee1,16168 ms
6Salesforce.com1,01770 ms
7District M2,60672 ms
8Rakuten Marketing1,20872 ms
9BlueKai2,30275 ms
10PushCrew2,92676 ms
11FreakOut3,82676 ms
12Constant Contact1,31480 ms
13Scorecard Research6,95686 ms
14Gemius4,53587 ms
15Tynt22,55887 ms
16Rubicon Project39,35390 ms
17Popads2,896103 ms
18Nativo1,091103 ms
19Outbrain8,189104 ms
20AppNexus1,248105 ms
21Unbounce3,591105 ms
22Amazon Ads25,338107 ms
23i-mobile3,227110 ms
24LINE Corporation5,182113 ms
25Sharethrough1,655114 ms
26Intent Media8,019116 ms
27Bing Ads15,786116 ms
28Adroll47,959117 ms
29JuicyAds1,498125 ms
30Smart AdServer5,189126 ms
31DTSCOUT12,679132 ms
32Index Exchange4,946133 ms
33Attentive1,205146 ms
34WordAds18,478149 ms
35Skimbit15,819167 ms
36Yahoo!6,183172 ms
37OptiMonk1,601173 ms
38Teads3,457177 ms
39Cxense4,374179 ms
40TrafficStars2,040187 ms
41Adform6,772189 ms
42sovrn4,673190 ms
43Tribal Fusion1,050191 ms
44Unruly Media1,189193 ms
45OpenX3,015193 ms
46Bizible1,300194 ms
47Perfect Market1,595219 ms
48GetResponse1,073219 ms
49Sortable1,551220 ms
50Criteo62,125237 ms
51Adyoulike1,234239 ms
52Permutive9,556243 ms
53Refersion1,320249 ms
54VigLink7,097309 ms
55Privy13,047309 ms
56Yandex Ads25,906313 ms
57Pubmatic52,613315 ms
58Media.net14,529341 ms
59Taboola24,583364 ms
60LongTail Ad Solutions3,433365 ms
61Klaviyo14,593392 ms
62piano1,183459 ms
63DoubleVerify1,772548 ms
64RevJet1,210550 ms
65MGID8,210574 ms
66Infolinks3,699579 ms
6733 Across1,188615 ms
68Vidible1,146625 ms
69Admixer for Publishers1,043642 ms
70Mediavine6,490655 ms
71Bridgewell DSP14,079791 ms
72Moat6,862817 ms
73LoyaltyLion1,300830 ms
74Adloox5,759921 ms
75Integral Ad Science8,0131028 ms
76Sizmek1,4841047 ms
77LKQD1,3351449 ms
78Google/Doubleclick Ads680,9481456 ms
79fam2,1351807 ms

Analytics

These scripts measure or track users and their actions. There's a wide range in impact here depending on what's being tracked.

RankNameUsageAverage Impact
1StatCounter3,40359 ms
2Treasure Data4,83362 ms
3WordPress Site Stats3,73264 ms
4Roxr Software1,62366 ms
5Amplitude Mobile Analytics2,42969 ms
6Heap2,60572 ms
7Mixpanel7,51375 ms
8Google Analytics1,200,66677 ms
9Chartbeat4,49279 ms
10Quantcast3,78780 ms
11Hotjar177,46884 ms
12Parse.ly3,27891 ms
13Searchanise4,30291 ms
14Smart Insight Tracking1,16193 ms
15etracker1,64394 ms
16Snowplow5,84595 ms
17CallRail7,019101 ms
18Nielsen NetRatings SiteCensus11,805102 ms
19Marchex2,503104 ms
20Baidu Analytics10,739106 ms
21Crazy Egg4,988110 ms
22Evidon1,061111 ms
23ContentSquare1,367130 ms
24VWO4,724158 ms
25Trust Pilot15,202164 ms
26Net Reviews2,537176 ms
27PageSense1,294180 ms
28FullStory7,654184 ms
29Segment9,541191 ms
30Kampyle1,094206 ms
31Optimizely19,583223 ms
32Nosto1,946225 ms
33UserReport1,300228 ms
34BounceX1,386233 ms
35mPulse13,177246 ms
36PowerReviews1,043261 ms
37Marketo1,336359 ms
38Inspectlet5,605361 ms
39Histats13,537361 ms
40Bazaarvoice1,845397 ms
41Snapchat13,344410 ms
42Salesforce10,892478 ms
43Lucky Orange7,529491 ms
44Feefo.com1,686502 ms
45Gigya2,261579 ms
46Yandex Metrica292,542580 ms
47Ezoic1,329582 ms
48Revolver Maps1,144609 ms
49AB Tasty3,0101594 ms

Social

These scripts enable social features.

RankNameUsageAverage Impact
1AddToAny24,49087 ms
2Pinterest17,21889 ms
3LinkedIn14,038111 ms
4VK13,473121 ms
5Twitter213,911139 ms
6Kakao18,109158 ms
7Instagram9,441184 ms
8Yandex Share24,181184 ms
9Facebook1,461,331229 ms
10ShareThis40,133234 ms
11SocialShopWave2,044302 ms
12AddThis118,289403 ms
13Disqus1,252994 ms
14LiveJournal3,6801327 ms
15PIXNET15,4341508 ms
16Tumblr7,9722048 ms

Video

These scripts enable video player and streaming functionality.

RankNameUsageAverage Impact
1Vimeo10,403355 ms
2Brightcove6,615809 ms
3YouTube408,326849 ms
4Wistia13,083928 ms
5Twitch1,0681896 ms

Developer Utilities

These scripts are developer utilities (API clients, site monitoring, fraud detection, etc).

RankNameUsageAverage Impact
1Key CDN1,46855 ms
2LightWidget2,32566 ms
3Siteimprove1,51076 ms
4Trusted Shops5,63979 ms
5New Relic13,06295 ms
6Accessibe3,56199 ms
7GetSiteControl1,81299 ms
8Riskified1,074106 ms
9Affirm2,500113 ms
10iubenda12,781124 ms
11Optanon8,025128 ms
12Swiftype1,544135 ms
13Seznam1,654135 ms
14Bold Commerce13,095144 ms
15Cookiebot20,838147 ms
16Sift Science1,080148 ms
17Other Google APIs/SDKs580,415168 ms
18Amazon Pay5,751169 ms
19TrustArc1,370180 ms
20MaxCDN Enterprise2,394198 ms
21GitHub1,653232 ms
22Fraudlogix2,244258 ms
23Fastly6,694275 ms
24PayPal15,436342 ms
25Stripe23,538388 ms
26Cloudflare53,319465 ms
27Google Maps267,417520 ms
28AppDynamics1,281527 ms
29Secomapp2,150546 ms
30Bugsnag8,686569 ms
31Rambler7,698691 ms
32GoDaddy6,687700 ms
33Sentry9,061715 ms
34Signyfyd1,691867 ms
35Mapbox5,206877 ms
36Yandex APIs27,4801080 ms
37POWr16,4071364 ms
38Esri ArcGIS1,6924750 ms

Hosting Platforms

These scripts are from web hosting platforms (WordPress, Wix, Squarespace, etc). Note that in this category, this can sometimes be the entirety of script on the page, and so the "impact" rank might be misleading. In the case of WordPress, this just indicates the libraries hosted and served by WordPress not all sites using self-hosted WordPress.

RankNameUsageAverage Impact
1Blogger23,674327 ms
2Salesforce Commerce Cloud2,623342 ms
3WordPress92,546404 ms
4Dealer8,637433 ms
5Ecwid1,399739 ms
6Tilda7,842747 ms
7Squarespace39,492911 ms
8Adobe Business Catalyst3,181971 ms
9Shopify107,3231058 ms
10Weebly13,2711433 ms
11CDK Dealer Management3,4291568 ms
12Hatena Blog13,2051579 ms
13Wix54,9095962 ms

Marketing

These scripts are from marketing tools that add popups/newsletters/etc.

RankNameUsageAverage Impact
1Beeketing3,98474 ms
2RD Station6,54576 ms
3iZooto1,37083 ms
4Ve1,848149 ms
5Listrak1,073154 ms
6Hubspot33,125181 ms
7Yotpo13,629202 ms
8Mailchimp23,373204 ms
9OptinMonster7,493260 ms
10Bronto Software1,056262 ms
11Pardot1,435404 ms
12Albacross1,920490 ms
13Sumo18,438686 ms
14Bigcommerce10,096976 ms
15Drift6,5651279 ms
16Judge.me8,3071375 ms
17PureCars2,6971901 ms
18Tray Commerce3,1732328 ms

Customer Success

These scripts are from customer support/marketing providers that offer chat and contact solutions. These scripts are generally heavier in weight.

RankNameUsageAverage Impact
1SnapEngage1,08359 ms
2Pure Chat4,66170 ms
3Foursixty1,41181 ms
4LivePerson4,302112 ms
5iPerceptions1,992132 ms
6Comm1001,321134 ms
7Intercom15,656245 ms
8Help Scout2,183258 ms
9Tidio Live Chat12,655383 ms
10Tawk.to63,460405 ms
11LiveChat19,468411 ms
12ContactAtOnce3,247491 ms
13Jivochat45,110553 ms
14Olark6,903656 ms
15Smartsupp14,862782 ms
16ZenDesk69,488892 ms

Content & Publishing

These scripts are from content providers or publishing-specific affiliate tracking.

RankNameUsageAverage Impact
1Research Online2,22262 ms
2Accuweather1,49172 ms
3Booking.com1,656157 ms
4Tencent2,257163 ms
5OpenTable1,563165 ms
6SnapWidget2,607174 ms
7Covert Pics1,007184 ms
8AMP74,549308 ms
9Medium1,157474 ms
10Embedly5,513514 ms
11Spotify3,225602 ms
12issuu1,934670 ms
13SoundCloud4,464986 ms
14Dailymotion1,8381244 ms

CDNs

These are a mixture of publicly hosted open source libraries (e.g. jQuery) served over different public CDNs and private CDN usage. This category is unique in that the origin may have no responsibility for the performance of what's being served. Note that rank here does not imply one CDN is better than the other. It simply indicates that the scripts being served from that origin are lighter/heavier than the ones served by another.

RankNameUsageAverage Impact
1Bootstrap CDN1,44555 ms
2Adobe TypeKit18,27494 ms
3Yandex CDN1,572184 ms
4JSDelivr CDN97,319193 ms
5Microsoft Hosted Libs4,941204 ms
6Monotype4,073212 ms
7Azure Web Services10,575225 ms
8jQuery CDN167,533269 ms
9Unpkg6,922274 ms
10Google CDN947,402288 ms
11Akamai7,316336 ms
12Cloudflare CDN117,287339 ms
13FontAwesome CDN47,278413 ms
14CreateJS CDN3,5162323 ms

Tag Management

These scripts tend to load lots of other scripts and initiate many tasks.

RankNameUsageAverage Impact
1Google Tag Manager721,295115 ms
2TagCommander1,072145 ms
3BrightTag / Signal3,666158 ms
4Adobe Tag Manager32,466311 ms
5Tealium12,103362 ms
6Ensighten3,761444 ms

Mixed / Other

These are miscellaneous scripts delivered via a shared origin with no precise category or attribution. Help us out by identifying more origins!

RankNameUsageAverage Impact
1ResponsiveVoice1,24170 ms
2Amazon Web Services38,265161 ms
3All Other 3rd Parties1,380,493318 ms
4Parking Crew5,147326 ms
5Heroku2,002607 ms
6uLogin2,3161223 ms

Third Parties by Total Impact

This section highlights the entities responsible for the most script execution across the web. This helps inform which improvements would have the largest total impact.

NamePopularityTotal ImpactAverage Impact
Google/Doubleclick Ads680,948991,570 s1456 ms
All Other 3rd Parties1,380,493438,401 s318 ms
YouTube408,326346,661 s849 ms
Facebook1,461,331334,392 s229 ms
Wix54,909327,376 s5962 ms
Google CDN947,402272,512 s288 ms
Yandex Metrica292,542169,622 s580 ms
Google Maps267,417138,999 s520 ms
Shopify107,323113,506 s1058 ms
Other Google APIs/SDKs580,41597,529 s168 ms
Google Analytics1,200,66692,871 s77 ms
Google Tag Manager721,29583,294 s115 ms
ZenDesk69,48862,011 s892 ms
AddThis118,28947,729 s403 ms
jQuery CDN167,53345,063 s269 ms
Cloudflare CDN117,28739,767 s339 ms
WordPress92,54637,424 s404 ms
Squarespace39,49235,967 s911 ms
Twitter213,91129,771 s139 ms
Yandex APIs27,48029,681 s1080 ms
Tawk.to63,46025,679 s405 ms
Jivochat45,11024,937 s553 ms
Cloudflare53,31924,772 s465 ms
PIXNET15,43423,272 s1508 ms
AMP74,54922,928 s308 ms
POWr16,40722,375 s1364 ms
Hatena Blog13,20520,853 s1579 ms
FontAwesome CDN47,27819,542 s413 ms
Weebly13,27119,021 s1433 ms
JSDelivr CDN97,31918,827 s193 ms
Pubmatic52,61316,557 s315 ms
Tumblr7,97216,326 s2048 ms
Hotjar177,46814,877 s84 ms
Criteo62,12514,701 s237 ms
Sumo18,43812,647 s686 ms
Wistia13,08312,145 s928 ms
Smartsupp14,86211,628 s782 ms
Judge.me8,30711,424 s1375 ms
Bridgewell DSP14,07911,133 s791 ms
Adobe Tag Manager32,46610,104 s311 ms
Bigcommerce10,0969,854 s976 ms
ShareThis40,1339,398 s234 ms
Stripe23,5389,143 s388 ms
Taboola24,5838,950 s364 ms
Drift6,5658,400 s1279 ms
Integral Ad Science8,0138,241 s1028 ms
CreateJS CDN3,5168,169 s2323 ms
Yandex Ads25,9068,113 s313 ms
Esri ArcGIS1,6928,036 s4750 ms
LiveChat19,4688,001 s411 ms
Blogger23,6747,742 s327 ms
Tray Commerce3,1737,388 s2328 ms
Sentry9,0616,480 s715 ms
Amazon Web Services38,2656,159 s161 ms
Hubspot33,1256,001 s181 ms
Tilda7,8425,858 s747 ms
Klaviyo14,5935,713 s392 ms
Adroll47,9595,625 s117 ms
Moat6,8625,604 s817 ms
Snapchat13,3445,466 s410 ms
CDK Dealer Management3,4295,376 s1568 ms
Brightcove6,6155,352 s809 ms
Rambler7,6985,318 s691 ms
Adloox5,7595,306 s921 ms
PayPal15,4365,286 s342 ms
Salesforce10,8925,206 s478 ms
PureCars2,6975,127 s1901 ms
Media.net14,5294,949 s341 ms
Bugsnag8,6864,945 s569 ms
Histats13,5374,884 s361 ms
LiveJournal3,6804,882 s1327 ms
Tidio Live Chat12,6554,849 s383 ms
AB Tasty3,0104,798 s1594 ms
Mailchimp23,3734,766 s204 ms
MGID8,2104,716 s574 ms
GoDaddy6,6874,678 s700 ms
Mapbox5,2064,568 s877 ms
Olark6,9034,528 s656 ms
Yandex Share24,1814,455 s184 ms
SoundCloud4,4644,404 s986 ms
Tealium12,1034,385 s362 ms
Optimizely19,5834,375 s223 ms
Mediavine6,4904,251 s655 ms
Privy13,0474,036 s309 ms
fam2,1353,857 s1807 ms
Intercom15,6563,829 s245 ms
Dealer8,6373,737 s433 ms
Lucky Orange7,5293,699 s491 ms
Vimeo10,4033,689 s355 ms
Rubicon Project39,3533,558 s90 ms
WebsiteBuilder.com7383,441 s4663 ms
mPulse13,1773,243 s246 ms
Adobe Business Catalyst3,1813,089 s971 ms
Cookiebot20,8383,062 s147 ms
Kakao18,1092,853 s158 ms
uLogin2,3162,832 s1223 ms
Embedly5,5132,831 s514 ms
Yotpo13,6292,754 s202 ms
WordAds18,4782,745 s149 ms
Amazon Ads25,3382,710 s107 ms
Skimbit15,8192,647 s167 ms
Trust Pilot15,2022,488 s164 ms
Akamai7,3162,455 s336 ms
Azure Web Services10,5752,377 s225 ms
Permutive9,5562,326 s243 ms
Dailymotion1,8382,287 s1244 ms
VigLink7,0972,191 s309 ms
Infolinks3,6992,143 s579 ms
AddToAny24,4902,119 s87 ms
Twitch1,0682,025 s1896 ms
Inspectlet5,6052,022 s361 ms
Tynt22,5581,960 s87 ms
OptinMonster7,4931,950 s260 ms
Spotify3,2251,943 s602 ms
LKQD1,3351,935 s1449 ms
Unpkg6,9221,896 s274 ms
Bold Commerce13,0951,885 s144 ms
Hotmart8101,878 s2318 ms
Fastly6,6941,841 s275 ms
Bing Ads15,7861,838 s116 ms
Segment9,5411,825 s191 ms
Instagram9,4411,734 s184 ms
Adobe TypeKit18,2741,723 s94 ms
DTSCOUT12,6791,678 s132 ms
Parking Crew5,1471,677 s326 ms
Ensighten3,7611,668 s444 ms
VK13,4731,631 s121 ms
ContactAtOnce3,2471,594 s491 ms
iubenda12,7811,586 s124 ms
LinkedIn14,0381,559 s111 ms
Sizmek1,4841,554 s1047 ms
Pinterest17,2181,536 s89 ms
Signyfyd1,6911,466 s867 ms
FullStory7,6541,408 s184 ms
Gigya2,2611,310 s579 ms
issuu1,9341,295 s670 ms
Adform6,7721,279 s189 ms
LongTail Ad Solutions3,4331,252 s365 ms
Disqus1,2521,245 s994 ms
New Relic13,0621,242 s95 ms
Heroku2,0021,216 s607 ms
Nielsen NetRatings SiteCensus11,8051,204 s102 ms
Secomapp2,1501,174 s546 ms
Baidu Analytics10,7391,141 s106 ms
Okas Concepts6731,112 s1652 ms
Dynamic Yield9641,095 s1136 ms
LoyaltyLion1,3001,079 s830 ms
Yahoo!6,1831,062 s172 ms
Sekindo3761,054 s2804 ms
Ecwid1,3991,033 s739 ms
Optanon8,0251,028 s128 ms
Microsoft Hosted Libs4,9411,006 s204 ms
Amazon Pay5,751974 s169 ms
DoubleVerify1,772970 s548 ms
DigiTrust485969 s1999 ms
Albacross1,920941 s490 ms
Intent Media8,019931 s116 ms
Salesforce Commerce Cloud2,623897 s342 ms
sovrn4,673890 s190 ms
Monotype4,073862 s212 ms
Outbrain8,189854 s104 ms
Kaltura Video Platform506852 s1684 ms
Feefo.com1,686846 s502 ms
Technorati830822 s991 ms
Cxense4,374783 s179 ms
Ezoic1,329773 s582 ms
VWO4,724748 s158 ms
Bazaarvoice1,845732 s397 ms
33 Across1,188730 s615 ms
AdMatic793719 s906 ms
Vidible1,146716 s625 ms
CallRail7,019710 s101 ms
Revolver Maps1,144697 s609 ms
Yieldify513683 s1332 ms
AppDynamics1,281675 s527 ms
Admixer for Publishers1,043669 s642 ms
RevJet1,210665 s550 ms
Index Exchange4,946655 s133 ms
Smart AdServer5,189654 s126 ms
StickyADS.tv838650 s776 ms
SocialShopWave2,044617 s302 ms
Teads3,457612 s177 ms
Scorecard Research6,956600 s86 ms
Vidyard536587 s1094 ms
LINE Corporation5,182585 s113 ms
OpenX3,015583 s193 ms
Fraudlogix2,244580 s258 ms
Pardot1,435579 s404 ms
BrightTag / Signal3,666578 s158 ms
ZEDO794576 s726 ms
Mixpanel7,513567 s75 ms
Help Scout2,183563 s258 ms
Snowplow5,845555 s95 ms
TINT224553 s2470 ms
Crazy Egg4,988551 s110 ms
Medium1,157549 s474 ms
IBM Digital Analytics806546 s677 ms
piano1,183543 s459 ms
RD Station6,545496 s76 ms
LivePerson4,302484 s112 ms

Future Work

  1. Introduce URL-level data for more fine-grained analysis, i.e. which libraries from Cloudflare/Google CDNs are most expensive.
  2. Expand the scope, i.e. include more third parties and have greater entity/category coverage.

FAQs

I don't see entity X in the list. What's up with that?

This can be for one of several reasons:

  1. The entity does not have references to their origin on at least 50 pages in the dataset.
  2. The entity's origins have not yet been identified. See How can I contribute?

What is "Total Occurences"?

Total Occurrences is the number of pages on which the entity is included.

How is the "Average Impact" determined?

The HTTP Archive dataset includes Lighthouse reports for each URL on mobile. Lighthouse has an audit called "bootup-time" that summarizes the amount of time that each script spent on the main thread. The "Average Impact" for an entity is the total execution time of scripts whose domain matches one of the entity's domains divided by the total number of pages that included the entity.

Average Impact = Total Execution Time / Total Occurrences

How does Lighthouse determine the execution time of each script?

Lighthouse's bootup time audit attempts to attribute all toplevel main-thread tasks to a URL. A main thread task is attributed to the first script URL found in the stack. If you're interested in helping us improve this logic, see Contributing for details.

The data for entity X seems wrong. How can it be corrected?

Verify that the origins in data/entities.js are correct. Most issues will simply be the result of mislabelling of shared origins. If everything checks out, there is likely no further action and the data is valid. If you still believe there's errors, file an issue to discuss futher.

How can I contribute?

Only about 90% of the third party script execution has been assigned to an entity. We could use your help identifying the rest! See Contributing for details.

Contributing

Thanks

A huge thanks to @simonhearne and @soulgalore for their assistance in classifying additional domains!

Updating the Entities

The domain->entity mapping can be found in data/entities.js. Adding a new entity is as simple as adding a new array item with the following form.

{
    "name": "Facebook",
    "homepage": "https://www.facebook.com",
    "categories": ["social"],
    "domains": [
        "*.facebook.com",
        "*.fbcdn.net"
    ],
    "examples": [
        "www.facebook.com",
        "connect.facebook.net",
        "staticxx.facebook.com",
        "static.xx.fbcdn.net",
        "m.facebook.com"
    ]
}

Updating Attribution Logic

The logic for attribution to individual script URLs can be found in the Lighthouse repo. File an issue over there to discuss further.

Updating the Data

The queries used to compute the data are in the sql/ directory.

  1. Edit all-observed-domains-query.sql to query the correct month's HTTPArchive run.
  2. Run all-observed-domains-query.sql in BigQuery.
  3. Download the results and check them in at data/YYYY-MM-01-observed-domains.json.
  4. Edit bootup-time-scripting.partial.sql to query the correct month's HTTPArchive run.
  5. Run origin-query.generated.sql in BigQuery.
  6. Download the results and check them in at data/YYYY-MM-01-origin-scripting.json.
  7. Run yarn build to regenerate the latest canonical domain mapping.
  8. Create a new table in lighthouse-infrastructure.third_party_web BigQuery table of the format YYYY_MM_01 with the csv in dist/domain-map.csv with three columns domain, canonicalDomain, and category.
  9. Edit bootup-time-scripting.partial.sql to join on the table you just created.
  10. Run yarn build to regenerate the queries.
  11. Run entity-per-page.generated.sql in BigQuery.
  12. Download the results and check them in at data/YYYY-MM-01-entity-scripting.json.
  13. Run web-almanac-all-observed-domains-identification.sql in BigQuery.
  14. Save the results to a BigQuery table YYYY_MM_01_all_observed_domains.

Updating this README

This README is auto-generated from the templates lib/ and the computed data. In order to update the charts, you'll need to make sure you have cairo installed locally in addition to yarn install.

# Install `cairo` and dependencies for node-canvas
brew install pkg-config cairo pango libpng jpeg giflib
# Build the requirements in this repo
yarn build
# Regenerate the README
yarn start

Updating the website

The web code is located in www/ directory of this repository. Open a PR to make changes.

Keywords

FAQs

Last updated on 14 Dec 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc