diff --git a/data/categories.json b/data/categories.json index c683fba..ffd223b 100644 --- a/data/categories.json +++ b/data/categories.json @@ -60,6 +60,12 @@ "title": "Tag Management", "description": "These scripts tend to load lots of other scripts and initiate many tasks." }, + "consent-provider": { + "color": "hsl(345, 90%, 60%)", + "title": "Consent Management Provider", + "description": + "IAB Consent Management Providers are the 'Cookie Consent' popups used by many publishers. They're invoked for every page and sit on the critical path between a page loading and adverts being displayed." + }, "other": { "color": "hsl(330, 90%, 60%)", "title": "Mixed / Other", diff --git a/data/entities.js b/data/entities.js index 4e8f746..6e2b92f 100644 --- a/data/entities.js +++ b/data/entities.js @@ -909,8 +909,8 @@ module.exports = [ name: 'Adroll', homepage: 'https://www.adroll.com/', categories: ['ad'], - domains: ['*.adroll.com', '*.adroll.mgr.consensu.org'], - examples: ['d.adroll.com', 's.adroll.com', 'd.adroll.mgr.consensu.org'], + domains: ['*.adroll.com'], + examples: ['d.adroll.com', 's.adroll.com'], }, { name: 'Twitch', @@ -11652,4 +11652,400 @@ module.exports = [ domains: ['*.crisp.chat'], examples: ['client.crisp.chat', 'client.relay.crisp.chat'], }, + { + name: 'Admiral CMP', + homepage: 'https://www.getadmiral.com', + categories: ['consent-provider'], + domains: ['admiral.mgr.consensu.org', '*.admiral.mgr.consensu.org'], + }, + { + name: 'Adnuntius CMP', + homepage: 'https://adnuntius.com', + categories: ['consent-provider'], + domains: ['adnuntiusconsent.mgr.consensu.org', '*.adnuntiusconsent.mgr.consensu.org'], + }, + { + name: 'Clickio CMP', + homepage: 'https://clickio.com', + categories: ['consent-provider'], + domains: ['clickio.mgr.consensu.org', '*.clickio.mgr.consensu.org'], + }, + { + name: 'AppConsent CMP', + homepage: 'https://appconsent.io/en', + categories: ['consent-provider'], + domains: ['appconsent.mgr.consensu.org', '*.appconsent.mgr.consensu.org'], + }, + { + name: 'DMG Media CMP', + homepage: 'https://www.dmgmedia.co.uk', + categories: ['consent-provider'], + domains: ['dmgmedia.mgr.consensu.org', '*.dmgmedia.mgr.consensu.org'], + }, + { + name: 'Axel Springer CMP', + homepage: 'https://www.axelspringer.com', + categories: ['consent-provider'], + domains: ['axelspringer.mgr.consensu.org', '*.axelspringer.mgr.consensu.org'], + }, + { + name: 'Bedrock CMP', + homepage: 'https://www.bedrockstreaming.com', + categories: ['consent-provider'], + domains: ['bedrock.mgr.consensu.org', '*.bedrock.mgr.consensu.org'], + }, + { + name: 'BMIND CMP', + homepage: 'https://www.bmind.es', + categories: ['consent-provider'], + domains: ['bmind.mgr.consensu.org', '*.bmind.mgr.consensu.org'], + }, + { + name: 'Borlabs CMP', + homepage: 'https://borlabs.io', + categories: ['consent-provider'], + domains: ['borlabs.mgr.consensu.org', '*.borlabs.mgr.consensu.org'], + }, + { + name: 'Civic CMP', + homepage: 'https://www.civicuk.com', + categories: ['consent-provider'], + domains: ['cookiecontrol.mgr.consensu.org', '*.cookiecontrol.mgr.consensu.org'], + }, + { + name: 'Commanders Act CMP', + homepage: 'https://www.commandersact.com', + categories: ['consent-provider'], + domains: ['commandersact.mgr.consensu.org', '*.commandersact.mgr.consensu.org'], + }, + { + name: 'Complianz CMP', + homepage: 'https://complianz.io/', + categories: ['consent-provider'], + domains: ['complianz.mgr.consensu.org', '*.complianz.mgr.consensu.org'], + }, + { + name: 'Consent Desk CMP', + homepage: 'https://www.consentdesk.com/', + categories: ['consent-provider'], + domains: ['consentdesk.mgr.consensu.org', '*.consentdesk.mgr.consensu.org'], + }, + { + name: 'Consent Manager CMP', + homepage: 'https://consentmanager.net', + categories: ['consent-provider'], + domains: ['consentmanager.mgr.consensu.org', '*consentmanager.mgr.consensu.org'], + }, + { + name: 'Conversant CMP', + homepage: 'https://www.conversantmedia.eu/', + categories: ['consent-provider'], + domains: ['conversant.mgr.consensu.org', '*.conversant.mgr.consensu.org'], + }, + { + name: 'Cookie Information CMP', + homepage: 'https://www.cookieinformation.com/', + categories: ['consent-provider'], + domains: ['cookieinformation.mgr.consensu.org', '*.cookieinformation.mgr.consensu.org'], + }, + { + name: 'Cookiebot CMP', + homepage: 'https://www.cookiebot.com', + categories: ['consent-provider'], + domains: ['cookiebot.mgr.consensu.org', '*.cookiebot.mgr.consensu.org'], + }, + { + name: 'Truendo CMP', + homepage: 'https://truendo.com/', + categories: ['consent-provider'], + domains: ['truendo.mgr.consensu.org', '*.truendo.mgr.consensu.org'], + }, + { + name: 'Dentsu CMP', + homepage: 'https://www.dentsuaegisnetwork.de/', + categories: ['consent-provider'], + domains: ['dan.mgr.consensu.org', '*.dan.mgr.consensu.org'], + }, + { + name: 'Didomi CMP', + homepage: 'https://www.didomi.io/en/', + categories: ['consent-provider'], + domains: ['didomi.mgr.consensu.org', '*.didomi.mgr.consensu.org'], + }, + { + name: 'Ensighten CMP', + homepage: 'https://www.ensighten.com/', + categories: ['consent-provider'], + domains: ['ensighten.mgr.consensu.org', '*.ensighten.mgr.consensu.org'], + }, + { + name: 'Evidon CMP', + homepage: 'https://evidon.com', + categories: ['consent-provider'], + domains: ['evidon.mgr.consensu.org', '*.evidon.mgr.consensu.org'], + }, + { + name: 'Ezoic CMP', + homepage: 'https://www.ezoic.com/', + categories: ['consent-provider'], + domains: ['ezoic.mgr.consensu.org', '*.ezoic.mgr.consensu.org'], + }, + { + name: 'Gemius CMP', + homepage: 'https://www.gemius.com', + categories: ['consent-provider'], + domains: ['gemius.mgr.consensu.org', '*.gemius.mgr.consensu.org'], + }, + { + name: 'NitroPay CMP', + homepage: 'https://nitropay.com/', + categories: ['consent-provider'], + domains: ['nitropay.mgr.consensu.org', '*.nitropay.mgr.consensu.org'], + }, + { + name: 'Google FundingChoices', + homepage: 'https://fundingchoices.google.com/start/', + categories: ['consent-provider'], + domains: ['fundingchoices.mgr.consensu.org', '*.fundingchoices.mgr.consensu.org'], + }, + { + name: 'Gravito CMP', + homepage: 'https://www.gravito.net/', + categories: ['consent-provider'], + domains: ['gravito.mgr.consensu.org', '*.gravito.mgr.consensu.org'], + }, + { + name: 'ID Ward CMP', + homepage: 'https://id-ward.com/enterprise', + categories: ['consent-provider'], + domains: ['idward.mgr.consensu.org', '*.idward.mgr.consensu.org'], + }, + { + name: 'iubenda CMP', + homepage: 'https://www.iubenda.com', + categories: ['consent-provider'], + domains: ['iubenda.mgr.consensu.org', '*.iubenda.mgr.consensu.org'], + }, + { + name: 'Jump CMP', + homepage: 'https://jumpgroup.it/', + categories: ['consent-provider'], + domains: ['avacy.mgr.consensu.org', '*.avacy.mgr.consensu.org'], + }, + { + name: 'LiveRamp CMP', + homepage: 'https://liveramp.com/', + categories: ['consent-provider'], + domains: ['faktor.mgr.consensu.org', '*.faktor.mgr.consensu.org'], + }, + { + name: 'Madvertise CMP', + homepage: 'https://madvertise.com/en/', + categories: ['consent-provider'], + domains: ['madvertise.mgr.consensu.org', '*.madvertise.mgr.consensu.org'], + }, + { + name: 'Mairdumont Netletic CMP', + homepage: 'https://www.mairdumont-netletix.com/', + categories: ['consent-provider'], + domains: ['mdnxmp.mgr.consensu.org', '*.mdnxmp.mgr.consensu.org'], + }, + { + name: 'Marfeel CMP', + homepage: 'https://www.marfeel.com/', + categories: ['consent-provider'], + domains: ['marfeel.mgr.consensu.org', '*.marfeel.mgr.consensu.org'], + }, + { + name: 'Mediavine CMP', + homepage: 'https://www.mediavine.com/', + categories: ['consent-provider'], + domains: ['mediavine.mgr.consensu.org', '*.mediavine.mgr.consensu.org'], + }, + { + name: 'ConsentServe CMP', + homepage: 'https://www.consentserve.com/', + categories: ['consent-provider'], + domains: ['consentserve.mgr.consensu.org', '*.consentserve.mgr.consensu.org'], + }, + { + name: 'Next14 CMP', + homepage: 'https://www.next14.com/', + categories: ['consent-provider'], + domains: ['next14.mgr.consensu.org', '*.next14.mgr.consensu.org'], + }, + { + name: 'AdRoll CMP', + homepage: 'https://www.adroll.com/', + categories: ['consent-provider'], + domains: ['adroll.mgr.consensu.org', '*.adroll.mgr.consensu.org'], + }, + { + name: 'Ogury CMP', + homepage: 'https://www.ogury.com/', + categories: ['consent-provider'], + domains: ['ogury.mgr.consensu.org', '*.ogury.mgr.consensu.org'], + }, + { + name: 'OneTag CMP', + homepage: 'https://onetag.net', + categories: ['consent-provider'], + domains: ['onetag.mgr.consensu.org', '*.onetag.mgr.consensu.org'], + }, + { + name: 'OneTrust CMP', + homepage: 'https://onetrust.com', + categories: ['consent-provider'], + domains: ['onetrust.mgr.consensu.org', '*.onetrust.mgr.consensu.org'], + }, + { + name: 'optAd360 CMP', + homepage: 'https://www.optad360.com/', + categories: ['consent-provider'], + domains: ['optad360.mgr.consensu.org', '*.optad360.mgr.consensu.org'], + }, + { + name: 'Osano CMP', + homepage: 'https://www.osano.com', + categories: ['consent-provider'], + domains: ['osano.mgr.consensu.org', '*.osano.mgr.consensu.org'], + }, + { + name: 'Playwire CMP', + homepage: 'http://playwire.com', + categories: ['consent-provider'], + domains: ['playwire.mgr.consensu.org', '*.playwire.mgr.consensu.org'], + }, + { + name: 'Pulselive CMP', + homepage: 'https://www.pulselive.com', + categories: ['consent-provider'], + domains: ['pulselive.mgr.consensu.org', '*.pulselive.mgr.consensu.org'], + }, + { + name: 'Quantcast Choice', + homepage: 'https://quantcast.com', + categories: ['consent-provider'], + domains: ['quantcast.mgr.consensu.org', '*.quantcast.mgr.consensu.org'], + }, + { + name: 'RCS Pubblicita CMP', + homepage: 'http://www.rcspubblicita.it/site/home.html', + categories: ['consent-provider'], + domains: ['rcsmediagroup.mgr.consensu.org', '*.rcsmediagroup.mgr.consensu.org'], + }, + { + name: 'Rich Audience CMP', + homepage: 'https://richaudience.com', + categories: ['consent-provider'], + domains: ['richaudience.mgr.consensu.org', '*.richaudience.mgr.consensu.org'], + }, + { + name: 'Ringier Axel Springer CMP', + homepage: 'https://www.ringieraxelspringer.pl/en/home/', + categories: ['consent-provider'], + domains: ['rasp.mgr.consensu.org', '*.rasp.mgr.consensu.org'], + }, + { + name: 'Secure Privacy CMP', + homepage: 'https://secureprivacy.ai/', + categories: ['consent-provider'], + domains: ['secureprivacy.mgr.consensu.org', '*.secureprivacy.mgr.consensu.org'], + }, + { + name: 'Securiti CMP', + homepage: 'https://securiti.ai/', + categories: ['consent-provider'], + domains: ['securiti.mgr.consensu.org', '*.securiti.mgr.consensu.org'], + }, + { + name: 'Seznam.cz CMP', + homepage: 'https://www.seznam.cz/', + categories: ['consent-provider'], + domains: ['seznam.mgr.consensu.org', '*.seznam.mgr.consensu.org'], + }, + { + name: 'ShareThis CMP', + homepage: 'https://sharethis.com', + categories: ['consent-provider'], + domains: ['sharethis.mgr.consensu.org', '*.sharethis.mgr.consensu.org'], + }, + { + name: 'ShinyStat CMP', + homepage: 'https://www.shinystat.com', + categories: ['consent-provider'], + domains: ['shinystat.mgr.consensu.org', '*.shinystat.mgr.consensu.org'], + }, + { + name: 'Sibbo CMP', + homepage: 'http://sibboventures.com/en/', + categories: ['consent-provider'], + domains: ['sibboventures.mgr.consensu.org', '*.sibboventures.mgr.consensu.org'], + }, + { + name: 'Singlespot CMP', + homepage: 'https://www.singlespot.com/en', + categories: ['consent-provider'], + domains: ['singlespot.mgr.consensu.org', '*.singlespot.mgr.consensu.org'], + }, + { + name: 'Sirdata CMP', + homepage: 'https://www.sirdata.com', + categories: ['consent-provider'], + domains: ['sddan.mgr.consensu.org', '*.sddan.mgr.consensu.org'], + }, + { + name: 'Snigel CMP', + homepage: 'http://www.snigelweb.com/', + categories: ['consent-provider'], + domains: ['snigelweb.mgr.consensu.org', '*.snigelweb.mgr.consensu.org'], + }, + { + name: 'Sourcepoint CMP', + homepage: 'https://sourcepoint.com', + categories: ['consent-provider'], + domains: ['sourcepoint.mgr.consensu.org', '*.sourcepoint.mgr.consensu.org'], + }, + { + name: 'Pubtech CMP', + homepage: 'https://www.pubtech.ai/', + categories: ['consent-provider'], + domains: ['pubtech.mgr.consensu.org', '*.pubtech.mgr.consensu.org'], + }, + { + name: 'AdMetrics Pro CMP', + homepage: 'https://admetricspro.com', + categories: ['consent-provider'], + domains: ['cmp.mgr.consensu.org', '*.cmp.mgr.consensu.org'], + }, + { + name: 'Traffective CMP', + homepage: 'https://traffective.com', + categories: ['consent-provider'], + domains: ['traffective.mgr.consensu.org', '*.traffective.mgr.consensu.org'], + }, + { + name: 'UniConsent CMP', + homepage: 'https://uniconsent.com', + categories: ['consent-provider'], + domains: ['uniconsent.mgr.consensu.org', '*.uniconsent.mgr.consensu.org'], + }, + { + name: 'TrustArc CMP', + homepage: 'https://trustarc.com/', + categories: ['consent-provider'], + domains: ['trustarc.mgr.consensu.org', '*.trustarc.mgr.consensu.org'], + }, + { + name: 'Usercentrics CMP', + homepage: 'https://usercentrics.com', + categories: ['consent-provider'], + domains: ['usercentrics.mgr.consensu.org', '*.usercentrics.mgr.consensu.org'], + }, + { + name: 'WebAds CMP', + homepage: 'http://www.webads.nl/', + categories: ['consent-provider'], + domains: ['webads.mgr.consensu.org', '*.webads.mgr.consensu.org'], + }, ] diff --git a/lib/__snapshots__/index.test.js.snap b/lib/__snapshots__/index.test.js.snap index 02ff1a1..ebdc3f0 100644 --- a/lib/__snapshots__/index.test.js.snap +++ b/lib/__snapshots__/index.test.js.snap @@ -136,7 +136,7 @@ Array [ "undefined - https://px.ads.linkedin.com/show_ad.js", "ShareThis - https://l.sharethis.com/sc", "undefined - https://beacon.walmart.com/tap.gif", - "undefined - https://c.sharethis.mgr.consensu.org/v2/vendor-list.json", + "ShareThis CMP - https://c.sharethis.mgr.consensu.org/v2/vendor-list.json", "Gemius - https://googlecm.hit.gemius.pl/googleredir", "Aggregate Knowledge - https://aa.agkn.com/adscores/s.pixel", "Mailchimp - https://chimpstatic.com/mcjsconnected/js/users/7d9d9341d553ed0bae3dc0224/38e2fc32b599c4f7a9b31dffb.js", @@ -315,7 +315,7 @@ Array [ "Klaviyo - https://static.klaviyo.com/onsite/js/vendors~signupForms.e24790fdec513f21bd2b.js", "Media Math - https://pixel.mathtag.com/u/js", "Klaviyo - https://fast.a.klaviyo.com/onsite/api/v2/modules", - "Adroll - https://d.adroll.mgr.consensu.org/consent/iabcheck/update-me", + "AdRoll CMP - https://d.adroll.mgr.consensu.org/consent/iabcheck/update-me", "undefined - https://spl.zeotap.com/mapper.js", "ShareThis - https://ws.sharethis.com/widget/sttypepad2.js", "Microsoft Hosted Libs - https://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.2.min.js", @@ -564,7 +564,7 @@ Array [ "MailMunch - https://forms.mailmunch.co/sites/99891", "undefined - https://static.exosrv.com/widget-branding-logo.png", "Amazon Ads - https://aax-us-east.amazon-adsystem.com/x/px/QvzzPpkfvpYIFDMHmbTep-8AAAFyEK9s1QEAAAFKAcMfpJM/", - "undefined - https://quantcast.mgr.consensu.org/v9/cmp.js", + "Quantcast Choice - https://quantcast.mgr.consensu.org/v9/cmp.js", "Optanon - https://cdn.cookielaw.org/vendorlist/iabData.json", "MailMunch - https://a.mailmunch.co/widgets/site-99156-a2b0633a27198ff0eee96eef9771f9be16d0050c.js", "Bidswitch - https://r.bidswitch.net/sync", @@ -586,7 +586,7 @@ Array [ "Privy - https://privymktg.com/collect", "undefined - https://app.retargetly.com/sync", "undefined - https://ad.mail.ru/w1092.gif", - "undefined - https://static.quantcast.mgr.consensu.org/v9/cmpui-popup.js", + "Quantcast Choice - https://static.quantcast.mgr.consensu.org/v9/cmpui-popup.js", "Nielsen NetRatings SiteCensus - https://cdn-gl.imrworldwide.com/v60.js", "Hubspot - https://app.hubspot.com/userpreferences/v1/avatar/fc80461cbff2173323bf83e9c3e54ee4/144", "undefined - https://js.usemessages.com/messageswidgetshell.js", diff --git a/lib/index.test.js b/lib/index.test.js index 9bcd1e4..bbb9b38 100644 --- a/lib/index.test.js +++ b/lib/index.test.js @@ -150,6 +150,13 @@ describe('getEntity', () => { const dataUri = 'data:image/gif;base64,R0lGODlhAQABAIAAAP8AADAAACwAAAAAAQABAAACAkQBADs=' expect(getEntity(dataUri)).toEqual(undefined) }) + + it('supports multi-tennant domains', () => { + expect(getEntity('https://gemius.mgr.consensu.org/cmp/v2/stub.js').name).toEqual('Gemius CMP') + expect(getEntity('https://quantcast.mgr.consensu.org/choice/KygWsHah2_7Qa/rssing.com/choice.js').name).toEqual('Quantcast Choice') + expect(getEntity('https://static.quantcast.mgr.consensu.org/v50/cmpui-popup.js').name).toEqual('Quantcast Choice') + }) + }) describe('getProduct', () => {