From 66b831072c8fbb359eb4098561bb1f3a52522c74 Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Wed, 15 Feb 2023 16:53:29 +0300 Subject: [PATCH] all: sync with master; upd chlog --- .github/workflows/build.yml | 2 +- .github/workflows/lint.yml | 2 +- CHANGELOG.md | 106 +- README.md | 16 +- bamboo-specs/release.yaml | 13 +- bamboo-specs/test.yaml | 2 +- client/src/__locales/be.json | 12 +- client/src/__locales/es.json | 6 +- client/src/__locales/fi.json | 2 +- client/src/__locales/zh-cn.json | 42 +- client/src/helpers/constants.js | 2 +- client/src/helpers/filters/filters.js | 6 - client/src/helpers/trackers/trackers.js | 45 +- client/src/helpers/trackers/trackers.json | 23750 ++++++++++++++++++++ go.mod | 39 +- go.sum | 73 +- internal/dnsforward/clientid.go | 22 +- internal/dnsforward/clientid_test.go | 40 +- internal/dnsforward/config.go | 5 +- internal/dnsforward/dns.go | 88 +- internal/dnsforward/dns64.go | 324 +- internal/dnsforward/dns64_test.go | 10 + internal/dnsforward/dnsforward.go | 64 +- internal/dnsforward/dnsforward_test.go | 22 +- internal/dnsforward/stats.go | 17 +- internal/dnsforward/stats_test.go | 24 +- internal/filtering/servicelist.go | 12 +- internal/home/clients.go | 23 +- internal/home/clients_test.go | 18 +- internal/home/config.go | 94 +- internal/home/controlinstall.go | 2 +- internal/home/dns.go | 51 +- internal/home/rdns.go | 75 +- internal/home/rdns_test.go | 48 +- internal/home/upgrade.go | 105 +- internal/home/upgrade_test.go | 107 + internal/home/web.go | 4 +- internal/querylog/http.go | 3 + internal/querylog/qlog.go | 10 + internal/querylog/qlog_test.go | 43 + internal/querylog/querylog.go | 8 + internal/querylog/querylogfile.go | 3 + internal/querylog/search.go | 4 + internal/stats/http.go | 14 +- internal/stats/stats.go | 141 +- internal/stats/stats_internal_test.go | 2 - internal/stats/stats_test.go | 2 + internal/stats/unit.go | 13 +- internal/tools/go.mod | 20 +- internal/tools/go.sum | 43 +- scripts/README.md | 2 +- scripts/companiesdb/download.sh | 12 +- scripts/install.sh | 15 + scripts/make/go-lint.sh | 5 +- scripts/make/go-test.sh | 2 +- 55 files changed, 24817 insertions(+), 798 deletions(-) create mode 100644 client/src/helpers/trackers/trackers.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f74b13e..84d80f99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ 'name': 'build' 'env': - 'GO_VERSION': '1.18.9' + 'GO_VERSION': '1.19.6' 'NODE_VERSION': '14' 'on': diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ce89779f..cf94cb26 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ 'name': 'lint' 'env': - 'GO_VERSION': '1.18.9' + 'GO_VERSION': '1.19.6' 'on': 'push': diff --git a/CHANGELOG.md b/CHANGELOG.md index 269ea042..5789eb38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,11 +14,11 @@ and this project adheres to @@ -29,6 +29,98 @@ NOTE: Add new changes ABOVE THIS COMMENT. +## [v0.107.24] - 2023-02-15 + +See also the [v0.107.24 GitHub milestone][ms-v0.107.24]. + +### Security + +- Go version has been updated, both because Go 1.18 has reached end of life an + to prevent the possibility of exploiting the Go vulnerabilities fixed in [Go + 1.19.6][go-1.19.6]. + +### Added + +- The ability to disable statistics by using the new `statistics.enabled` + field. Previously it was necessary to set the `statistics_interval` to 0, + losing the previous value ([#1717], [#4299]). +- The ability to exclude domain names from the query log or statistics by using + the new `querylog.ignored` or `statistics.ignored` fields ([#1717], [#4299]). + The UI changes are coming in the upcoming releases. + +### Changed + +#### Configuration Changes + +In this release, the schema version has changed from 14 to 16. + +- Property `statistics_interval`, which in schema versions 15 and earlier used + to be a part of the `dns` object, is now a part of the `statistics` object: + + ```yaml + # BEFORE: + 'dns': + # … + 'statistics_interval': 1 + + # AFTER: + 'statistics': + # … + 'interval': 1 + ``` + + To rollback this change, move the property back into the `dns` object and + change the `schema_version` back to `15`. +- The fields `dns.querylog_enabled`, `dns.querylog_file_enabled`, + `dns.querylog_interval`, and `dns.querylog_size_memory` have been moved to the + new `querylog` object. + + ```yaml + # BEFORE: + 'dns': + 'querylog_enabled': true + 'querylog_file_enabled': true + 'querylog_interval': '2160h' + 'querylog_size_memory': 1000 + + # AFTER: + 'querylog': + 'enabled': true + 'file_enabled': true + 'interval': '2160h' + 'size_memory': 1000 + ``` + + To rollback this change, rename and move properties back into the `dns` + object, remove `querylog` object and `querylog.ignored` property, and change + the `schema_version` back to `14`. + +### Deprecated + +- Go 1.19 support. Future versions will require at least Go 1.20 to build. + +### Fixed + +- Setting the AD (Authenticated Data) flag on responses that have the DO (DNSSEC + OK) flag set but not the AD flag ([#5479]). +- Client names resolved via reverse DNS not being updated ([#4939]). +- The icon for League Of Legends on the Blocked services page ([#5433]). + +### Removed + +- Go 1.18 support, as it has reached end of life. + +[#1717]: https://github.com/AdguardTeam/AdGuardHome/issues/1717 +[#4299]: https://github.com/AdguardTeam/AdGuardHome/issues/4299 +[#4939]: https://github.com/AdguardTeam/AdGuardHome/issues/4939 +[#5433]: https://github.com/AdguardTeam/AdGuardHome/issues/5433 +[#5479]: https://github.com/AdguardTeam/AdGuardHome/issues/5479 + +[go-1.19.6]: https://groups.google.com/g/golang-announce/c/V0aBFqaFs_E +[ms-v0.107.24]: https://github.com/AdguardTeam/AdGuardHome/milestone/60?closed=1 + + + ## [v0.107.23] - 2023-02-01 See also the [v0.107.23 GitHub milestone][ms-v0.107.23]. @@ -1031,7 +1123,6 @@ In this release, the schema version has changed from 10 to 12. To rollback this change, convert the property back into days and change the `schema_version` back to `11`. - - Property `rlimit_nofile`, which in schema versions 10 and earlier used to be on the top level, is now moved to the new `os` object: @@ -1578,11 +1669,12 @@ See also the [v0.104.2 GitHub milestone][ms-v0.104.2]. -[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.23...HEAD +[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.24...HEAD +[v0.107.24]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.23...v0.107.24 [v0.107.23]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.22...v0.107.23 [v0.107.22]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.21...v0.107.22 [v0.107.21]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.20...v0.107.21 diff --git a/README.md b/README.md index 1f2bc7a3..4c011b78 100644 --- a/README.md +++ b/README.md @@ -81,12 +81,24 @@ code. ### Automated install (Unix) -Run the following command in your terminal: +To install with `curl` run the following command: ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v ``` +To install with `wget` run the following command: + +```sh +wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v +``` + +To install with `fetch` run the following command: + +```sh +fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v +``` + The script also accepts some options: * `-c ` to use specified channel; @@ -249,7 +261,7 @@ Run `make init` to prepare the development environment. You will need this to build AdGuard Home: - * [Go](https://golang.org/dl/) v1.18 or later; + * [Go](https://golang.org/dl/) v1.19 or later; * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; * [npm](https://www.npmjs.com/) v6.14 or later; * [yarn](https://yarnpkg.com/) v1.22.5 or later. diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index bfdfff3b..a6807e85 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,7 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.1' 'stages': - 'Build frontend': @@ -223,6 +223,7 @@ channel="${bamboo.channel}" readonly channel + case "$channel" in ('release') @@ -269,8 +270,10 @@ set -e -f -u -x - export CHANNEL="${bamboo.channel}" - if [ "$CHANNEL" != 'release' ] && [ "${CHANNEL}" != 'beta' ] + channel="${bamboo.channel}" + readonly channel + + if [ "$channel" != 'release' ] && [ "${channel}" != 'beta' ] then echo "don't publish to GitHub Releases for this channel" @@ -323,7 +326,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.1' # release-vX.Y.Z branches are the branches from which the actual final release # is built. - '^release-v[0-9]+\.[0-9]+\.[0-9]+': @@ -338,4 +341,4 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.1' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index 0ea2df9c..4708bcc7 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,7 +5,7 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.1' 'stages': - 'Tests': diff --git a/client/src/__locales/be.json b/client/src/__locales/be.json index a5f5fab8..a90f2fb4 100644 --- a/client/src/__locales/be.json +++ b/client/src/__locales/be.json @@ -261,7 +261,7 @@ "query_log_configuration": "Налада часопіса", "query_log_disabled": "Часопіс запытаў выключаны, яго можна ўключыць у <0>наладах", "query_log_strict_search": "Ужывайце падвойныя двукоссі для строгага пошуку", - "query_log_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання запытаў? Пры скарачэнні інтэрвалу дадзеныя могуць быць згублены", + "query_log_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання запытаў? Пры памяншэнні інтэрвалу, некаторыя даныя могуць быць страчаны", "anonymize_client_ip": "Ананімізацыя IP-адрасы кліента", "anonymize_client_ip_desc": "Не захоўвайце поўныя IP-адрасы гэтых удзельнікаў у часопісах або статыстыцы", "dns_config": "Налады DNS-сервера", @@ -356,7 +356,7 @@ "install_devices_android_list_5": "Зараз можна змяніць палі «DNS 1» і «DNS 2». Увядзіце ў іх адрасы AdGuard Home.", "install_devices_ios_list_1": "Увайдзіце ў меню налад прылады.", "install_devices_ios_list_2": "Абярыце пункт «Wi-Fi» (для мабільных сетак ручная наладка DNS немагчыма).", - "install_devices_ios_list_3": "Націсніце на назву сетцы, да якой прылада падлучана ў дадзены момант.", + "install_devices_ios_list_3": "Націсніце на назву актыўнай у дадзены момант сеткі.", "install_devices_ios_list_4": "У поле «DNS» увядзіце ўвядзіце адрасы AdGuard Home.", "get_started": "Паехалі", "next": "Далей", @@ -517,10 +517,10 @@ "filter_updated": "Спіс паспяхова абноўлены", "statistics_configuration": "Канфігурацыя статыстыкі", "statistics_retention": "Захаванне статыстыкі", - "statistics_retention_desc": "Калі вы зменшыце значэнне інтэрвалу, некаторыя дадзеныя могуць быць згублены", + "statistics_retention_desc": "Калі вы паменшыце значэнне інтэрвалу, некаторыя даныя могуць быць страчаны", "statistics_clear": "Ачысціць статыстыку", "statistics_clear_confirm": "Вы ўпэўнены, што хочаце ачысціць статыстыку?", - "statistics_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання статыстыкі? Пры скарачэнні інтэрвалу дадзеныя могуць быць згублены", + "statistics_retention_confirm": "Вы ўпэўнены, што хочаце змяніць тэрмін захоўвання статыстыкі? Пры памяншэнні інтэрвалу, некаторыя даныя могуць быць страчаны", "statistics_cleared": "Статыстыка паспяхова вычышчана", "statistics_enable": "Уключыць статыстыку", "interval_hours": "{{count}} гадзіна", @@ -598,7 +598,7 @@ "show_blocked_responses": "Заблакавана", "show_whitelisted_responses": "Белы спіс", "show_processed_responses": "Апрацавана", - "blocked_safebrowsing": "Заблакавана згодна базе дадзеных Safe Browsing", + "blocked_safebrowsing": "Заблакіравана згодна з базай даных Safe Browsing", "blocked_adult_websites": "Заблакавана Бацькоўскім кантролем", "blocked_threats": "Заблакавана пагроз", "allowed": "Дазволены", @@ -639,7 +639,7 @@ "safe_browsing": "Бяспечны інтэрнэт", "served_from_cache": "{{value}} (атрымана з кэша)", "form_error_password_length": "Пароль павінен быць не менш за {{value}} сімвалаў", - "anonymizer_notification": "<0>Заўвага: Ананімізацыя IP уключана. Вы можаце адключыць яго ў <1>Агульных наладах .", + "anonymizer_notification": "<0>Заўвага: Ананімізацыя IP уключана. Вы можаце адключыць яе ў <1>Агульных наладах.", "confirm_dns_cache_clear": "Вы ўпэўнены, што хочаце ачысціць кэш DNS?", "cache_cleared": "Кэш DNS паспяхова ачышчаны", "clear_cache": "Ачысціць кэш" diff --git a/client/src/__locales/es.json b/client/src/__locales/es.json index ad45e6c3..f0238614 100644 --- a/client/src/__locales/es.json +++ b/client/src/__locales/es.json @@ -454,7 +454,7 @@ "updates_checked": "La nueva versión de AdGuard Home está disponible", "updates_version_equal": "AdGuard Home está actualizado", "check_updates_now": "Buscar actualizaciones ahora", - "version_request_error": "La búsqueda de actualizaciones falló. Por favor revisa tu conexión a Internet.", + "version_request_error": "Error buscar la actualización. Comprueba tu conexión a Internet.", "dns_privacy": "DNS cifrado", "setup_dns_privacy_1": "<0>DNS mediante TLS: Utiliza la cadena <1>{{address}}.", "setup_dns_privacy_2": "<0>DNS mediante HTTPS: Utiliza la cadena <1>{{address}}.", @@ -640,7 +640,7 @@ "served_from_cache": "{{value}} (servido desde la caché)", "form_error_password_length": "La contraseña debe tener al menos {{value}} caracteres", "anonymizer_notification": "<0>Nota: La anonimización de IP está habilitada. Puedes deshabilitarla en <1>Configuración general.", - "confirm_dns_cache_clear": "¿Estás seguro de que deseas borrar la caché de DNS?", - "cache_cleared": "Caché DNS borrado con éxito", + "confirm_dns_cache_clear": "¿Estás seguro de que deseas borrar la caché DNS?", + "cache_cleared": "Caché DNS borrado correctamente", "clear_cache": "Borrar caché" } diff --git a/client/src/__locales/fi.json b/client/src/__locales/fi.json index f222d365..c60508b9 100644 --- a/client/src/__locales/fi.json +++ b/client/src/__locales/fi.json @@ -24,7 +24,7 @@ "unavailable_dhcp": "DHCP ei ole käytettävissä", "unavailable_dhcp_desc": "AdGuard Home ei voi suorittaa DHCP-palvelinta käyttöjärjestelmässäsi", "dhcp_title": "DHCP-palvelin (kokeellinen!)", - "dhcp_description": "Jos reitittimessäsi ei ole DHCP-asetuksia, voit käyttää AdGuard Homen omaa sisäänrakennettua DHCP-palvelinta.", + "dhcp_description": "Jollei reitittimesi tarjoa DHCP-asetuksia, voit käyttää AdGuard Homen omaa sisäänrakennettua DHCP-palvelinta.", "dhcp_enable": "Ota DHCP-palvelin käyttöön", "dhcp_disable": "Poista DHCP-palvelin käytöstä", "dhcp_not_found": "On turvallista ottaa sisäänrakennettu DHCP-palvelin käyttöön, koska AdGuard Home ei havainnut verkossa muita aktiivisia DHCP-palvelimia. Suosittelemme, että varmistat tämän vielä itse, koska automaattinen tunnistus ei ole 100% varma.", diff --git a/client/src/__locales/zh-cn.json b/client/src/__locales/zh-cn.json index 3dc50aed..27d2fcbd 100644 --- a/client/src/__locales/zh-cn.json +++ b/client/src/__locales/zh-cn.json @@ -16,7 +16,7 @@ "resolve_clients_title": "启用客户端的 IP 地址的反向解析", "resolve_clients_desc": "通过发送 PTR 查询到对应的解析器 (本地客户端的私人 DNS 服务器,公共 IP 客户端的上游服务器) 将 IP 地址反向解析成其客户端主机名。", "use_private_ptr_resolvers_title": "使用私人反向 DNS 解析器", - "use_private_ptr_resolvers_desc": "使用这些上游服务器对本地服务的地址执行反向 DNS 查找。 如果禁用,则 AdGuard Home会以 NXDOMAIN 响应所有此类PTR请求,从 DHCP、/ etc / hosts 等获知的客户端除外。", + "use_private_ptr_resolvers_desc": "使用这些上游服务器对本地服务的地址执行反向 DNS 查找。 如果禁用,则 AdGuard Home 会以 NXDOMAIN 响应所有此类 PTR 请求,从 DHCP、/etc/hosts 等获知的客户端除外。", "check_dhcp_servers": "检查 DHCP 服务器", "save_config": "保存配置", "enabled_dhcp": "DHCP 服务器已启用", @@ -128,7 +128,7 @@ "number_of_dns_query_days": "过去 {{count}} 天内处理的 DNS 查询总数", "number_of_dns_query_days_plural": "在过去的 {{count}} 天内处理了多少个 DNS 查询", "number_of_dns_query_24_hours": "过去 24 小时内处理的 DNS 请求总数", - "number_of_dns_query_blocked_24_hours": "被广告过滤器和 Hosts 拦截清单阻止的 DNS 请求总数", + "number_of_dns_query_blocked_24_hours": "被广告过滤器和 Hosts 黑名单阻止的 DNS 请求总数", "number_of_dns_query_blocked_24_hours_by_sec": "被 AdGuard 安全浏览模块阻止的 DNS 请求总数", "number_of_dns_query_blocked_24_hours_adult": "被阻止的成人网站总数", "enforced_save_search": "强制安全搜索", @@ -146,10 +146,10 @@ "no_servers_specified": "未找到指定的服务器", "general_settings": "常规设置", "dns_settings": "DNS 设置", - "dns_blocklists": "DNS 拦截列表", - "dns_allowlists": "DNS 允许列表", + "dns_blocklists": "DNS 黑名单", + "dns_allowlists": "DNS 白名单", "dns_blocklists_desc": "AdGuard Home将阻止匹配DNS拦截清单的域名", - "dns_allowlists_desc": "来自DNS允许列表的域将被允许,即使它们位于任意阻止列表中也是如此", + "dns_allowlists_desc": "来自 DNS 白名单的域名将被允许,即使它们位于任意黑名单中也是如此。", "custom_filtering_rules": "自定义过滤规则", "encryption_settings": "加密设置", "dhcp_settings": "DHCP 设置", @@ -178,22 +178,22 @@ "delete_table_action": "删除", "elapsed": "耗时", "filters_and_hosts_hint": "AdGuard Home 可以解析基础的 adblock 规则和 Hosts 语法。", - "no_blocklist_added": "未添加阻止列表", - "no_whitelist_added": "未添加允许列表", - "add_blocklist": "添加阻止列表", - "add_allowlist": "添加允许列表", + "no_blocklist_added": "未添加黑名单", + "no_whitelist_added": "未添加白名单", + "add_blocklist": "添加黑名单", + "add_allowlist": "添加白名单", "cancel_btn": "取消", "enter_name_hint": "输入名称", "enter_url_or_path_hint": "请输入URL或列表的绝对路径", "check_updates_btn": "检查更新", "new_blocklist": "新封锁清单", - "new_allowlist": "新的允许清单", - "edit_blocklist": "编辑阻止列表", - "edit_allowlist": "编辑允许列表", - "choose_blocklist": "选择拦截列表", - "choose_allowlist": "选择允许列表", - "enter_valid_blocklist": "输入有效的阻止列表URL", - "enter_valid_allowlist": "输入有效的允许列表URL", + "new_allowlist": "新增白名单", + "edit_blocklist": "编辑黑名单", + "edit_allowlist": "编辑白名单", + "choose_blocklist": "选择黑名单", + "choose_allowlist": "选择白名单", + "enter_valid_blocklist": "输入有效的黑名单 URL", + "enter_valid_allowlist": "输入有效的白名单 URL", "form_error_url_format": "无效的 URL 格式", "form_error_url_or_path_format": "无效的 URL 或列表的绝对路径", "custom_filter_rules": "自定义过滤器规则", @@ -269,9 +269,9 @@ "dns_cache_config_desc": "您可以在此处配置 DNS 缓存", "blocking_mode": "拦截模式", "default": "默认", - "nxdomain": "无效域名", + "nxdomain": "NXDOMAIN", "refused": "REFUSED", - "null_ip": "无效 IP", + "null_ip": "空 IP", "custom_ip": "自定义 IP", "blocking_ipv4": "拦截 IPv4", "blocking_ipv6": "拦截 IPv6", @@ -296,7 +296,7 @@ "blocking_mode_default": "默认:被 Adblock 规则拦截时反应为零 IP 地址(A记录:0.0.0.0;AAAA记录:::);被/etc/hosts 规则拦截时反应为规则中指定 IP 地址", "blocking_mode_refused": "REFUSED:以 REFUSED 码响应请求", "blocking_mode_nxdomain": "NXDOMAIN:以NXDOMAIN码响应", - "blocking_mode_null_ip": "空IP:以零IP地址响应(A记录 0.0.0.0;AAAA记录 ::)", + "blocking_mode_null_ip": "空 IP:以零 IP 地址响应(A 记录 0.0.0.0;AAAA 记录 ::)", "blocking_mode_custom_ip": "自定IP:以手动设置的IP地址响应", "theme_auto": "自动", "theme_light": "浅色主题", @@ -605,7 +605,7 @@ "filtered": "已过滤", "rewritten": "重写项", "safe_search": "安全搜索", - "blocklist": "拦截列表", + "blocklist": "黑名单", "milliseconds_abbreviation": "毫秒", "cache_size": "缓存大小", "cache_size_desc": "DNS 缓存大小(单位:字节)。要关闭缓存,请留空。", @@ -626,7 +626,7 @@ "filter_category_general_desc": "在大多数设备上阻止跟踪和广告的列表", "filter_category_security_desc": "专用于拦截恶意软件、钓鱼或欺诈域名的列表", "filter_category_regional_desc": "专注于区域广告和跟踪服务器的列表", - "filter_category_other_desc": "其他阻止列表", + "filter_category_other_desc": "其他黑名单", "setup_config_to_enable_dhcp_server": "设置配置以启用 DHCP 服务器", "original_response": "原始响应", "click_to_view_queries": "点击查看查询", diff --git a/client/src/helpers/constants.js b/client/src/helpers/constants.js index 4f6803cb..61160d58 100644 --- a/client/src/helpers/constants.js +++ b/client/src/helpers/constants.js @@ -53,7 +53,7 @@ export const STATUS_COLORS = { export const REPOSITORY = { URL: 'https://github.com/AdguardTeam/AdGuardHome', TRACKERS_DB: - 'https://github.com/AdguardTeam/AdGuardHome/tree/master/client/src/helpers/trackers/adguard.json', + 'https://github.com/AdguardTeam/AdGuardHome/tree/master/client/src/helpers/trackers/trackers.json', ISSUES: 'https://github.com/AdguardTeam/AdGuardHome/issues/new/choose', }; diff --git a/client/src/helpers/filters/filters.js b/client/src/helpers/filters/filters.js index 00a0f336..6f4af9e5 100644 --- a/client/src/helpers/filters/filters.js +++ b/client/src/helpers/filters/filters.js @@ -160,12 +160,6 @@ export default { "homepage": "https://github.com/DandelionSprout/adfilt", "source": "https://adguardteam.github.io/HostlistsRegistry/assets/filter_6.txt" }, - "energized_spark": { - "name": "Energized Spark", - "categoryId": "general", - "homepage": "https://energized.pro/", - "source": "https://adguardteam.github.io/HostlistsRegistry/assets/filter_28.txt" - }, "hagezi_personal": { "name": "HaGeZi Personal Black \u0026 White", "categoryId": "general", diff --git a/client/src/helpers/trackers/trackers.js b/client/src/helpers/trackers/trackers.js index 5327d18e..79b202cb 100644 --- a/client/src/helpers/trackers/trackers.js +++ b/client/src/helpers/trackers/trackers.js @@ -1,6 +1,5 @@ -import whotracksmeDb from './whotracksme.json'; import whotracksmeWebsites from './whotracksme_web.json'; -import adguardDb from './adguard.json'; +import trackersDb from './trackers.json'; import { REPOSITORY } from '../constants'; /** @@ -39,6 +38,7 @@ const getWhotracksmeUrl = (trackerId) => { /** * Gets the source metadata for the specified tracker + * * @param {TrackerData} trackerData tracker data * @returns {source} source metadata or null if no matching tracker found */ @@ -64,14 +64,26 @@ export const getSourceData = (trackerData) => { }; /** - * Gets tracker data in the specified database + * Converts the JSON string source into numeric source for AdGuard Home + * + * @param {TrackerData} trackerData tracker data + * @returns {number} source number + */ +const convertSource = (sourceStr) => { + if (!sourceStr || sourceStr !== 'AdGuard') { + return sources.WHOTRACKSME; + } + + return sources.ADGUARD; +}; + +/** + * Gets tracker data from the trackers database * * @param {String} domainName domain name to check - * @param {*} trackersDb trackers database - * @param {number} source source ID * @returns {TrackerData} tracker data or null if no matching tracker found */ -const getTrackerDataFromDb = (domainName, trackersDb, source) => { +export const getTrackerData = (domainName) => { if (!domainName) { return null; } @@ -88,7 +100,7 @@ const getTrackerDataFromDb = (domainName, trackersDb, source) => { if (trackerId) { const trackerData = trackersDb.trackers[trackerId]; const categoryName = trackersDb.categories[trackerData.categoryId]; - trackerData.source = source; + const source = convertSource(trackerData.source); const sourceData = getSourceData(trackerData); return { @@ -105,22 +117,3 @@ const getTrackerDataFromDb = (domainName, trackersDb, source) => { // No tracker found for the specified domain return null; }; - -/** - * Gets tracker data from the trackers database - * - * @param {String} domainName domain name to check - * @returns {TrackerData} tracker data or null if no matching tracker found - */ -export const getTrackerData = (domainName) => { - if (!domainName) { - return null; - } - - let data = getTrackerDataFromDb(domainName, adguardDb, sources.ADGUARD); - if (!data) { - data = getTrackerDataFromDb(domainName, whotracksmeDb, sources.WHOTRACKSME); - } - - return data; -}; diff --git a/client/src/helpers/trackers/trackers.json b/client/src/helpers/trackers/trackers.json new file mode 100644 index 00000000..485b759e --- /dev/null +++ b/client/src/helpers/trackers/trackers.json @@ -0,0 +1,23750 @@ +{ + "timeUpdated": "2023-02-09T12:31:34.007Z", + "categories": { + "0": "audio_video_player", + "1": "comments", + "2": "customer_interaction", + "3": "pornvertising", + "4": "advertising", + "5": "essential", + "6": "site_analytics", + "7": "social_media", + "8": "misc", + "9": "cdn", + "10": "hosting", + "11": "unknown", + "12": "extensions", + "13": "email", + "14": "consent", + "15": "telemetry", + "101": "mobile_analytics" + }, + "trackers": { + "163": { + "name": "163", + "categoryId": 4, + "url": "http://www.163.com/", + "companyId": "163" + }, + "1000mercis": { + "name": "1000mercis", + "categoryId": 6, + "url": "http://www.1000mercis.com/", + "companyId": "1000mercis" + }, + "161media": { + "name": "Platform161", + "categoryId": 4, + "url": "https://platform161.com/", + "companyId": "platform161" + }, + "1822direkt.de": { + "name": "1822direkt.de", + "categoryId": 8, + "url": "https://www.1822direkt.de/", + "companyId": null + }, + "1dmp.io": { + "name": "1DMP", + "categoryId": 4, + "url": "https://1dmp.io/", + "companyId": "1dmp" + }, + "1plusx": { + "name": "1plusX", + "categoryId": 6, + "url": "https://www.1plusx.com/", + "companyId": "1plusx" + }, + "1sponsor": { + "name": "1sponsor", + "categoryId": 4, + "url": "http://fr.1sponsor.com/", + "companyId": "1sponsor" + }, + "1tag": { + "name": "1tag", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "1und1": { + "name": "1&1 Internet", + "categoryId": 8, + "url": null, + "companyId": null + }, + "24-ads.com": { + "name": "24-ADS GmbH", + "categoryId": 4, + "url": "http://www.24-ads.com/", + "companyId": null + }, + "24_7": { + "name": "[24]7", + "categoryId": 2, + "url": "http://www.247-inc.com/", + "companyId": "24_7" + }, + "24log": { + "name": "24log", + "categoryId": 6, + "url": "http://24log.ru/", + "companyId": "24log" + }, + "24smi": { + "name": "24СМИ", + "categoryId": 8, + "url": "https://24smi.org/", + "companyId": null + }, + "2leep": { + "name": "2leep", + "categoryId": 4, + "url": "http://2leep.com/", + "companyId": "2leep" + }, + "33across": { + "name": "33Across", + "categoryId": 4, + "url": "http://33across.com/", + "companyId": "33across" + }, + "3dstats": { + "name": "3DStats", + "categoryId": 6, + "url": "http://www.3dstats.com/", + "companyId": "3dstats" + }, + "4chan": { + "name": "4Chan", + "categoryId": 8, + "url": "https://www.4chan.org/", + "companyId": null + }, + "4finance_com": { + "name": "4finance.com", + "categoryId": 2, + "url": "http://4finance.com/", + "companyId": null + }, + "4w_marketplace": { + "name": "4w Marketplace", + "categoryId": 4, + "url": "http://www.4wmarketplace.com/", + "companyId": "4w_marketplace" + }, + "500friends": { + "name": "500friends", + "categoryId": 2, + "url": "http://500friends.com/", + "companyId": "500friends" + }, + "51.la": { + "name": "51.La", + "categoryId": 6, + "url": "http://www.51.la/", + "companyId": "51.la" + }, + "5min_media": { + "name": "5min Media", + "categoryId": 0, + "url": "http://www.5min.com/", + "companyId": "verizon" + }, + "6sense": { + "name": "6Sense", + "categoryId": 6, + "url": "http://home.grepdata.com", + "companyId": "6sense" + }, + "77tracking": { + "name": "77Tracking", + "categoryId": 6, + "url": "http://www.77agency.com/", + "companyId": "77agency" + }, + "7tv.de": { + "name": "7tv.de", + "categoryId": 0, + "url": "https://www.7tv.de/", + "companyId": null + }, + "888media": { + "name": "888media", + "categoryId": 4, + "url": "http://888media.net/", + "companyId": "888_media" + }, + "8digits": { + "name": "8digits", + "categoryId": 6, + "url": "http://8digits.com/", + "companyId": "8digits" + }, + "94j7afz2nr.xyz": { + "name": "94j7afz2nr.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "99stats": { + "name": "99stats", + "categoryId": 6, + "url": "http://www.99stats.com/", + "companyId": "99stats" + }, + "a3cloud_net": { + "name": "a3cloud.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "a8": { + "name": "A8", + "categoryId": 4, + "url": "http://www.a8.net/", + "companyId": "a8" + }, + "aaxads.com": { + "name": "Acceptable Ads Exchange", + "categoryId": 4, + "url": "https://aax.media/", + "companyId": null + }, + "ab_tasty": { + "name": "AB Tasty", + "categoryId": 6, + "url": "https://en.abtasty.com", + "companyId": "ab_tasty" + }, + "ablida": { + "name": "ablida", + "categoryId": 4, + "url": "https://www.ablida.de/", + "companyId": null + }, + "accelia": { + "name": "Accelia", + "categoryId": 4, + "url": "http://www.durasite.net/", + "companyId": "accelia" + }, + "accengage": { + "name": "Accengage", + "categoryId": 4, + "url": "https://www.accengage.com/", + "companyId": "accengage" + }, + "accessanalyzer": { + "name": "AccessAnalyzer", + "categoryId": 6, + "url": "http://ax.xrea.com/", + "companyId": "accessanalyzer" + }, + "accesstrade": { + "name": "AccessTrade", + "categoryId": 4, + "url": "http://accesstrade.net/", + "companyId": "accesstrade" + }, + "accord_group": { + "name": "Accord Group", + "categoryId": 4, + "url": "http://www.accordgroup.co.uk/", + "companyId": "accord_group" + }, + "accordant_media": { + "name": "Accordant Media", + "categoryId": 4, + "url": "http://www.accordantmedia.com/", + "companyId": "accordant_media" + }, + "accuen_media": { + "name": "Accuen Media", + "categoryId": 4, + "url": "http://www.accuenmedia.com/", + "companyId": "accuen_media" + }, + "acestream.net": { + "name": "ActStream", + "categoryId": 12, + "url": "http://www.acestream.org/", + "companyId": null + }, + "acint.net": { + "name": "Artificial Computation Intelligence", + "categoryId": 6, + "url": "https://www.acint.net/", + "companyId": "acint" + }, + "acloudimages": { + "name": "Acloudimages", + "categoryId": 4, + "url": "http://adsterra.com", + "companyId": "adsterra" + }, + "acpm.fr": { + "name": "ACPM", + "categoryId": 6, + "url": "http://www.acpm.fr/", + "companyId": null + }, + "acquia.com": { + "name": "Acquia", + "categoryId": 6, + "url": "https://www.acquia.com/", + "companyId": null + }, + "acrweb": { + "name": "ACRWEB", + "categoryId": 7, + "url": "http://www.ziyu.net/", + "companyId": "acrweb" + }, + "actionpay": { + "name": "actionpay", + "categoryId": 4, + "url": "http://actionpay.ru/", + "companyId": "actionpay" + }, + "active_agent": { + "name": "Active Agent", + "categoryId": 4, + "url": "http://www.active-agent.com/", + "companyId": "active_agent" + }, + "active_campaign": { + "name": "Active Campaign", + "categoryId": 6, + "url": "https://www.activecampaign.com", + "companyId": "active_campaign" + }, + "active_performance": { + "name": "Active Performance", + "categoryId": 4, + "url": "http://www.active-performance.de/", + "companyId": "active_performance" + }, + "activeconversion": { + "name": "ActiveConversion", + "categoryId": 4, + "url": "http://www.activeconversion.com/", + "companyId": "activeconversion" + }, + "activecore": { + "name": "activecore", + "categoryId": 6, + "url": "http://activecore.jp/", + "companyId": "activecore" + }, + "activemeter": { + "name": "ActiveMeter", + "categoryId": 4, + "url": "http://www.activemeter.com/", + "companyId": "activeconversion" + }, + "activengage": { + "name": "ActivEngage", + "categoryId": 2, + "url": "http://www.activengage.com", + "companyId": "activengage" + }, + "acton": { + "name": "Act-On Beacon", + "categoryId": 4, + "url": "http://www.actonsoftware.com/", + "companyId": "act-on" + }, + "acuity_ads": { + "name": "Acuity Ads", + "categoryId": 4, + "url": "http://www.acuityads.com/", + "companyId": "acuity_ads" + }, + "acxiom": { + "name": "Acxiom", + "categoryId": 4, + "url": "http://www.acxiom.com", + "companyId": "acxiom" + }, + "ad-blocker.org": { + "name": "ad-blocker.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-center": { + "name": "Ad-Center", + "categoryId": 6, + "url": "http://www.ad-center.com", + "companyId": "ad-center" + }, + "ad-delivery.net": { + "name": "ad-delivery.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-sys": { + "name": "Ad-Sys", + "categoryId": 4, + "url": "http://www.ad-sys.com/", + "companyId": "ad-sys" + }, + "ad.agio": { + "name": "Ad.agio", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "ad2click": { + "name": "Ad2Click", + "categoryId": 4, + "url": "http://www.ad2click.com/", + "companyId": "ad2click_media" + }, + "ad2games": { + "name": "ad2games", + "categoryId": 4, + "url": "http://web.ad2games.com/", + "companyId": "ad2games" + }, + "ad360": { + "name": "Ad360", + "categoryId": 4, + "url": "http://ad360.vn", + "companyId": "ad360" + }, + "ad4game": { + "name": "ad4game", + "categoryId": 4, + "url": "http://www.ad4game.com/", + "companyId": "ad4game" + }, + "ad4mat": { + "name": "ad4mat", + "categoryId": 4, + "url": "http://ad4mat.info", + "companyId": "ad4mat" + }, + "ad6media": { + "name": "ad6media", + "categoryId": 4, + "url": "https://www.ad6media.fr/", + "companyId": "ad6media" + }, + "ad_decisive": { + "name": "Ad Decisive", + "categoryId": 4, + "url": "http://www.lagardere-global-advertising.com/", + "companyId": "lagardere_advertising" + }, + "ad_dynamo": { + "name": "Ad Dynamo", + "categoryId": 4, + "url": "http://www.addynamo.com/", + "companyId": "ad_dynamo" + }, + "ad_ebis": { + "name": "AD EBiS", + "categoryId": 4, + "url": "http://www.ebis.ne.jp/en/", + "companyId": "ad_ebis" + }, + "ad_lightning": { + "name": "Ad Lightning", + "categoryId": 4, + "url": "https://www.adlightning.com/", + "companyId": "ad_lightning" + }, + "ad_magnet": { + "name": "Ad Magnet", + "categoryId": 4, + "url": "http://www.admagnet.com/", + "companyId": "ad_magnet" + }, + "ad_spirit": { + "name": "Ad Spirit", + "categoryId": 4, + "url": "http://www.adspirit.de", + "companyId": "adspirit" + }, + "adac_de": { + "name": "adac.de", + "categoryId": 8, + "url": "http://adac.de/", + "companyId": null + }, + "adacado": { + "name": "Adacado", + "categoryId": 4, + "url": "http://www.adacado.com/", + "companyId": "adacado" + }, + "adadyn": { + "name": "Adadyn", + "categoryId": 4, + "url": "http://ozonemedia.com/index.html", + "companyId": "adadyn" + }, + "adality_gmbh": { + "name": "adality GmbH", + "categoryId": 4, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "adalliance.io": { + "name": "Ad Alliance", + "categoryId": 4, + "url": "https://www.ad-alliance.de/", + "companyId": null + }, + "adalyser.com": { + "name": "Adalyser", + "categoryId": 6, + "url": "https://www.adalyser.com/", + "companyId": "onesoon" + }, + "adaos": { + "name": "ADAOS", + "categoryId": 4, + "url": "http://www.24-interactive.com", + "companyId": "24_interactive" + }, + "adap.tv": { + "name": "Adap.tv", + "categoryId": 4, + "url": "http://www.adap.tv/", + "companyId": "verizon" + }, + "adaptiveblue_smartlinks": { + "name": "AdaptiveBlue SmartLinks", + "categoryId": 2, + "url": "http://www.adaptiveblue.com/smartlinks.html", + "companyId": "telfie" + }, + "adara_analytics": { + "name": "ADARA Analytics", + "categoryId": 4, + "url": "http://www.adaramedia.com/", + "companyId": "adara_analytics" + }, + "adasia_holdings": { + "name": "AdAsia Holdings", + "categoryId": 4, + "url": "https://adasiaholdings.com/", + "companyId": "adasia_holdings" + }, + "adbetclickin.pink": { + "name": "adbetnet", + "categoryId": 4, + "url": "http://adbetnet.com/", + "companyId": null + }, + "adbetnet.com": { + "name": "adbetnet", + "categoryId": 4, + "url": "https://adbetnet.com/", + "companyId": null + }, + "adblade.com": { + "name": "Adblade", + "categoryId": 4, + "url": "https://adblade.com/", + "companyId": "adblade" + }, + "adbooth": { + "name": "Adbooth", + "categoryId": 4, + "url": "http://www.adbooth.com/", + "companyId": "adbooth_media_group" + }, + "adbox": { + "name": "AdBox", + "categoryId": 4, + "url": "http://www.adbox.lv/", + "companyId": "adbox" + }, + "adbrain": { + "name": "Adbrain", + "categoryId": 6, + "url": "https://www.adbrain.com/", + "companyId": "adbrain" + }, + "adbrite": { + "name": "AdBrite", + "categoryId": 4, + "url": "http://www.adbrite.com/", + "companyId": "centro" + }, + "adbull": { + "name": "AdBull", + "categoryId": 4, + "url": "http://www.adbull.com/", + "companyId": "adbull" + }, + "adbutler": { + "name": "AdButler", + "categoryId": 4, + "url": "https://www.adbutler.com/d", + "companyId": "sparklit_networks" + }, + "adc_media": { + "name": "ad:C media", + "categoryId": 4, + "url": "http://www.adcmedia.de/en/", + "companyId": "ad:c_media" + }, + "adcash": { + "name": "Adcash", + "categoryId": 4, + "url": "http://www.adcash.com", + "companyId": "adcash" + }, + "adchakra": { + "name": "AdChakra", + "categoryId": 6, + "url": "http://adchakra.com/", + "companyId": "adchakra" + }, + "adchina": { + "name": "AdChina", + "categoryId": 4, + "url": "http://www.adchina.com/", + "companyId": "alibaba" + }, + "adcito": { + "name": "Adcito", + "categoryId": 4, + "url": "http://adcito.com/", + "companyId": "adcito" + }, + "adclear": { + "name": "AdClear", + "categoryId": 4, + "url": "http://www.adclear.de/en/home.html", + "companyId": "adclear" + }, + "adclerks": { + "name": "Adclerks", + "categoryId": 4, + "url": "https://adclerks.com/", + "companyId": "adclerks" + }, + "adclickmedia": { + "name": "AdClickMedia", + "categoryId": 4, + "url": "http://www.adclickmedia.com/", + "companyId": "adclickmedia" + }, + "adclickzone": { + "name": "AdClickZone", + "categoryId": 4, + "url": "http://www.adclickzone.com/", + "companyId": "adclickzone" + }, + "adcloud": { + "name": "adcloud", + "categoryId": 4, + "url": "https://ad-cloud.jp", + "companyId": "adcloud" + }, + "adcolony": { + "name": "AdColony", + "categoryId": 4, + "url": "thttp://www.admarvel.com/", + "companyId": "adcolony" + }, + "adconion": { + "name": "Adconion", + "categoryId": 4, + "url": "http://www.adconion.com/", + "companyId": "singtel" + }, + "adcrowd": { + "name": "Adcrowd", + "categoryId": 4, + "url": "https://www.adcrowd.com", + "companyId": "adcrowd" + }, + "adcurve": { + "name": "AdCurve", + "categoryId": 4, + "url": "http://www.shop2market.com/", + "companyId": "adcurve" + }, + "add_to_calendar": { + "name": "Add To Calendar", + "categoryId": 2, + "url": "http://addtocalendar.com/", + "companyId": "addtocalendar" + }, + "addaptive": { + "name": "Addaptive", + "categoryId": 4, + "url": "http://www.datapointmedia.com/", + "companyId": "addaptive" + }, + "addefend": { + "name": "AdDefend", + "categoryId": 4, + "url": "https://www.addefend.com/", + "companyId": null + }, + "addfreestats": { + "name": "AddFreeStats", + "categoryId": 6, + "url": "http://www.addfreestats.com/", + "companyId": "3dstats" + }, + "addinto": { + "name": "AddInto", + "categoryId": 2, + "url": "http://www.addinto.com/", + "companyId": "addinto" + }, + "addshoppers": { + "name": "AddShoppers", + "categoryId": 7, + "url": "http://www.addshoppers.com/", + "companyId": "addshoppers" + }, + "addthis": { + "name": "AddThis", + "categoryId": 4, + "url": "http://www.addthis.com/", + "companyId": "oracle" + }, + "addvalue": { + "name": "Addvalue", + "categoryId": 6, + "url": "http://www.addvalue.de/en/", + "companyId": "addvalue.de" + }, + "addyon": { + "name": "AddyON", + "categoryId": 4, + "url": "http://www.addyon.com/homepage.php", + "companyId": "addyon" + }, + "adeasy": { + "name": "AdEasy", + "categoryId": 4, + "url": "http://www.adeasy.ru/", + "companyId": "adeasy" + }, + "adelphic": { + "name": "Adelphic", + "categoryId": 6, + "url": "http://www.adelphic.com/", + "companyId": "adelphic" + }, + "adengage": { + "name": "AdEngage", + "categoryId": 4, + "url": "http://www.adengage.com", + "companyId": "synacor" + }, + "adespresso": { + "name": "AdEspresso", + "categoryId": 4, + "url": "http://adespresso.com", + "companyId": "adespresso" + }, + "adexcite": { + "name": "AdExcite", + "categoryId": 4, + "url": "http://adexcite.com", + "companyId": "adexcite" + }, + "adextent": { + "name": "AdExtent", + "categoryId": 4, + "url": "http://www.adextent.com/", + "companyId": "adextent" + }, + "adf.ly": { + "name": "AdF.ly", + "categoryId": 4, + "url": "http://adf.ly/", + "companyId": "adf.ly" + }, + "adfalcon": { + "name": "AdFalcon", + "categoryId": 4, + "url": "http://www.adfalcon.com/", + "companyId": "adfalcon" + }, + "adfocus": { + "name": "AdFocus", + "categoryId": 4, + "url": "http://adfoc.us/", + "companyId": "adfoc.us" + }, + "adforgames": { + "name": "AdForGames", + "categoryId": 4, + "url": "http://www.adforgames.com/", + "companyId": "adforgames" + }, + "adform": { + "name": "Adform", + "categoryId": 4, + "url": "http://www.adform.com", + "companyId": "adform" + }, + "adfox": { + "name": "AdFox", + "categoryId": 4, + "url": "http://adfox.ru", + "companyId": "yandex" + }, + "adfreestyle": { + "name": "adFreestyle", + "categoryId": 4, + "url": "http://www.adfreestyle.pl/", + "companyId": "adfreestyle" + }, + "adfront": { + "name": "AdFront", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "adfrontiers": { + "name": "AdFrontiers", + "categoryId": 4, + "url": "http://www.adfrontiers.com/", + "companyId": "adfrontiers" + }, + "adgear": { + "name": "AdGear", + "categoryId": 4, + "url": "http://adgear.com/", + "companyId": "samsung" + }, + "adgebra": { + "name": "Adgebra", + "categoryId": 4, + "url": "https://adgebra.in/", + "companyId": "adgebra" + }, + "adgenie": { + "name": "adGENIE", + "categoryId": 4, + "url": "http://www.adgenie.co.uk/", + "companyId": "ve" + }, + "adgile": { + "name": "Adgile", + "categoryId": 4, + "url": "http://www.adgile.com/", + "companyId": "adgile_media" + }, + "adglare.net": { + "name": "Adglare", + "categoryId": 4, + "url": "https://www.adglare.com/", + "companyId": null + }, + "adglue": { + "name": "Adglue", + "categoryId": 4, + "url": "http://admans.de/de.html", + "companyId": "admans" + }, + "adgoal": { + "name": "adgoal", + "categoryId": 4, + "url": "http://www.adgoal.de/", + "companyId": "adgoal" + }, + "adgorithms": { + "name": "Adgorithms", + "categoryId": 4, + "url": "http://www.adgorithms.com/", + "companyId": "albert" + }, + "adgoto": { + "name": "ADGoto", + "categoryId": 4, + "url": "http://adgoto.com/", + "companyId": "adgoto" + }, + "adguard": { + "name": "AdGuard", + "categoryId": 8, + "url": "https://adguard.com/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adhands": { + "name": "AdHands", + "categoryId": 4, + "url": "http://promo.adhands.ru/", + "companyId": "adhands" + }, + "adhese": { + "name": "Adhese", + "categoryId": 4, + "url": "http://adhese.com", + "companyId": "adhese" + }, + "adhitz": { + "name": "AdHitz", + "categoryId": 4, + "url": "http://www.adhitz.com/", + "companyId": "adhitz" + }, + "adhood": { + "name": "adhood", + "categoryId": 4, + "url": "http://www.adhood.com/", + "companyId": "adhood" + }, + "adify": { + "name": "Adify", + "categoryId": 4, + "url": "http://www.adify.com/", + "companyId": "cox_enterpries" + }, + "adikteev": { + "name": "Adikteev", + "categoryId": 4, + "url": "http://www.adikteev.com/", + "companyId": "adikteev" + }, + "adimpact": { + "name": "Adimpact", + "categoryId": 4, + "url": "http://www.adimpact.com/", + "companyId": "adimpact" + }, + "adinch": { + "name": "Adinch", + "categoryId": 4, + "url": "http://adinch.com/", + "companyId": "adinch" + }, + "adition": { + "name": "Adition", + "categoryId": 4, + "url": "http://en.adition.com/", + "companyId": "prosieben_sat1" + }, + "adjal": { + "name": "Adjal", + "categoryId": 4, + "url": "http://adjal.com/", + "companyId": "marketing_adjal" + }, + "adjs": { + "name": "ADJS", + "categoryId": 4, + "url": "https://github.com/widgital/adjs", + "companyId": "adjs" + }, + "adjug": { + "name": "AdJug", + "categoryId": 4, + "url": "http://www.adjug.com/", + "companyId": "adjug" + }, + "adjust": { + "name": "Adjust", + "categoryId": 101, + "url": "https://www.adjust.com/", + "companyId": "adjust", + "source": "AdGuard" + }, + "adk2": { + "name": "adk2", + "categoryId": 4, + "url": "http://www.adk2.com/", + "companyId": "adk2_plymedia" + }, + "adklip": { + "name": "adklip", + "categoryId": 4, + "url": "http://adklip.com", + "companyId": "adklip" + }, + "adknowledge": { + "name": "Adknowledge", + "categoryId": 4, + "url": "http://www.adknowledge.com/", + "companyId": "adknowledge" + }, + "adkontekst": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://www.en.adkontekst.pl/", + "companyId": "adkontekst" + }, + "adkontekst.pl": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://netsprint.eu/", + "companyId": "netsprint" + }, + "adlabs": { + "name": "AdLabs", + "categoryId": 4, + "url": "https://www.adlabs.ru/", + "companyId": "adlabs" + }, + "adlantic": { + "name": "AdLantic", + "categoryId": 4, + "url": "http://www.adlantic.nl/", + "companyId": "adlantic_online_advertising" + }, + "adlantis": { + "name": "AdLantis", + "categoryId": 4, + "url": "http://www.adlantis.jp/", + "companyId": "adlantis" + }, + "adless": { + "name": "Adless", + "categoryId": 4, + "url": "https://www.adless.io/", + "companyId": "adless" + }, + "adlive_header_bidding": { + "name": "Adlive Header Bidding", + "categoryId": 4, + "url": "http://adlive.io/", + "companyId": "adlive" + }, + "adloox": { + "name": "Adloox", + "categoryId": 4, + "url": "http://www.adloox.com", + "companyId": "adloox" + }, + "admachine": { + "name": "AdMachine", + "categoryId": 4, + "url": "https://admachine.co/", + "companyId": null + }, + "adman": { + "name": "ADMAN", + "categoryId": 4, + "url": "http://www.adman.gr/", + "companyId": "adman" + }, + "adman_media": { + "name": "ADman Media", + "categoryId": 4, + "url": "http://www.admanmedia.com/", + "companyId": "ad_man_media" + }, + "admantx.com": { + "name": "ADmantX", + "categoryId": 4, + "url": "http://www.admantx.com/", + "companyId": "expert_system_spa" + }, + "admaster": { + "name": "AdMaster", + "categoryId": 4, + "url": "http://admaster.net", + "companyId": "admaster" + }, + "admaster.cn": { + "name": "AdMaster.cn", + "categoryId": 4, + "url": "http://www.admaster.com.cn/", + "companyId": "admaster" + }, + "admatic": { + "name": "Admatic", + "categoryId": 4, + "url": "http://www.admatic.com.tr/#1page", + "companyId": "admatic" + }, + "admatrix": { + "name": "Admatrix", + "categoryId": 4, + "url": "https://admatrix.jp/login#block01", + "companyId": "admatrix" + }, + "admax": { + "name": "Admax", + "categoryId": 4, + "url": "http://www.admaxnetwork.com/index.php", + "companyId": "komli" + }, + "admaxim": { + "name": "AdMaxim", + "categoryId": 4, + "url": "http://admaxim.com/", + "companyId": "admaxim" + }, + "admaya": { + "name": "Admaya", + "categoryId": 4, + "url": "http://www.admaya.in/", + "companyId": "admaya" + }, + "admedia": { + "name": "AdMedia", + "categoryId": 4, + "url": "http://admedia.com/", + "companyId": "admedia" + }, + "admedo_com": { + "name": "Admedo", + "categoryId": 4, + "url": "http://admedo.com/", + "companyId": "admedo" + }, + "admeira.ch": { + "name": "AdMeira", + "categoryId": 4, + "url": "http://admeira.ch/", + "companyId": "admeira" + }, + "admeld": { + "name": "AdMeld", + "categoryId": 4, + "url": "http://www.admeld.com", + "companyId": "google" + }, + "admeo": { + "name": "Admeo", + "categoryId": 4, + "url": "http://admeo.ru/", + "companyId": "admeo.ru" + }, + "admeta": { + "name": "Admeta", + "categoryId": 4, + "url": "http://www.admeta.com/", + "companyId": "admeta" + }, + "admicro": { + "name": "AdMicro", + "categoryId": 4, + "url": "http://www.admicro.vn/", + "companyId": "admicro" + }, + "admitad.com": { + "name": "Admitad", + "categoryId": 4, + "url": "https://www.admitad.com/en/#", + "companyId": "admitad" + }, + "admixer.net": { + "name": "Admixer", + "categoryId": 4, + "url": "https://admixer.net/", + "companyId": "admixer" + }, + "admized": { + "name": "ADMIZED", + "categoryId": 8, + "url": null, + "companyId": null + }, + "admo.tv": { + "name": "Admo.tv", + "categoryId": 4, + "url": "https://admo.tv/", + "companyId": "admo.tv" + }, + "admob": { + "name": "AdMob", + "categoryId": 4, + "url": "http://www.admob.com/", + "companyId": "google" + }, + "admost": { + "name": "adMOST", + "categoryId": 4, + "url": "http://www.admost.com/", + "companyId": "admost" + }, + "admotion": { + "name": "Admotion", + "categoryId": 4, + "url": "http://www.admotionus.com/", + "companyId": "admotion" + }, + "admulti": { + "name": "ADmulti", + "categoryId": 4, + "url": "http://admulti.com", + "companyId": "admulti" + }, + "adnegah": { + "name": "Adnegah", + "categoryId": 4, + "url": "https://adnegah.net/", + "companyId": "adnegah" + }, + "adnet": { + "name": "Adnet", + "categoryId": 4, + "url": "http://www.adnet.vn/", + "companyId": "adnet" + }, + "adnet.de": { + "name": "adNET.de", + "categoryId": 4, + "url": "http://www.adnet.de", + "companyId": "adnet.de" + }, + "adnet_media": { + "name": "Adnet Media", + "categoryId": 4, + "url": "http://www.adnetmedia.lt/", + "companyId": "adnet_media" + }, + "adnetwork.net": { + "name": "AdNetwork.net", + "categoryId": 4, + "url": "http://www.adnetwork.net/", + "companyId": "adnetwork.net" + }, + "adnetworkperformance.com": { + "name": "adnetworkperformance.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adnexio": { + "name": "AdNexio", + "categoryId": 4, + "url": "http://adnexio.com/", + "companyId": "adnexio" + }, + "adnium.com": { + "name": "Adnium", + "categoryId": 4, + "url": "https://adnium.com/", + "companyId": null + }, + "adnologies": { + "name": "Adnologies", + "categoryId": 4, + "url": "http://www.adnologies.com/", + "companyId": "adnologies_gmbh" + }, + "adnow": { + "name": "Adnow", + "categoryId": 4, + "url": "http://adnow.com/", + "companyId": "adnow" + }, + "adnymics": { + "name": "Adnymics", + "categoryId": 4, + "url": "http://adnymics.com/en/", + "companyId": "adnymics" + }, + "adobe_audience_manager": { + "name": "Adobe Audience Manager", + "categoryId": 4, + "url": "http://www.demdex.com/", + "companyId": "adobe" + }, + "adobe_dynamic_media": { + "name": "Adobe Dynamic Media", + "categoryId": 4, + "url": "http://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_dynamic_tag_management": { + "name": "Adobe Dynamic Tag Management", + "categoryId": 5, + "url": "https://dtm.adobe.com/sign_in", + "companyId": "adobe" + }, + "adobe_experience_cloud": { + "name": "Adobe Experience Cloud", + "categoryId": 6, + "url": "https://www.adobe.com/experience-cloud.html", + "companyId": "adobe" + }, + "adobe_login": { + "name": "Adobe Login", + "categoryId": 2, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_tagmanager": { + "name": "Adobe TagManager", + "categoryId": 4, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_test_and_target": { + "name": "Adobe Target", + "categoryId": 4, + "url": "https://www.adobe.com/marketing/target.html", + "companyId": "adobe" + }, + "adobe_typekit": { + "name": "Adobe Typekit", + "categoryId": 5, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adocean": { + "name": "AdOcean", + "categoryId": 4, + "url": "http://adocean.cz/en", + "companyId": "adocean" + }, + "adometry": { + "name": "Adometry", + "categoryId": 4, + "url": "http://www.adometry.com/", + "companyId": "google" + }, + "adomik": { + "name": "Adomik", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adon_network": { + "name": "AdOn Network", + "categoryId": 4, + "url": "http://www.adonnetwork.com/", + "companyId": "adon_network" + }, + "adonion": { + "name": "AdOnion", + "categoryId": 4, + "url": "http://www.adonion.com/", + "companyId": "adonion" + }, + "adonly": { + "name": "AdOnly", + "categoryId": 4, + "url": "https://gloadmarket.com/", + "companyId": "adonly" + }, + "adoperator": { + "name": "AdOperator", + "categoryId": 4, + "url": "http://www.adoperator.com/start/", + "companyId": "adoperator" + }, + "adoric": { + "name": "Adoric", + "categoryId": 6, + "url": "https://adoric.com/", + "companyId": "adoric" + }, + "adorika": { + "name": "Adorika", + "categoryId": 4, + "url": "http://www.adorika.com/", + "companyId": "adorika" + }, + "adosia": { + "name": "Adosia", + "categoryId": 4, + "url": "https://adosia.com", + "companyId": "adosia" + }, + "adotmob.com": { + "name": "Adotmob", + "categoryId": 4, + "url": "https://adotmob.com/", + "companyId": "adotmob" + }, + "adotube": { + "name": "AdoTube", + "categoryId": 4, + "url": "http://www.adotube.com", + "companyId": "exponential_interactive" + }, + "adparlor": { + "name": "AdParlor", + "categoryId": 4, + "url": "http://www.adparlor.com/", + "companyId": "fluent" + }, + "adpartner": { + "name": "adpartner", + "categoryId": 4, + "url": "http://adpartner.pro/", + "companyId": "adpartner" + }, + "adpeeps": { + "name": "Ad Peeps", + "categoryId": 4, + "url": "http://www.adpeeps.com/", + "companyId": "ad_peeps" + }, + "adperfect": { + "name": "AdPerfect", + "categoryId": 4, + "url": "http://www.adperfect.com/", + "companyId": "adperfect" + }, + "adperium": { + "name": "AdPerium", + "categoryId": 4, + "url": "http://www.adperium.com/", + "companyId": "adperium" + }, + "adpilot": { + "name": "AdPilot", + "categoryId": 4, + "url": "http://www.adpilotgroup.com/", + "companyId": "adpilot" + }, + "adplan": { + "name": "AdPlan", + "categoryId": 4, + "url": "http://www.adplan.ne.jp/", + "companyId": "adplan" + }, + "adplus": { + "name": "ADPLUS", + "categoryId": 4, + "url": "http://www.adplus.co.id/", + "companyId": "adplus" + }, + "adprofy": { + "name": "AdProfy", + "categoryId": 4, + "url": "http://adprofy.com/", + "companyId": "adprofy" + }, + "adpulse": { + "name": "AdPulse", + "categoryId": 4, + "url": "http://adpulse.ir/", + "companyId": "adpulse.ir" + }, + "adpv": { + "name": "Adpv", + "categoryId": 4, + "url": "http://www.adpv.com/", + "companyId": "adpv" + }, + "adreactor": { + "name": "AdReactor", + "categoryId": 4, + "url": "http://www.adreactor.com/", + "companyId": "adreactor" + }, + "adrecord": { + "name": "Adrecord", + "categoryId": 4, + "url": "http://www.adrecord.com/", + "companyId": "adrecord" + }, + "adrecover": { + "name": "AdRecover", + "categoryId": 4, + "url": "https://www.adrecover.com/", + "companyId": "adpushup" + }, + "adresult": { + "name": "ADResult", + "categoryId": 4, + "url": "http://www.adresult.jp/", + "companyId": "adresult" + }, + "adriver": { + "name": "AdRiver", + "categoryId": 4, + "url": "http://www.adriver.ru/", + "companyId": "ad_river" + }, + "adroll": { + "name": "AdRoll", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_pixel": { + "name": "AdRoll Pixel", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_roundtrip": { + "name": "AdRoll Roundtrip", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adrom": { + "name": "adRom", + "categoryId": 4, + "url": "http://www.adrom.net/", + "companyId": null + }, + "adru.net": { + "name": "adru.net", + "categoryId": 4, + "url": "http://adru.net/", + "companyId": "adru.net" + }, + "adrunnr": { + "name": "AdRunnr", + "categoryId": 4, + "url": "https://adrunnr.com/", + "companyId": "adrunnr" + }, + "adsame": { + "name": "Adsame", + "categoryId": 4, + "url": "http://adsame.com/", + "companyId": "adsame" + }, + "adsbookie": { + "name": "AdsBookie", + "categoryId": 4, + "url": "http://adsbookie.com/", + "companyId": null + }, + "adscale": { + "name": "AdScale", + "categoryId": 4, + "url": "http://www.adscale.de/", + "companyId": "stroer" + }, + "adscience": { + "name": "Adscience", + "categoryId": 4, + "url": "http://www.adscience.nl/", + "companyId": "adscience" + }, + "adsco.re": { + "name": "Adscore", + "categoryId": 4, + "url": "https://www.adscore.com/", + "companyId": null + }, + "adsensecamp": { + "name": "AdsenseCamp", + "categoryId": 4, + "url": "http://adsensecamp.com", + "companyId": "adsensecamp" + }, + "adserverpub": { + "name": "AdServerPub", + "categoryId": 4, + "url": "http://www.adserverpub.com/", + "companyId": "adserverpub" + }, + "adservice_media": { + "name": "Adservice Media", + "categoryId": 4, + "url": "http://www.adservicemedia.com/", + "companyId": "adservice_media" + }, + "adsfactor": { + "name": "Adsfactor", + "categoryId": 4, + "url": "http://www.adsfactor.com/", + "companyId": "pixels_asia" + }, + "adside": { + "name": "AdSide", + "categoryId": 4, + "url": "http://www.adside.com/", + "companyId": "adside" + }, + "adskeeper": { + "name": "AdsKeeper", + "categoryId": 4, + "url": "http://adskeeper.co.uk/", + "companyId": "adskeeper" + }, + "adskom": { + "name": "ADSKOM", + "categoryId": 4, + "url": "http://adskom.com/", + "companyId": "adskom" + }, + "adslot": { + "name": "Adslot", + "categoryId": 4, + "url": "http://www.adslot.com/", + "companyId": "adslot" + }, + "adsnative": { + "name": "adsnative", + "categoryId": 4, + "url": "http://www.adsnative.com/", + "companyId": "adsnative" + }, + "adsniper.ru": { + "name": "AdSniper", + "categoryId": 4, + "url": "http://ad-sniper.com/", + "companyId": "adsniper" + }, + "adspeed": { + "name": "AdSpeed", + "categoryId": 4, + "url": "http://www.adspeed.com/", + "companyId": "adspeed" + }, + "adspyglass": { + "name": "AdSpyglass", + "categoryId": 4, + "url": "https://www.adspyglass.com/", + "companyId": "adspyglass" + }, + "adstage": { + "name": "AdStage", + "categoryId": 4, + "url": "http://www.adstage.io/", + "companyId": "adstage" + }, + "adstanding": { + "name": "AdStanding", + "categoryId": 4, + "url": "http://www.adstanding.com/en/", + "companyId": "adstanding" + }, + "adstars": { + "name": "Adstars", + "categoryId": 4, + "url": "http://adstars.co.id", + "companyId": "adstars" + }, + "adstir": { + "name": "adstir", + "categoryId": 4, + "url": "https://en.ad-stir.com/", + "companyId": "united_inc" + }, + "adsupply": { + "name": "AdSupply", + "categoryId": 4, + "url": "http://www.adsupply.com/", + "companyId": "adsupply" + }, + "adswizz": { + "name": "AdsWizz", + "categoryId": 4, + "url": "http://www.adswizz.com/", + "companyId": "adswizz" + }, + "adtaily": { + "name": "AdTaily", + "categoryId": 4, + "url": "http://www.adtaily.pl/", + "companyId": "adtaily" + }, + "adtarget.me": { + "name": "Adtarget.me", + "categoryId": 4, + "url": "http://www.adtarget.me/", + "companyId": "adtarget.me" + }, + "adtech": { + "name": "ADTECH", + "categoryId": 6, + "url": "http://www.adtechus.com/", + "companyId": "verizon" + }, + "adtegrity": { + "name": "Adtegrity", + "categoryId": 4, + "url": "http://www.adtegrity.com/", + "companyId": "adtegrity" + }, + "adtelligence.de": { + "name": "Adtelligence", + "categoryId": 4, + "url": "https://adtelligence.com/", + "companyId": null + }, + "adtheorent": { + "name": "Adtheorent", + "categoryId": 4, + "url": "http://adtheorent.com/", + "companyId": "adtheorant" + }, + "adthink": { + "name": "Adthink", + "categoryId": 4, + "url": "https://adthink.com/", + "companyId": "adthink" + }, + "adtiger": { + "name": "AdTiger", + "categoryId": 4, + "url": "http://www.adtiger.de/", + "companyId": "adtiger" + }, + "adtima": { + "name": "Adtima", + "categoryId": 4, + "url": "http://adtima.vn/", + "companyId": "adtima" + }, + "adtng.com": { + "name": "adtng.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "adtoma": { + "name": "Adtoma", + "categoryId": 4, + "url": "http://www.adtoma.com/", + "companyId": "adtoma" + }, + "adtr02.com": { + "name": "adtr02.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adtraction": { + "name": "Adtraction", + "categoryId": 4, + "url": "http://adtraction.com/", + "companyId": "adtraction" + }, + "adtraxx": { + "name": "AdTraxx", + "categoryId": 4, + "url": "https://www1.adtraxx.de/", + "companyId": "adtrax" + }, + "adtriba.com": { + "name": "AdTriba", + "categoryId": 6, + "url": "https://www.adtriba.com/", + "companyId": null + }, + "adtrue": { + "name": "Adtrue", + "categoryId": 4, + "url": "http://adtrue.com/", + "companyId": "adtrue" + }, + "adtrustmedia": { + "name": "AdTrustMedia", + "categoryId": 4, + "url": "https://adtrustmedia.com/", + "companyId": "adtrustmedia" + }, + "adtube": { + "name": "AdTube", + "categoryId": 4, + "url": "http://adtube.ir/", + "companyId": "adtube" + }, + "adult_webmaster_empire": { + "name": "Adult Webmaster Empire", + "categoryId": 3, + "url": "http://www.awempire.com/", + "companyId": "adult_webmaster_empire" + }, + "adultadworld": { + "name": "AdultAdWorld", + "categoryId": 3, + "url": "http://adultadworld.com/", + "companyId": "adult_adworld" + }, + "adup-tech.com": { + "name": "AdUp Technology", + "categoryId": 4, + "url": "https://www.adup-tech.com/", + "companyId": "adup_technology" + }, + "advaction": { + "name": "Advaction", + "categoryId": 4, + "url": "http://advaction.ru/", + "companyId": "advaction" + }, + "advalo": { + "name": "Advalo", + "categoryId": 4, + "url": "https://www.advalo.com", + "companyId": "advalo" + }, + "advanced_hosters": { + "name": "Advanced Hosters", + "categoryId": 9, + "url": "https://advancedhosters.com/", + "companyId": null + }, + "advark": { + "name": "Advark", + "categoryId": 4, + "url": "https://advarkads.com/", + "companyId": "advark" + }, + "adventori": { + "name": "ADventori", + "categoryId": 8, + "url": "https://www.adventori.com/", + "companyId": "adventori" + }, + "adverline": { + "name": "Adverline", + "categoryId": 4, + "url": "http://www.adverline.com/", + "companyId": "adverline" + }, + "adversal": { + "name": "Adversal", + "categoryId": 4, + "url": "https://www.adversal.com/", + "companyId": "adversal" + }, + "adverserve": { + "name": "adverServe", + "categoryId": 4, + "url": "http://www.adverserve.com/", + "companyId": "adverserve" + }, + "adverteerdirect": { + "name": "Adverteerdirect", + "categoryId": 4, + "url": "http://www.adverteerdirect.nl/", + "companyId": "adverteerdirect" + }, + "adverticum": { + "name": "Adverticum", + "categoryId": 4, + "url": "https://adverticum.net/english/", + "companyId": "adverticum" + }, + "advertise.com": { + "name": "Advertise.com", + "categoryId": 4, + "url": "http://advertise.com/", + "companyId": "advertise.com" + }, + "advertisespace": { + "name": "AdvertiseSpace", + "categoryId": 4, + "url": "http://www.advertisespace.com/", + "companyId": "advertisespace" + }, + "advertising.com": { + "name": "Verizon Media", + "categoryId": 4, + "url": "https://www.verizonmedia.com/", + "companyId": "verizon" + }, + "advertlets": { + "name": "Advertlets", + "categoryId": 4, + "url": "http://www.advertlets.com/", + "companyId": "advertlets" + }, + "advertserve": { + "name": "AdvertServe", + "categoryId": 4, + "url": "https://secure.advertserve.com/", + "companyId": "advertserve" + }, + "advidi": { + "name": "Advidi", + "categoryId": 4, + "url": "http://advidi.com/", + "companyId": "advidi" + }, + "advmaker.ru": { + "name": "advmaker.ru", + "categoryId": 4, + "url": "http://advmaker.ru/", + "companyId": "advmaker.ru" + }, + "advolution": { + "name": "Advolution", + "categoryId": 4, + "url": "http://www.advolution.de", + "companyId": "advolution" + }, + "adwebster": { + "name": "adwebster", + "categoryId": 4, + "url": "http://adwebster.com", + "companyId": "adwebster" + }, + "adwit": { + "name": "Adwit", + "categoryId": 4, + "url": "http://www.adwitserver.com", + "companyId": "adwit" + }, + "adworx.at": { + "name": "ADworx", + "categoryId": 4, + "url": "http://www.adworx.at/", + "companyId": "ors" + }, + "adworxs.net": { + "name": "adworxs.net", + "categoryId": 4, + "url": "http://www.adworxs.net/?lang=en", + "companyId": null + }, + "adxion": { + "name": "adXion", + "categoryId": 4, + "url": "http://www.adxion.com", + "companyId": "adxion" + }, + "adxpansion": { + "name": "AdXpansion", + "categoryId": 3, + "url": "http://www.adxpansion.com/", + "companyId": "adxpansion" + }, + "adxpose": { + "name": "AdXpose", + "categoryId": 4, + "url": "http://www.adxpose.com/home.page", + "companyId": "comscore" + }, + "adxprtz.com": { + "name": "adxprtz.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adyoulike": { + "name": "Adyoulike", + "categoryId": 4, + "url": "http://www.adyoulike.com/", + "companyId": "adyoulike" + }, + "adzerk": { + "name": "Adzerk", + "categoryId": 4, + "url": "http://adzerk.com/", + "companyId": "adzerk" + }, + "adzly": { + "name": "adzly", + "categoryId": 4, + "url": "http://www.adzly.com/", + "companyId": "adzly" + }, + "aemediatraffic": { + "name": "Aemediatraffic", + "categoryId": 6, + "url": null, + "companyId": null + }, + "aerify_media": { + "name": "Aerify Media", + "categoryId": 4, + "url": "http://aerifymedia.com/", + "companyId": "aerify_media" + }, + "aeris_weather": { + "name": "Aeris Weather", + "categoryId": 2, + "url": "https://www.aerisweather.com/", + "companyId": "aerisweather" + }, + "affectv": { + "name": "Hybrid Theory", + "categoryId": 4, + "url": "https://hybridtheory.com/", + "companyId": "affectv" + }, + "affiliate-b": { + "name": "Affiliate-B", + "categoryId": 4, + "url": "https://www.affiliate-b.com/", + "companyId": "affiliate_b" + }, + "affiliate4you": { + "name": "Affiliate4You", + "categoryId": 4, + "url": "http://www.affiliate4you.nl/", + "companyId": "family_blend" + }, + "affiliatebuzz": { + "name": "AffiliateBuzz", + "categoryId": 4, + "url": "http://www.affiliatebuzz.com/", + "companyId": "affiliatebuzz" + }, + "affiliatefuture": { + "name": "AffiliateFuture", + "categoryId": 4, + "url": "http://www.affiliatefuture.com", + "companyId": "affiliatefuture" + }, + "affiliatelounge": { + "name": "AffiliateLounge", + "categoryId": 4, + "url": "http://www.affiliatelounge.com/", + "companyId": "betsson_group_affiliates" + }, + "affiliation_france": { + "name": "Affiliation France", + "categoryId": 4, + "url": "http://www.affiliation-france.com/", + "companyId": "affiliation-france" + }, + "affiliator": { + "name": "Affiliator", + "categoryId": 4, + "url": "http://www.affiliator.com/", + "companyId": "affiliator" + }, + "affiliaweb": { + "name": "Affiliaweb", + "categoryId": 4, + "url": "http://affiliaweb.fr/", + "companyId": "affiliaweb" + }, + "affilinet": { + "name": "affilinet", + "categoryId": 4, + "url": "https://www.affili.net/", + "companyId": "axel_springer" + }, + "affimax": { + "name": "AffiMax", + "categoryId": 4, + "url": "https://www.affimax.de", + "companyId": "affimax" + }, + "affinity": { + "name": "Affinity", + "categoryId": 4, + "url": "http://www.affinity.com/", + "companyId": "affinity" + }, + "affinity.by": { + "name": "Affinity.by", + "categoryId": 4, + "url": "http://affinity.by", + "companyId": "affinity_digital_agency" + }, + "affiz_cpm": { + "name": "Affiz CPM", + "categoryId": 4, + "url": "http://cpm.affiz.com/home", + "companyId": "affiz_cpm" + }, + "afftrack": { + "name": "Afftrack", + "categoryId": 6, + "url": "http://www.afftrack.com/", + "companyId": "afftrack" + }, + "afgr2.com": { + "name": "afgr2.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "afilio": { + "name": "Afilio", + "categoryId": 6, + "url": "http://afilio.com.br/", + "companyId": "afilio" + }, + "afs_analystics": { + "name": "AFS Analystics", + "categoryId": 6, + "url": "https://www.afsanalytics.com/", + "companyId": "afs_analytics" + }, + "aftonbladet_ads": { + "name": "Aftonbladet Ads", + "categoryId": 4, + "url": "http://annonswebb.aftonbladet.se/", + "companyId": "aftonbladet" + }, + "aftv-serving.bid": { + "name": "aftv-serving.bid", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aggregate_knowledge": { + "name": "Aggregate Knowledge", + "categoryId": 4, + "url": "http://www.aggregateknowledge.com/", + "companyId": "neustar" + }, + "agilone": { + "name": "AgilOne", + "categoryId": 6, + "url": "http://www.agilone.com/", + "companyId": "agilone" + }, + "agora": { + "name": "Agora", + "categoryId": 4, + "url": "https://www.agora.pl/", + "companyId": "agora_sa" + }, + "ahalogy": { + "name": "Ahalogy", + "categoryId": 7, + "url": "http://www.ahalogy.com/", + "companyId": "ahalogy" + }, + "ai_media_group": { + "name": "Ai Media Group", + "categoryId": 4, + "url": "http://aimediagroup.com/", + "companyId": "ai_media_group" + }, + "aidata": { + "name": "Aidata", + "categoryId": 4, + "url": "http://aidata.me/", + "companyId": "aidata" + }, + "aim4media": { + "name": "Aim4Media", + "categoryId": 4, + "url": "http://aim4media.com", + "companyId": "aim4media" + }, + "airbnb": { + "name": "Airbnb", + "categoryId": 6, + "url": "https://affiliate.withairbnb.com/", + "companyId": null + }, + "airbrake": { + "name": "Airbrake", + "categoryId": 4, + "url": "https://airbrake.io/", + "companyId": "airbrake" + }, + "airpr.com": { + "name": "AirPR", + "categoryId": 6, + "url": "https://airpr.com/", + "companyId": "airpr" + }, + "airpush": { + "name": "Airpush", + "categoryId": 4, + "url": "http://www.airpush.com/", + "companyId": "airpush" + }, + "akamai_technologies": { + "name": "Akamai Technologies", + "categoryId": 9, + "url": "https://www.akamai.com/", + "companyId": "akamai", + "source": "AdGuard" + }, + "akamoihd.net": { + "name": "akamoihd.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "akane": { + "name": "AkaNe", + "categoryId": 4, + "url": "http://akane-ad.com/", + "companyId": "akane" + }, + "akanoo": { + "name": "Akanoo", + "categoryId": 6, + "url": "http://www.akanoo.com/", + "companyId": "akanoo" + }, + "akavita": { + "name": "Akavita", + "categoryId": 4, + "url": "http://www.akavita.by/en", + "companyId": "akavita" + }, + "al_bawaba_advertising": { + "name": "Al Bawaba Advertising", + "categoryId": 4, + "url": "http://www.albawaba.com/advertising", + "companyId": "al_bawaba" + }, + "albacross": { + "name": "Albacross", + "categoryId": 4, + "url": "https://albacross.com", + "companyId": "albacross" + }, + "aldi-international.com": { + "name": "aldi-international.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "alenty": { + "name": "Alenty", + "categoryId": 4, + "url": "http://www.alenty.com/", + "companyId": "appnexus" + }, + "alephd.com": { + "name": "alephd", + "categoryId": 4, + "url": "https://www.alephd.com/", + "companyId": "verizon" + }, + "alexa_metrics": { + "name": "Alexa Metrics", + "categoryId": 6, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "alexa_traffic_rank": { + "name": "Alexa Traffic Rank", + "categoryId": 4, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "algolia.net": { + "name": "algolia", + "categoryId": 4, + "url": "https://www.algolia.com/", + "companyId": null + }, + "algovid.com": { + "name": "algovid.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "alibaba.com": { + "name": "Alibaba", + "categoryId": 8, + "url": "http://www.alibaba.com/", + "companyId": "alibaba" + }, + "alipay.com": { + "name": "Alipay", + "categoryId": 2, + "url": "https://www.alipay.com/", + "companyId": "alibaba" + }, + "alivechat": { + "name": "AliveChat", + "categoryId": 2, + "url": "http://www.websitealive.com/", + "companyId": "websitealive" + }, + "allegro.pl": { + "name": "Allegro", + "categoryId": 8, + "url": "https://allegro.pl", + "companyId": "allegro.pl" + }, + "allin": { + "name": "Allin", + "categoryId": 6, + "url": "http://allin.com.br/", + "companyId": "allin" + }, + "allo-pages.fr": { + "name": "Allo-Pages", + "categoryId": 2, + "url": "http://www.allo-pages.fr/", + "companyId": "links_lab" + }, + "allotraffic": { + "name": "AlloTraffic", + "categoryId": 4, + "url": "http://www.allotraffic.com/", + "companyId": "allotraffic" + }, + "allure_media": { + "name": "Allure Media", + "categoryId": 4, + "url": "http://www.alluremedia.com.au", + "companyId": "allure_media" + }, + "allyes": { + "name": "Allyes", + "categoryId": 4, + "url": "http://www.allyes.com/", + "companyId": "allyes" + }, + "alooma": { + "name": "Alooma", + "categoryId": 4, + "url": "https://www.alooma.com/", + "companyId": "alooma" + }, + "altitude_digital": { + "name": "Altitude Digital", + "categoryId": 4, + "url": "http://www.altitudedigital.com/", + "companyId": "altitude_digital" + }, + "amadesa": { + "name": "Amadesa", + "categoryId": 4, + "url": "http://www.amadesa.com/", + "companyId": "amadesa" + }, + "amazon": { + "name": "Amazon.com", + "categoryId": 8, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_adsystem": { + "name": "Amazon Advertising", + "categoryId": 4, + "url": "https://advertising.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_associates": { + "name": "Amazon Associates", + "categoryId": 4, + "url": "http://aws.amazon.com/associates/", + "companyId": "amazon_associates" + }, + "amazon_cdn": { + "name": "Amazon CDN", + "categoryId": 9, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_cloudfront": { + "name": "Amazon CloudFront", + "categoryId": 10, + "url": "https://aws.amazon.com/cloudfront/?nc1=h_ls", + "companyId": "amazon_associates" + }, + "amazon_mobile_ads": { + "name": "Amazon Mobile Ads", + "categoryId": 4, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_payments": { + "name": "Amazon Payments", + "categoryId": 2, + "url": "https://pay.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_video": { + "name": "Amazon Instant Video", + "categoryId": 0, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_web_services": { + "name": "Amazon Web Services", + "categoryId": 10, + "url": "https://aws.amazon.com/", + "companyId": "amazon_associates" + }, + "ambient_digital": { + "name": "Ambient Digital", + "categoryId": 4, + "url": "http://www.adnetwork.vn/", + "companyId": "ambient_digital" + }, + "amgload.net": { + "name": "amgload.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "amoad": { + "name": "AMoAd", + "categoryId": 4, + "url": "http://www.amoad.com/", + "companyId": "amoad" + }, + "amobee": { + "name": "Amobee", + "categoryId": 4, + "url": "https://www.amobee.com/", + "companyId": "singtel" + }, + "amp_platform": { + "name": "AMP Platform", + "categoryId": 4, + "url": "http://www.collective.com/", + "companyId": "collective" + }, + "amplitude": { + "name": "Amplitude", + "categoryId": 6, + "url": "https://amplitude.com/", + "companyId": "amplitude" + }, + "ampproject.org": { + "name": "AMP Project", + "categoryId": 8, + "url": "https://www.ampproject.org/", + "companyId": "google" + }, + "anametrix": { + "name": "Anametrix", + "categoryId": 6, + "url": "http://anametrix.com/", + "companyId": "anametrix" + }, + "ancestry_cdn": { + "name": "Ancestry CDN", + "categoryId": 9, + "url": "https://www.ancestry.com/", + "companyId": "ancestry" + }, + "ancora": { + "name": "Ancora", + "categoryId": 6, + "url": "http://www.ancoramediasolutions.com/", + "companyId": "ancora" + }, + "anetwork": { + "name": "Anetwork", + "categoryId": 4, + "url": "http://anetwork.ir/", + "companyId": "anetwork" + }, + "aniview.com": { + "name": "AniView", + "categoryId": 4, + "url": "https://www.aniview.com/", + "companyId": null + }, + "anonymousads": { + "name": "AnonymousAds", + "categoryId": 4, + "url": "https://a-ads.com/", + "companyId": "anonymousads" + }, + "anormal_tracker": { + "name": "Anormal Tracker", + "categoryId": 6, + "url": "http://anormal-tracker.de/", + "companyId": "anormal-tracker" + }, + "answers_cloud_service": { + "name": "Answers Cloud Service", + "categoryId": 1, + "url": "http://www.answers.com/", + "companyId": "answers.com" + }, + "ants": { + "name": "Ants", + "categoryId": 7, + "url": "http://ants.vn/en/", + "companyId": "ants" + }, + "anvato": { + "name": "Anvato", + "categoryId": 0, + "url": "https://www.anvato.com/", + "companyId": "google" + }, + "anyclip": { + "name": "AnyClip", + "categoryId": 0, + "url": "https://anyclip.com", + "companyId": "anyclip" + }, + "aol_be_on": { + "name": "AOL Be On", + "categoryId": 4, + "url": "http://beon.aolnetworks.com/", + "companyId": "verizon" + }, + "aol_cdn": { + "name": "AOL CDN", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "aol_images_cdn": { + "name": "AOL Images CDN", + "categoryId": 5, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "apa.at": { + "name": "Apa", + "categoryId": 8, + "url": "http://www.apa.at/Site/index.de.html", + "companyId": "apa" + }, + "apester": { + "name": "Apester", + "categoryId": 4, + "url": "http://apester.com/", + "companyId": "apester" + }, + "apicit.net": { + "name": "apicit.net", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aplus_analytics": { + "name": "Aplus Analytics", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "appcues": { + "name": "Appcues", + "categoryId": 2, + "url": "https://www.appcues.com/", + "companyId": null + }, + "appdynamics": { + "name": "AppDynamics", + "categoryId": 6, + "url": "http://www.appdynamics.com", + "companyId": "appdynamics" + }, + "appier": { + "name": "Appier", + "categoryId": 4, + "url": "http://www.appier.com/en/index.html", + "companyId": "appier" + }, + "applifier": { + "name": "Applifier", + "categoryId": 4, + "url": "http://www.applifier.com/", + "companyId": "applifier" + }, + "applovin": { + "name": "AppLovin", + "categoryId": 4, + "url": "https://www.applovin.com", + "companyId": "applovin" + }, + "appmetrx": { + "name": "AppMetrx", + "categoryId": 4, + "url": "http://www.engago.com", + "companyId": "engago_technologies" + }, + "appnexus": { + "name": "AppNexus", + "categoryId": 4, + "url": "http://www.appnexus.com/", + "companyId": "appnexus" + }, + "appsflyer": { + "name": "AppsFlyer", + "categoryId": 101, + "url": "https://www.appsflyer.com/", + "companyId": "appsflyer", + "source": "AdGuard" + }, + "apptv": { + "name": "appTV", + "categoryId": 4, + "url": "http://www.apptv.com/", + "companyId": "apptv" + }, + "apture": { + "name": "Apture", + "categoryId": 2, + "url": "http://www.apture.com/", + "companyId": "google" + }, + "arcpublishing": { + "name": "Arc Publishing", + "categoryId": 6, + "url": "https://www.arcpublishing.com/", + "companyId": "arc_publishing" + }, + "ard.de": { + "name": "ard.de", + "categoryId": 0, + "url": null, + "companyId": null + }, + "are_you_a_human": { + "name": "Are You a Human", + "categoryId": 6, + "url": "https://areyouahuman.com/", + "companyId": "distil_networks" + }, + "arkoselabs.com": { + "name": "Arkose Labs", + "categoryId": 6, + "url": "https://www.arkoselabs.com/", + "companyId": null + }, + "art19": { + "name": "Art19", + "categoryId": 4, + "url": "https://art19.com/", + "companyId": "art19" + }, + "artimedia": { + "name": "Artimedia", + "categoryId": 4, + "url": "http://arti-media.net/en/", + "companyId": "artimedia" + }, + "artlebedev.ru": { + "name": "Art.Lebedev", + "categoryId": 8, + "url": "https://www.artlebedev.ru/", + "companyId": "art.lebedev_studio" + }, + "aruba_media_marketing": { + "name": "Aruba Media Marketing", + "categoryId": 4, + "url": "http://www.arubamediamarketing.it/", + "companyId": "aruba_media_marketing" + }, + "arvato_canvas_fp": { + "name": "Arvato Canvas FP", + "categoryId": 6, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "asambeauty.com": { + "name": "asambeauty.com", + "categoryId": 8, + "url": "https://www.asambeauty.com/", + "companyId": null + }, + "ask.com": { + "name": "Ask.com", + "categoryId": 7, + "url": null, + "companyId": null + }, + "aspnetcdn": { + "name": "Microsoft Ajax CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "astronomer": { + "name": "Astronomer", + "categoryId": 6, + "url": "https://www.astronomer.io", + "companyId": "astronomer" + }, + "at_internet": { + "name": "AT Internet", + "categoryId": 6, + "url": "http://www.xiti.com/", + "companyId": "at_internet" + }, + "atedra": { + "name": "Atedra", + "categoryId": 4, + "url": "http://www.atedra.com/", + "companyId": "atedra" + }, + "atg_group": { + "name": "ATG Ad Tech Group", + "categoryId": 4, + "url": "https://ad-tech-group.com/", + "companyId": null + }, + "atg_optimization": { + "name": "ATG Optimization", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/", + "companyId": "oracle" + }, + "atg_recommendations": { + "name": "ATG Recommendations", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/recommendations/", + "companyId": "oracle" + }, + "atlas": { + "name": "Atlas", + "categoryId": 4, + "url": "https://atlassolutions.com", + "companyId": "facebook" + }, + "atlas_profitbuilder": { + "name": "Atlas ProfitBuilder", + "categoryId": 4, + "url": "http://www.atlassolutions.com/", + "companyId": "atlas" + }, + "atlassian.net": { + "name": "Atlassian", + "categoryId": 2, + "url": "https://www.atlassian.com/", + "companyId": "atlassian" + }, + "atlassian_marketplace": { + "name": "Atlassian Marketplace", + "categoryId": 9, + "url": "https://marketplace.atlassian.com/", + "companyId": "atlassian" + }, + "atomz_search": { + "name": "Atomz Search", + "categoryId": 2, + "url": "http://atomz.com/", + "companyId": "atomz" + }, + "atsfi_de": { + "name": "atsfi.de", + "categoryId": 11, + "url": "http://www.axelspringer.de/en/index.html", + "companyId": "axel_springer" + }, + "attracta": { + "name": "Attracta", + "categoryId": 4, + "url": "http://www.attracta.com/", + "companyId": "attracta" + }, + "attraqt": { + "name": "Attraqt", + "categoryId": 6, + "url": "http://www.locayta.com/", + "companyId": "attraqt" + }, + "audience2media": { + "name": "Audience2Media", + "categoryId": 4, + "url": "http://www.audience2media.com/", + "companyId": "audience2media" + }, + "audience_ad_network": { + "name": "Audience Ad Network", + "categoryId": 4, + "url": "http://www.audienceadnetwork.com", + "companyId": "bridgeline_digital" + }, + "audience_science": { + "name": "Audience Science", + "categoryId": 4, + "url": "http://www.audiencescience.com/", + "companyId": "audiencescience" + }, + "audiencerate": { + "name": "AudienceRate", + "categoryId": 4, + "url": "http://www.audiencerate.com/", + "companyId": "audiencerate" + }, + "audiencesquare.com": { + "name": "Audience Square", + "categoryId": 4, + "url": "http://www.audiencesquare.fr/", + "companyId": "audience_square" + }, + "auditude": { + "name": "Auditude", + "categoryId": 0, + "url": "http://www.auditude.com/", + "companyId": "adobe" + }, + "audtd.com": { + "name": "Auditorius", + "categoryId": 4, + "url": "http://www.auditorius.ru/", + "companyId": "auditorius" + }, + "augur": { + "name": "Augur", + "categoryId": 6, + "url": "https://www.augur.io/", + "companyId": "augur" + }, + "aumago": { + "name": "Aumago", + "categoryId": 4, + "url": "http://www.aumago.com/", + "companyId": "aumago" + }, + "aurea_clicktracks": { + "name": "Aurea ClickTracks", + "categoryId": 4, + "url": "http://www.clicktracks.com/", + "companyId": "aurea" + }, + "ausgezeichnet_org": { + "name": "ausgezeichnet.org", + "categoryId": 2, + "url": "http://ausgezeichnet.org/", + "companyId": null + }, + "australia.gov": { + "name": "Australia.gov", + "categoryId": 4, + "url": "http://www.australia.gov.au/", + "companyId": "australian_government" + }, + "auth0": { + "name": "Auth0 Inc.", + "categoryId": 6, + "url": "https://auth0.com/", + "companyId": "auth0" + }, + "autoid": { + "name": "AutoID", + "categoryId": 6, + "url": "http://www.autoid.com/", + "companyId": "autoid" + }, + "autonomy": { + "name": "Autonomy", + "categoryId": 4, + "url": "http://www.optimost.com/", + "companyId": "hp" + }, + "autonomy_campaign": { + "name": "Autonomy Campaign", + "categoryId": 4, + "url": "http://www.autonomy.com/", + "companyId": "hp" + }, + "autopilothq": { + "name": "Auto Pilot", + "categoryId": 4, + "url": "https://www.autopilothq.com/", + "companyId": "autopilothq" + }, + "autoscout24.com": { + "name": "Autoscout24", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "avail": { + "name": "Avail", + "categoryId": 4, + "url": "http://avail.com", + "companyId": "richrelevance" + }, + "avanser": { + "name": "AVANSER", + "categoryId": 2, + "url": "http://www.avanser.com.au/", + "companyId": "avanser" + }, + "avant_metrics": { + "name": "Avant Metrics", + "categoryId": 6, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avantlink": { + "name": "AvantLink", + "categoryId": 4, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avazu_network": { + "name": "Avazu Network", + "categoryId": 4, + "url": "http://www.avazudsp.net/", + "companyId": "avazu_network" + }, + "avenseo": { + "name": "Avenseo", + "categoryId": 4, + "url": "http://avenseo.com", + "companyId": "avenseo" + }, + "avid_media": { + "name": "Avid Media", + "categoryId": 0, + "url": "http://www.avidglobalmedia.com/", + "companyId": "avid_media" + }, + "avocet": { + "name": "Avocet", + "categoryId": 8, + "url": "https://avocet.io/", + "companyId": "avocet" + }, + "aweber": { + "name": "AWeber", + "categoryId": 4, + "url": "http://www.aweber.com/", + "companyId": "aweber_communications" + }, + "awin": { + "name": "AWIN", + "categoryId": 4, + "url": "https://www.awin.com", + "companyId": "axel_springer" + }, + "axill": { + "name": "Axill", + "categoryId": 4, + "url": "http://www.axill.com/", + "companyId": "axill" + }, + "azadify": { + "name": "Azadify", + "categoryId": 4, + "url": "http://azadify.com/engage/index.php", + "companyId": "azadify" + }, + "azureedge.net": { + "name": "Azure CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "b2bcontext": { + "name": "B2BContext", + "categoryId": 4, + "url": "http://b2bcontext.ru/", + "companyId": "b2bcontext" + }, + "b2bvideo": { + "name": "B2Bvideo", + "categoryId": 4, + "url": "http://b2bvideo.ru/", + "companyId": "b2bvideo" + }, + "babator.com": { + "name": "Babator", + "categoryId": 6, + "url": "https://www.babator.com/", + "companyId": null + }, + "back_beat_media": { + "name": "Back Beat Media", + "categoryId": 4, + "url": "http://www.backbeatmedia.com", + "companyId": "backbeat_media" + }, + "backtype_widgets": { + "name": "BackType Widgets", + "categoryId": 4, + "url": "http://www.backtype.com/widgets", + "companyId": "backtype" + }, + "bahn_de": { + "name": "Deutsche Bahn", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baidu_ads": { + "name": "Baidu Ads", + "categoryId": 4, + "url": "http://www.baidu.com/", + "companyId": "baidu" + }, + "baidu_static": { + "name": "Baidu Static", + "categoryId": 8, + "url": "https://www.baidu.com/", + "companyId": "baidu" + }, + "baletingo.com": { + "name": "baletingo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bangdom.com": { + "name": "BangBros", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bankrate": { + "name": "Bankrate", + "categoryId": 4, + "url": "https://www.bankrate.com/", + "companyId": "bankrate" + }, + "banner_connect": { + "name": "Banner Connect", + "categoryId": 4, + "url": "http://www.bannerconnect.net/", + "companyId": "bannerconnect" + }, + "bannerflow.com": { + "name": "Bannerflow", + "categoryId": 4, + "url": "https://www.bannerflow.com/", + "companyId": "bannerflow" + }, + "bannerplay": { + "name": "BannerPlay", + "categoryId": 4, + "url": "http://www.bannerplay.com/", + "companyId": "bannerplay" + }, + "bannersnack": { + "name": "Bannersnack", + "categoryId": 4, + "url": "http://www.bannersnack.com/", + "companyId": "bannersnack" + }, + "barilliance": { + "name": "Barilliance", + "categoryId": 4, + "url": "http://www.barilliance.com/", + "companyId": "barilliance" + }, + "barometer": { + "name": "Barometer", + "categoryId": 2, + "url": "http://getbarometer.com/", + "companyId": "barometer" + }, + "basilic.io": { + "name": "basilic.io", + "categoryId": 6, + "url": "https://basilic.io/", + "companyId": null + }, + "batanga_network": { + "name": "Batanga Network", + "categoryId": 4, + "url": "http://www.batanganetwork.com/", + "companyId": "batanga_network" + }, + "batch_media": { + "name": "Batch Media", + "categoryId": 4, + "url": "http://batch.ba/", + "companyId": "prosieben_sat1" + }, + "bauer_media": { + "name": "Bauer Media", + "categoryId": 4, + "url": "http://www.bauermedia.com", + "companyId": "bauer_media" + }, + "baur.de": { + "name": "baur.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baynote_observer": { + "name": "Baynote Observer", + "categoryId": 4, + "url": "http://www.baynote.com/", + "companyId": "baynote" + }, + "bazaarvoice": { + "name": "Bazaarvoice", + "categoryId": 2, + "url": "http://www.bazaarvoice.com/", + "companyId": "bazaarvoice" + }, + "bbci": { + "name": "BBC", + "categoryId": 10, + "url": "https://bbc.co.uk", + "companyId": null + }, + "bd4travel": { + "name": "bd4travel", + "categoryId": 4, + "url": "https://bd4travel.com/", + "companyId": "bd4travel" + }, + "be_opinion": { + "name": "Be Opinion", + "categoryId": 2, + "url": "http://beopinion.com/", + "companyId": "be_opinion" + }, + "beachfront": { + "name": "Beachfront Media", + "categoryId": 4, + "url": "http://beachfrontmedia.com/", + "companyId": null + }, + "beacon_ad_network": { + "name": "Beacon Ad Network", + "categoryId": 4, + "url": "http://beaconads.com/", + "companyId": "beacon_ad_network" + }, + "beampulse.com": { + "name": "BeamPulse", + "categoryId": 4, + "url": "https://en.beampulse.com/", + "companyId": null + }, + "beanstalk_data": { + "name": "Beanstalk Data", + "categoryId": 4, + "url": "http://www.beanstalkdata.com/", + "companyId": "beanstalk_data" + }, + "bebi": { + "name": "Bebi Media", + "categoryId": 4, + "url": "https://www.bebi.com/", + "companyId": "bebi_media" + }, + "beeketing.com": { + "name": "Beeketing", + "categoryId": 4, + "url": "https://beeketing.com/", + "companyId": "beeketing" + }, + "beeline.ru": { + "name": "Beeline", + "categoryId": 4, + "url": "https://moskva.beeline.ru/", + "companyId": null + }, + "beeswax": { + "name": "Beeswax", + "categoryId": 4, + "url": "http://beeswax.com/", + "companyId": "beeswax" + }, + "beezup": { + "name": "BeezUP", + "categoryId": 4, + "url": "http://www.beezup.co.uk/", + "companyId": "beezup" + }, + "begun": { + "name": "Begun", + "categoryId": 4, + "url": "http://begun.ru/", + "companyId": "begun" + }, + "behavioralengine": { + "name": "BehavioralEngine", + "categoryId": 4, + "url": "http://www.behavioralengine.com/", + "companyId": "behavioralengine" + }, + "belboon_gmbh": { + "name": "belboon GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "belco": { + "name": "Belco", + "categoryId": 2, + "url": "https://www.belco.io/", + "companyId": "belco" + }, + "belstat": { + "name": "BelStat", + "categoryId": 6, + "url": "http://www.belstat.com/", + "companyId": "belstat" + }, + "bemobile.ua": { + "name": "Bemobile", + "categoryId": 10, + "url": "http://bemobile.ua/en/", + "companyId": "bemobile" + }, + "bench_platform": { + "name": "Bench Platform", + "categoryId": 4, + "url": "https://benchplatform.com", + "companyId": "bench_platform" + }, + "betterttv": { + "name": "BetterTTV", + "categoryId": 7, + "url": "https://nightdev.com/betterttv/", + "companyId": "nightdev" + }, + "betweendigital.com": { + "name": "Between Digital", + "categoryId": 4, + "url": "http://betweendigital.ru/ssp", + "companyId": "between_digital" + }, + "bid.run": { + "name": "Bid Run", + "categoryId": 4, + "url": "http://bid.run/", + "companyId": "bid.run" + }, + "bidgear": { + "name": "BidGear", + "categoryId": 6, + "url": "https://bidgear.com/", + "companyId": "bidgear" + }, + "bidswitch": { + "name": "Bidswitch", + "categoryId": 4, + "url": "http://www.iponweb.com/", + "companyId": "iponweb" + }, + "bidtellect": { + "name": "Bidtellect", + "categoryId": 4, + "url": "https://www.bidtellect.com/", + "companyId": "bidtellect" + }, + "bidtheatre": { + "name": "BidTheatre", + "categoryId": 4, + "url": "http://www.bidtheatre.com/", + "companyId": "bidtheatre" + }, + "bidvertiser": { + "name": "BidVertiser", + "categoryId": 4, + "url": "http://www.bidvertiser.com/", + "companyId": "bidvertiser" + }, + "big_mobile": { + "name": "Big Mobile", + "categoryId": 4, + "url": "http://www.bigmobile.com/", + "companyId": "big_mobile" + }, + "bigcommerce.com": { + "name": "BigCommerce", + "categoryId": 6, + "url": "https://www.bigcommerce.com/", + "companyId": "bigcommerce" + }, + "bigmir.net": { + "name": "bigmir", + "categoryId": 6, + "url": "https://www.bigmir.net/", + "companyId": "bigmir-internet" + }, + "bigpoint": { + "name": "Bigpoint", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bild": { + "name": "Bild.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bilgin_pro": { + "name": "Bilgin Pro", + "categoryId": 4, + "url": "http://bilgin.pro/", + "companyId": "bilginpro" + }, + "bilin": { + "name": "Bilin", + "categoryId": 4, + "url": "http://www.bilintechnology.com/", + "companyId": "bilin" + }, + "bing_ads": { + "name": "Bing Ads", + "categoryId": 4, + "url": "https://bingads.microsoft.com/", + "companyId": "microsoft" + }, + "bing_maps": { + "name": "Bing Maps", + "categoryId": 2, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "binlayer": { + "name": "BinLayer", + "categoryId": 4, + "url": "http://binlayer.com/", + "companyId": "binlayer" + }, + "binotel": { + "name": "Binotel", + "categoryId": 4, + "url": "http://www.binotel.ua/", + "companyId": "binotel" + }, + "bisnode": { + "name": "Bisnode", + "categoryId": 4, + "url": "http://www.esendra.fi/", + "companyId": "bisnode" + }, + "bitcoin_miner": { + "name": "Bitcoin Miner", + "categoryId": 2, + "url": "http://www.bitcoinplus.com/", + "companyId": "bitcoin_plus" + }, + "bitly": { + "name": "Bitly", + "categoryId": 6, + "url": "https://bitly.com/", + "companyId": null + }, + "bitrix": { + "name": "Bitrix24", + "categoryId": 4, + "url": "https://www.bitrix24.com/", + "companyId": "bitrix24" + }, + "bizcn": { + "name": "Bizcn", + "categoryId": 4, + "url": "http://www.bizcn.com/", + "companyId": "bizcn" + }, + "blackdragon": { + "name": "BlackDragon", + "categoryId": 4, + "url": "http://www.jd.com/", + "companyId": "jing_dong" + }, + "blau.de": { + "name": "Blau", + "categoryId": 8, + "url": "https://www.blau.de/", + "companyId": null + }, + "blink_new_media": { + "name": "Blink New Media", + "categoryId": 4, + "url": "http://engagebdr.com/", + "companyId": "engage_bdr" + }, + "blis": { + "name": "Blis", + "categoryId": 6, + "url": "http://www.blis.com/index.php", + "companyId": "blis" + }, + "blogad": { + "name": "BlogAD", + "categoryId": 4, + "url": "http://www.blogad.com.tw/", + "companyId": "blogad" + }, + "blogbang": { + "name": "BlogBang", + "categoryId": 4, + "url": "http://www.blogbang.com/", + "companyId": "blogbang" + }, + "blogcatalog": { + "name": "BlogCatalog", + "categoryId": 2, + "url": "http://www.blogcatalog.com/", + "companyId": "blogcatalog" + }, + "blogcounter": { + "name": "BlogCounter", + "categoryId": 6, + "url": "http://blogcounter.com/", + "companyId": "adfire_gmbh" + }, + "blogfoster.com": { + "name": "Blogfoster", + "categoryId": 8, + "url": "http://www.blogfoster.com/", + "companyId": "blogfoster" + }, + "bloggerads": { + "name": "BloggerAds", + "categoryId": 4, + "url": "http://www.bloggerads.net/", + "companyId": "bloggerads" + }, + "blogher": { + "name": "BlogHer Ads", + "categoryId": 4, + "url": "https://www.blogher.com/", + "companyId": "penske_media_corp" + }, + "blogimg.jp": { + "name": "blogimg.jp", + "categoryId": 9, + "url": "https://line.me/", + "companyId": "line" + }, + "blogsmithmedia.com": { + "name": "blogsmithmedia.com", + "categoryId": 8, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "blogspot_com": { + "name": "blogspot.com", + "categoryId": 8, + "url": "http://www.google.com", + "companyId": "google" + }, + "bloomreach": { + "name": "BloomReach", + "categoryId": 4, + "url": "https://www.bloomreach.com/en", + "companyId": "bloomreach" + }, + "blue_cherry_group": { + "name": "Blue Cherry Group", + "categoryId": 4, + "url": "http://www.bluecherrygroup.com", + "companyId": "blue_cherry_group" + }, + "blue_seed": { + "name": "Blue Seed", + "categoryId": 4, + "url": "http://blueseed.tv/#/en/platform", + "companyId": "blue_seed" + }, + "blueconic.net": { + "name": "BlueConic Plugin", + "categoryId": 6, + "url": "https://www.blueconic.com/", + "companyId": "blueconic" + }, + "bluecore": { + "name": "Bluecore", + "categoryId": 4, + "url": "https://www.bluecore.com/", + "companyId": "triggermail" + }, + "bluekai": { + "name": "BlueKai", + "categoryId": 4, + "url": "http://www.bluekai.com/", + "companyId": "oracle" + }, + "bluelithium": { + "name": "Bluelithium", + "categoryId": 4, + "url": "http://www.bluelithium.com/", + "companyId": "verizon" + }, + "bluemetrix": { + "name": "Bluemetrix", + "categoryId": 4, + "url": "http://www.bluemetrix.ie/", + "companyId": "bluemetrix" + }, + "bluenewsupdate.info": { + "name": "bluenewsupdate.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bluestreak": { + "name": "BlueStreak", + "categoryId": 4, + "url": "http://www.bluestreak.com/", + "companyId": "dentsu_aegis_network" + }, + "bluetriangle": { + "name": "Blue Triangle", + "categoryId": 6, + "url": "https://www.bluetriangle.com/", + "companyId": "blue_triangle" + }, + "bodelen.com": { + "name": "bodelen.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "bol_affiliate_program": { + "name": "BOL Affiliate Program", + "categoryId": 4, + "url": "http://www.bol.com", + "companyId": "bol.com" + }, + "bold": { + "name": "Bold", + "categoryId": 4, + "url": "https://boldcommerce.com/", + "companyId": "bold" + }, + "boldchat": { + "name": "Boldchat", + "categoryId": 2, + "url": "http://www.boldchat.com/", + "companyId": "boldchat" + }, + "boltdns.net": { + "name": "boltdns.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bombora": { + "name": "Bombora", + "categoryId": 6, + "url": "http://bombora.com/", + "companyId": "bombora" + }, + "bongacams.com": { + "name": "bongacams.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bonial": { + "name": "Bonial Connect", + "categoryId": 2, + "url": "http://www.bonial.com/", + "companyId": null + }, + "boo-box": { + "name": "boo-box", + "categoryId": 4, + "url": "http://boo-box.com/", + "companyId": "boo-box" + }, + "booking.com": { + "name": "Booking.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "boost_box": { + "name": "Boost Box", + "categoryId": 6, + "url": "http://www.boostbox.com.br/", + "companyId": "boost_box" + }, + "booster_video": { + "name": "Booster Video", + "categoryId": 0, + "url": "https://boostervideo.ru/", + "companyId": "booster_video" + }, + "bootstrap": { + "name": "Bootstrap CDN", + "categoryId": 9, + "url": "http://getbootstrap.com/", + "companyId": "bootstrap_cdn" + }, + "borrango.com": { + "name": "borrango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "botscanner": { + "name": "BotScanner", + "categoryId": 6, + "url": "http://botscanner.com", + "companyId": "botscanner" + }, + "boudja.com": { + "name": "boudja.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bounce_exchange": { + "name": "Bounce Exchange", + "categoryId": 4, + "url": "http://bounceexchange.com", + "companyId": "bounce_exchange" + }, + "bouncex": { + "name": "BounceX", + "categoryId": 4, + "url": "https://www.bouncex.com/", + "companyId": null + }, + "box_uk": { + "name": "Box UK", + "categoryId": 6, + "url": "http://www.clickdensity.com", + "companyId": "box_uk" + }, + "boxever": { + "name": "Boxever", + "categoryId": 4, + "url": "https://www.boxever.com/", + "companyId": "boxever" + }, + "brainient": { + "name": "Brainient", + "categoryId": 4, + "url": "http://www.brainient.com/", + "companyId": "brainient" + }, + "brainsins": { + "name": "BrainSINS", + "categoryId": 4, + "url": "http://www.brainsins.com/", + "companyId": "brainsins" + }, + "branch_metrics": { + "name": "Branch", + "categoryId": 4, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc" + }, + "brand_affinity": { + "name": "Brand Affinity", + "categoryId": 4, + "url": "http://brandaffinity.net/about", + "companyId": "yoonla" + }, + "brand_networks": { + "name": "Brand Networks", + "categoryId": 4, + "url": "http://www.xa.net/", + "companyId": "brand_networks" + }, + "brandmetrics.com": { + "name": "Brandmetrics.com", + "categoryId": 4, + "url": "https://www.brandmetrics.com/", + "companyId": null + }, + "brandreach": { + "name": "BrandReach", + "categoryId": 4, + "url": "http://www.brandreach.com/", + "companyId": "brandreach" + }, + "brandscreen": { + "name": "Brandscreen", + "categoryId": 4, + "url": "http://www.brandscreen.com/", + "companyId": "zenovia" + }, + "brandwire.tv": { + "name": "BrandWire", + "categoryId": 4, + "url": "https://brandwire.tv/", + "companyId": null + }, + "branica": { + "name": "Branica", + "categoryId": 4, + "url": "http://www.branica.com/", + "companyId": "branica" + }, + "braze": { + "name": "Braze", + "categoryId": 6, + "url": "https://www.braze.com/", + "companyId": "braze_inc" + }, + "brealtime": { + "name": "EMX Digital", + "categoryId": 4, + "url": "https://emxdigital.com/", + "companyId": null + }, + "bridgetrack": { + "name": "BridgeTrack", + "categoryId": 4, + "url": "http://www.bridgetrack.com/", + "companyId": "bridgetrack" + }, + "brightcove": { + "name": "Brightcove", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightcove_player": { + "name": "Brightcove Player", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightedge": { + "name": "BrightEdge", + "categoryId": 4, + "url": "http://www.brightedge.com/", + "companyId": "brightedge" + }, + "brightfunnel": { + "name": "BrightFunnel", + "categoryId": 6, + "url": "http://www.brightfunnel.com/", + "companyId": "brightfunnel" + }, + "brightonclick.com": { + "name": "brightonclick.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "brightroll": { + "name": "BrightRoll", + "categoryId": 4, + "url": "http://www.brightroll.com/", + "companyId": "verizon" + }, + "brilig": { + "name": "Brilig", + "categoryId": 4, + "url": "http://www.brilig.com/", + "companyId": "dentsu_aegis_network" + }, + "brillen.de": { + "name": "brillen.de", + "categoryId": 8, + "url": "https://www.brillen.de/", + "companyId": null + }, + "broadstreet": { + "name": "Broadstreet", + "categoryId": 4, + "url": "http://broadstreetads.com/", + "companyId": "broadstreet" + }, + "bronto": { + "name": "Bronto", + "categoryId": 4, + "url": "http://bronto.com/", + "companyId": "bronto" + }, + "brow.si": { + "name": "Brow.si", + "categoryId": 4, + "url": "https://brow.si/", + "companyId": "brow.si" + }, + "browser-statistik": { + "name": "Browser-Statistik", + "categoryId": 6, + "url": "http://www.browser-statistik.de/", + "companyId": "browser-statistik" + }, + "browser_update": { + "name": "Browser Update", + "categoryId": 2, + "url": "http://www.browser-update.org/", + "companyId": "browser-update" + }, + "btncdn.com": { + "name": "btncdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "bubblestat": { + "name": "Bubblestat", + "categoryId": 4, + "url": "http://www.bubblestat.com/", + "companyId": "bubblestat" + }, + "buddy_media": { + "name": "Buddy Media", + "categoryId": 7, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "buffer_button": { + "name": "Buffer Button", + "categoryId": 7, + "url": "http://www.bufferapp.com/", + "companyId": "buffer" + }, + "bugherd.com": { + "name": "BugHerd", + "categoryId": 2, + "url": "https://bugherd.com", + "companyId": "bugherd" + }, + "bugsnag": { + "name": "Bugsnag", + "categoryId": 6, + "url": "https://bugsnag.com", + "companyId": "bugsnag" + }, + "bulkhentai.com": { + "name": "bulkhentai.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bumlam.com": { + "name": "bumlam.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bunchbox": { + "name": "Bunchbox", + "categoryId": 6, + "url": "https://app.bunchbox.co/login", + "companyId": "bunchbox" + }, + "burda": { + "name": "BurdaForward", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burda_digital_systems": { + "name": "Burda Digital Systems", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burst_media": { + "name": "Burst Media", + "categoryId": 4, + "url": "http://www.burstmedia.com/", + "companyId": "rhythmone" + }, + "burt": { + "name": "Burt", + "categoryId": 4, + "url": "http://www.burtcorp.com/", + "companyId": "burt" + }, + "businessonline_analytics": { + "name": "BusinessOnLine Analytics", + "categoryId": 6, + "url": "http://www.businessol.com/", + "companyId": "businessonline" + }, + "buysellads": { + "name": "BuySellAds", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "buzzadexchange.com": { + "name": "buzzadexchange.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "buzzador": { + "name": "Buzzador", + "categoryId": 7, + "url": "http://www.buzzador.com", + "companyId": "buzzador" + }, + "buzzfeed": { + "name": "BuzzFeed", + "categoryId": 2, + "url": "http://www.buzzfeed.com", + "companyId": "buzzfeed" + }, + "bwbx.io": { + "name": "Bloomberg CDN", + "categoryId": 9, + "url": "https://www.bloomberg.com/", + "companyId": null + }, + "bypass": { + "name": "Bypass", + "categoryId": 4, + "url": "http://bypass.jp/", + "companyId": "united_inc" + }, + "c1_exchange": { + "name": "C1 Exchange", + "categoryId": 4, + "url": "http://c1exchange.com/", + "companyId": "c1_exchange" + }, + "c3_metrics": { + "name": "C3 Metrics", + "categoryId": 6, + "url": "http://c3metrics.com/", + "companyId": "c3_metrics" + }, + "c8_network": { + "name": "C8 Network", + "categoryId": 4, + "url": "http://c8.net.ua/", + "companyId": "c8_network" + }, + "cackle.me": { + "name": "Cackle", + "categoryId": 3, + "url": "https://cackle.me/", + "companyId": null + }, + "cadreon": { + "name": "Cadreon", + "categoryId": 4, + "url": "http://www.cadreon.com/", + "companyId": "cadreon" + }, + "call_page": { + "name": "Call Page", + "categoryId": 2, + "url": "https://www.callpage.io/", + "companyId": "call_page" + }, + "callbackhunter": { + "name": "CallbackHunter", + "categoryId": 2, + "url": "http://callbackhunter.com/main", + "companyId": "callbackhunter" + }, + "callbox": { + "name": "CallBox", + "categoryId": 2, + "url": "http://www.centuryinteractive.com", + "companyId": "callbox" + }, + "callibri": { + "name": "Callibri", + "categoryId": 4, + "url": "https://callibri.ru/", + "companyId": "callibri" + }, + "callrail": { + "name": "CallRail", + "categoryId": 2, + "url": "http://www.callrail.com/", + "companyId": "callrail" + }, + "calltracking": { + "name": "Calltracking", + "categoryId": 2, + "url": "https://calltracking.ru", + "companyId": "calltracking" + }, + "caltat.com": { + "name": "Caltat", + "categoryId": 2, + "url": "https://caltat.com/", + "companyId": null + }, + "cam-content.com": { + "name": "Cam-Content.com", + "categoryId": 3, + "url": "https://www.cam-content.com/", + "companyId": null + }, + "camakaroda.com": { + "name": "camakaroda.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "campus_explorer": { + "name": "Campus Explorer", + "categoryId": 6, + "url": "http://www.campusexplorer.com/", + "companyId": "campus_explorer" + }, + "canddi": { + "name": "CANDDI", + "categoryId": 6, + "url": "https://www.canddi.com/", + "companyId": "canddi" + }, + "canvas": { + "name": "Canvas", + "categoryId": 2, + "url": "https://www.canvas.net/", + "companyId": null + }, + "capitaldata": { + "name": "CapitalData", + "categoryId": 6, + "url": "https://www.capitaldata.fr/", + "companyId": "highco" + }, + "captora": { + "name": "Captora", + "categoryId": 4, + "url": "http://www.captora.com/", + "companyId": "captora" + }, + "capture_media": { + "name": "Capture Media", + "categoryId": 4, + "url": "http://capturemedia.ch/", + "companyId": "capture_media" + }, + "capturly": { + "name": "Capturly", + "categoryId": 6, + "url": "http://capturly.com/", + "companyId": "capturly" + }, + "carambola": { + "name": "Carambola", + "categoryId": 4, + "url": "http://carambo.la/", + "companyId": "carambola" + }, + "carbonads": { + "name": "Carbon Ads", + "categoryId": 4, + "url": "https://www.carbonads.net/", + "companyId": "buysellads.com" + }, + "cardinal": { + "name": "Cardinal", + "categoryId": 6, + "url": "https://www.cardinalcommerce.com/", + "companyId": "visa" + }, + "cardlytics": { + "name": "Cardlytics", + "categoryId": 6, + "url": "http://www.cardlytics.com/", + "companyId": null + }, + "carrot_quest": { + "name": "Carrot Quest", + "categoryId": 6, + "url": "http://www.carrotquest.io/", + "companyId": "carrot_quest" + }, + "cartstack": { + "name": "CartStack", + "categoryId": 2, + "url": "http://cartstack.com/", + "companyId": "cartstack" + }, + "caspion": { + "name": "Caspion", + "categoryId": 6, + "url": "http://caspion.com/", + "companyId": "caspion" + }, + "castle": { + "name": "Castle", + "categoryId": 2, + "url": "https://castle.io", + "companyId": "castle" + }, + "catchpoint": { + "name": "Catchpoint", + "categoryId": 6, + "url": "http://www.catchpoint.com/", + "companyId": "catchpoint_systems" + }, + "cbox": { + "name": "Cbox", + "categoryId": 2, + "url": "http://cbox.ws", + "companyId": "cbox" + }, + "cbs_interactive": { + "name": "CBS Interactive", + "categoryId": 0, + "url": "http://www.cbsinteractive.com/", + "companyId": "cbs_interactive" + }, + "ccm_benchmark": { + "name": "CCM Benchmark", + "categoryId": 4, + "url": "http://www.ccmbenchmark.com/", + "companyId": null + }, + "cdk_digital_marketing": { + "name": "CDK Digital Marketing", + "categoryId": 4, + "url": "http://www.cobaltgroup.com", + "companyId": "cdk_digital_marketing" + }, + "cdn-net.com": { + "name": "cdn-net.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdn13.com": { + "name": "cdn13.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "cdn77": { + "name": "CDN77", + "categoryId": 9, + "url": "https://www.cdn77.com/", + "companyId": null + }, + "cdnetworks.net": { + "name": "cdnetworks.net", + "categoryId": 9, + "url": "https://www.cdnetworks.com/", + "companyId": null + }, + "cdnnetwok_xyz": { + "name": "cdnnetwok.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "cdnondemand.org": { + "name": "cdnondemand.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnsure.com": { + "name": "cdnsure.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnvideo.com": { + "name": "CDNvideo", + "categoryId": 9, + "url": "https://www.cdnvideo.com/", + "companyId": "cdnvideo" + }, + "cdnwidget.com": { + "name": "cdnwidget.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "cedexis_radar": { + "name": "Cedexis Radar", + "categoryId": 6, + "url": "http://www.cedexis.com/products_radar.html", + "companyId": "cedexis" + }, + "celebrus": { + "name": "Celebrus", + "categoryId": 6, + "url": "https://www.celebrus.com/", + "companyId": "celebrus" + }, + "celtra": { + "name": "Celtra", + "categoryId": 0, + "url": "http://www.celtra.com/", + "companyId": "celtra" + }, + "cendyn": { + "name": "Cendyn", + "categoryId": 4, + "url": "http://www.cendyn.com/", + "companyId": "cendyn" + }, + "centraltag": { + "name": "CentralTag", + "categoryId": 4, + "url": "http://www.centraltag.com/", + "companyId": "centraltag" + }, + "centro": { + "name": "Centro", + "categoryId": 4, + "url": "http://centro.net/", + "companyId": "centro" + }, + "cerberus_speed-trap": { + "name": "Cerberus Speed-Trap", + "categoryId": 6, + "url": "http://cerberusip.com/", + "companyId": "cerberus" + }, + "certainsource": { + "name": "CertainSource", + "categoryId": 4, + "url": "http://www.ewaydirect.com", + "companyId": "certainsource" + }, + "certifica_metric": { + "name": "Certifica Metric", + "categoryId": 4, + "url": "http://www.comscore.com/Products_Services/Product_Index/Certifica_Metric", + "companyId": "comscore" + }, + "certona": { + "name": "Certona", + "categoryId": 4, + "url": "http://www.certona.com/products/recommendation.php", + "companyId": "certona" + }, + "chameleon": { + "name": "Chameleon", + "categoryId": 4, + "url": "http://chameleon.ad/", + "companyId": "chamaleon" + }, + "chango": { + "name": "Chango", + "categoryId": 4, + "url": "http://www.chango.com/", + "companyId": "rubicon_project" + }, + "channel_intelligence": { + "name": "Channel Intelligence", + "categoryId": 4, + "url": "http://www.channelintelligence.com/", + "companyId": "google" + }, + "channel_pilot_solutions": { + "name": "ChannelPilot Solutions", + "categoryId": 6, + "url": "https://www.channelpilot.de/", + "companyId": null + }, + "channeladvisor": { + "name": "ChannelAdvisor", + "categoryId": 4, + "url": "http://www.channeladvisor.com/", + "companyId": "channeladvisor" + }, + "channelfinder": { + "name": "ChannelFinder", + "categoryId": 4, + "url": "http://www.kpicentral.com/", + "companyId": "kaleidoscope_promotions" + }, + "chaordic": { + "name": "Chaordic", + "categoryId": 4, + "url": "https://www.chaordic.com.br/", + "companyId": "chaordic" + }, + "chartbeat": { + "name": "ChartBeat", + "categoryId": 6, + "url": "http://chartbeat.com/", + "companyId": "chartbeat" + }, + "chaser": { + "name": "Chaser", + "categoryId": 2, + "url": "http://chaser.ru/", + "companyId": "chaser" + }, + "chat_beacon": { + "name": "Chat Beacon", + "categoryId": 2, + "url": "https://www.chatbeacon.io/", + "companyId": "chat_beacon" + }, + "chatango": { + "name": "Chatango", + "categoryId": 2, + "url": "http://www.chatango.com/", + "companyId": "chatango" + }, + "chatra": { + "name": "Chatra", + "categoryId": 2, + "url": "https://chatra.io", + "companyId": "chatra" + }, + "chaturbate.com": { + "name": "chaturbate.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "chatwing": { + "name": "ChatWing", + "categoryId": 2, + "url": "http://chatwing.com/", + "companyId": "chatwing" + }, + "checkmystats": { + "name": "CheckMyStats", + "categoryId": 4, + "url": "http://checkmystats.com.au", + "companyId": "checkmystats" + }, + "chefkoch_de": { + "name": "chefkoch.de", + "categoryId": 8, + "url": "http://chefkoch.de/", + "companyId": null + }, + "chin_media": { + "name": "Chin Media", + "categoryId": 4, + "url": "http://www.chinmedia.vn/#", + "companyId": "chin_media" + }, + "chinesean": { + "name": "ChineseAN", + "categoryId": 4, + "url": "http://www.chinesean.com/", + "companyId": "chinesean" + }, + "chitika": { + "name": "Chitika", + "categoryId": 4, + "url": "http://chitika.com/", + "companyId": "chitika" + }, + "choicestream": { + "name": "ChoiceStream", + "categoryId": 4, + "url": "http://www.choicestream.com/", + "companyId": "choicestream" + }, + "chute": { + "name": "Chute", + "categoryId": 5, + "url": "https://www.getchute.com/", + "companyId": "esw_capital" + }, + "circit": { + "name": "circIT", + "categoryId": 6, + "url": "http://www.circit.de/", + "companyId": null + }, + "circulate": { + "name": "Circulate", + "categoryId": 6, + "url": "http://circulate.com/", + "companyId": "circulate" + }, + "city_spark": { + "name": "City Spark", + "categoryId": 4, + "url": "http://www.cityspark.com/", + "companyId": "city_spark" + }, + "cityads": { + "name": "CityAds", + "categoryId": 4, + "url": "http://cityads.ru/", + "companyId": "cityads" + }, + "ciuvo.com": { + "name": "ciuvo.com", + "categoryId": 12, + "url": "https://www.ciuvo.com/", + "companyId": null + }, + "civey_widgets": { + "name": "Civey Widgets", + "categoryId": 2, + "url": "https://civey.com/", + "companyId": "civey" + }, + "civicscience.com": { + "name": "CivicScience", + "categoryId": 6, + "url": "https://civicscience.com/", + "companyId": "civicscience" + }, + "ciwebgroup": { + "name": "CIWebGroup", + "categoryId": 4, + "url": "http://www.ciwebgroup.com/", + "companyId": "ciwebgroup" + }, + "clcknads.pro": { + "name": "clcknads.pro", + "categoryId": 3, + "url": null, + "companyId": null + }, + "clear_pier": { + "name": "ClearPier", + "categoryId": 4, + "url": "http://clearpier.com/", + "companyId": "clear_pier" + }, + "clearbit.com": { + "name": "Clearbit", + "categoryId": 6, + "url": "https://clearbit.com/", + "companyId": "clearbit" + }, + "clearsale": { + "name": "clearsale", + "categoryId": 4, + "url": "https://www.clear.sale/", + "companyId": null + }, + "clearstream.tv": { + "name": "Clearstream.TV", + "categoryId": 4, + "url": "http://clearstream.tv/", + "companyId": "clearstream.tv" + }, + "clerk.io": { + "name": "Clerk.io", + "categoryId": 4, + "url": "https://clerk.io/", + "companyId": "clerk.io" + }, + "clever_push": { + "name": "Clever Push", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_push" + }, + "clever_tap": { + "name": "CleverTap", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_tap" + }, + "cleversite": { + "name": "Cleversite", + "categoryId": 2, + "url": "http://cleversite.ru/", + "companyId": "cleversite" + }, + "click360": { + "name": "Click360", + "categoryId": 6, + "url": "https://www.click360.io/", + "companyId": "click360" + }, + "click_and_chat": { + "name": "Click and Chat", + "categoryId": 2, + "url": "http://www.clickandchat.com/", + "companyId": "clickandchat" + }, + "click_back": { + "name": "Click Back", + "categoryId": 4, + "url": "http://www.clickback.com/", + "companyId": "clickback" + }, + "clickaider": { + "name": "ClickAider", + "categoryId": 4, + "url": "http://clickaider.com/", + "companyId": "clickaider" + }, + "clickbank": { + "name": "ClickBank", + "categoryId": 4, + "url": "http://www.clickbank.com/", + "companyId": "clickbank" + }, + "clickbank_proads": { + "name": "ClickBank ProAds", + "categoryId": 4, + "url": "http://www.cbproads.com/", + "companyId": "clickbank_proads" + }, + "clickbooth": { + "name": "Clickbooth", + "categoryId": 4, + "url": "http://www.clickbooth.com/", + "companyId": "clickbooth" + }, + "clickcease": { + "name": "ClickCease", + "categoryId": 2, + "url": "https://www.clickcease.com/", + "companyId": "click_cease" + }, + "clickcertain": { + "name": "ClickCertain", + "categoryId": 4, + "url": "http://www.clickcertain.com", + "companyId": "clickcertain" + }, + "clickdesk": { + "name": "ClickDesk", + "categoryId": 2, + "url": "https://www.clickdesk.com/", + "companyId": "clickdesk" + }, + "clickdimensions": { + "name": "ClickDimensions", + "categoryId": 4, + "url": "http://www.clickdimensions.com/", + "companyId": "clickdimensions" + }, + "clickequations": { + "name": "ClickEquations", + "categoryId": 4, + "url": "http://www.clickequations.com/", + "companyId": "acquisio" + }, + "clickexperts": { + "name": "ClickExperts", + "categoryId": 4, + "url": "http://clickexperts.com/corp/index.php?lang=en", + "companyId": "clickexperts" + }, + "clickforce": { + "name": "ClickForce", + "categoryId": 4, + "url": "http://www.clickforce.com.tw/", + "companyId": "clickforce" + }, + "clickinc": { + "name": "ClickInc", + "categoryId": 4, + "url": "http://www.clickinc.com", + "companyId": "clickinc" + }, + "clickintext": { + "name": "ClickInText", + "categoryId": 4, + "url": "http://www.clickintext.com/", + "companyId": "clickintext" + }, + "clickky": { + "name": "Clickky", + "categoryId": 4, + "url": "http://www.clickky.biz/", + "companyId": "clickky" + }, + "clickmeter": { + "name": "ClickMeter", + "categoryId": 4, + "url": "http://www.clickmeter.com", + "companyId": "clickmeter" + }, + "clickonometrics": { + "name": "Clickonometrics", + "categoryId": 4, + "url": "http://clickonometrics.pl/", + "companyId": "clickonometrics" + }, + "clickpoint": { + "name": "Clickpoint", + "categoryId": 4, + "url": "http://clickpoint.com/", + "companyId": "clickpoint" + }, + "clickprotector": { + "name": "ClickProtector", + "categoryId": 6, + "url": "http://www.clickprotector.com/", + "companyId": "clickprotector" + }, + "clickreport": { + "name": "ClickReport", + "categoryId": 6, + "url": "http://clickreport.com/", + "companyId": "clickreport" + }, + "clicks_thru_networks": { + "name": "Clicks Thru Networks", + "categoryId": 4, + "url": "http://www.clicksthrunetwork.com/", + "companyId": "clicksthrunetwork" + }, + "clicksor": { + "name": "Clicksor", + "categoryId": 4, + "url": "http://clicksor.com/", + "companyId": "clicksor" + }, + "clicktale": { + "name": "ClickTale", + "categoryId": 6, + "url": "http://www.clicktale.com/", + "companyId": "clicktale" + }, + "clicktripz": { + "name": "ClickTripz", + "categoryId": 4, + "url": "https://www.clicktripz.com", + "companyId": "clicktripz" + }, + "clickwinks": { + "name": "Clickwinks", + "categoryId": 4, + "url": "http://www.clickwinks.com/", + "companyId": "clickwinks" + }, + "clicky": { + "name": "Clicky", + "categoryId": 6, + "url": "http://getclicky.com/", + "companyId": "clicky" + }, + "clickyab": { + "name": "Clickyab", + "categoryId": 4, + "url": "https://www.clickyab.com/", + "companyId": "clickyab" + }, + "clicmanager": { + "name": "ClicManager", + "categoryId": 4, + "url": "http://www.clicmanager.fr/", + "companyId": "clicmanager" + }, + "clip_syndicate": { + "name": "Clip Syndicate", + "categoryId": 4, + "url": "http://www.clipsyndicate.com/", + "companyId": "clip_syndicate" + }, + "clixgalore": { + "name": "clixGalore", + "categoryId": 4, + "url": "http://www.clixgalore.com/", + "companyId": "clixgalore" + }, + "clixmetrix": { + "name": "ClixMetrix", + "categoryId": 4, + "url": "http://www.clixmetrix.com/", + "companyId": "clixmedia" + }, + "clixsense": { + "name": "ClixSense", + "categoryId": 4, + "url": "http://www.clixsense.com/", + "companyId": "clixsense" + }, + "cloud-media.fr": { + "name": "CloudMedia", + "categoryId": 4, + "url": "https://cloudmedia.fr/", + "companyId": null + }, + "cloudflare": { + "name": "CloudFlare", + "categoryId": 9, + "url": "https://www.cloudflare.com/", + "companyId": "cloudflare" + }, + "cloudimage.io": { + "name": "Cloudimage.io", + "categoryId": 9, + "url": "https://www.cloudimage.io/en/home", + "companyId": "scaleflex_sas" + }, + "cloudinary": { + "name": "Cloudinary", + "categoryId": 9, + "url": "https://cloudinary.com/", + "companyId": null + }, + "clove_network": { + "name": "Clove Network", + "categoryId": 4, + "url": "http://www.clovenetwork.com/", + "companyId": "clove_network" + }, + "clustrmaps": { + "name": "ClustrMaps", + "categoryId": 4, + "url": "http://www.clustrmaps.com/", + "companyId": "clustrmaps" + }, + "cnbc": { + "name": "CNBC", + "categoryId": 8, + "url": "https://www.cnbc.com/", + "companyId": "nbcuniversal" + }, + "cnetcontent.com": { + "name": "Cnetcontent", + "categoryId": 8, + "url": "http://cnetcontent.com/", + "companyId": "cbs_interactive" + }, + "cnstats": { + "name": "CNStats", + "categoryId": 6, + "url": "http://cnstats.ru/", + "companyId": "cnstats" + }, + "cnzz.com": { + "name": "Umeng", + "categoryId": 6, + "url": "http://www.umeng.com/", + "companyId": "umeng" + }, + "coadvertise": { + "name": "COADVERTISE", + "categoryId": 4, + "url": "http://www.coadvertise.com/", + "companyId": "coadvertise" + }, + "cobrowser": { + "name": "CoBrowser", + "categoryId": 2, + "url": "https://www.cobrowser.net/", + "companyId": "cobrowser.net" + }, + "codeonclick.com": { + "name": "codeonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cogocast": { + "name": "CogoCast", + "categoryId": 4, + "url": "http://www.cogocast.com", + "companyId": "cogocast" + }, + "coin_have": { + "name": "Coin Have", + "categoryId": 4, + "url": "https://coin-have.com/", + "companyId": "coin_have" + }, + "coin_traffic": { + "name": "Coin Traffic", + "categoryId": 2, + "url": "https://cointraffic.io/", + "companyId": "coin_traffic" + }, + "coinhive": { + "name": "Coinhive", + "categoryId": 8, + "url": "https://coinhive.com/", + "companyId": "coinhive" + }, + "coinurl": { + "name": "CoinURL", + "categoryId": 4, + "url": "https://coinurl.com/", + "companyId": "coinurl" + }, + "coll1onf.com": { + "name": "coll1onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "coll2onf.com": { + "name": "coll2onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "collarity": { + "name": "Collarity", + "categoryId": 4, + "url": "http://www.collarity.com/", + "companyId": "collarity" + }, + "columbia_online": { + "name": "Columbia Online", + "categoryId": 4, + "url": "https://www.colombiaonline.com/", + "companyId": "columbia_online" + }, + "combotag": { + "name": "ComboTag", + "categoryId": 4, + "url": "https://www.combotag.com/", + "companyId": null + }, + "comcast_technology_solutions": { + "name": "Comcast Technology Solutions", + "categoryId": 0, + "url": "https://www.comcasttechnologysolutions.com/", + "companyId": "comcast_technology_solutions" + }, + "comm100": { + "name": "Comm100", + "categoryId": 2, + "url": "http://www.comm100.com/", + "companyId": "comm100" + }, + "commerce_sciences": { + "name": "Commerce Sciences", + "categoryId": 4, + "url": "http://commercesciences.com/", + "companyId": "commerce_sciences" + }, + "commercehub": { + "name": "CommerceHub", + "categoryId": 4, + "url": "http://www.mercent.com/", + "companyId": "commercehub" + }, + "commercialvalue.org": { + "name": "commercialvalue.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "commission_junction": { + "name": "CJ Affiliate", + "categoryId": 4, + "url": "http://www.cj.com/", + "companyId": "conversant" + }, + "communicator_corp": { + "name": "Communicator Corp", + "categoryId": 4, + "url": "http://www.communicatorcorp.com/", + "companyId": "communicator_corp" + }, + "communigator": { + "name": "CommuniGator", + "categoryId": 6, + "url": "http://www.wowanalytics.co.uk/", + "companyId": "communigator" + }, + "competexl": { + "name": "CompeteXL", + "categoryId": 6, + "url": "http://www.compete.com/help/s12", + "companyId": "wpp" + }, + "complex_media_network": { + "name": "Complex Media", + "categoryId": 4, + "url": "https://www.complex.com/", + "companyId": "verizon" + }, + "comprigo": { + "name": "comprigo", + "categoryId": 12, + "url": "https://www.comprigo.com/", + "companyId": null + }, + "comscore": { + "name": "ComScore, Inc.", + "categoryId": 6, + "url": "https://www.comscore.com/", + "companyId": "comscore" + }, + "conative.de": { + "name": "CoNative", + "categoryId": 4, + "url": "http://www.conative.de/", + "companyId": null + }, + "condenastdigital.com": { + "name": "Condé Nast Digital", + "categoryId": 8, + "url": "http://www.condenast.com/", + "companyId": "conde_nast" + }, + "conduit": { + "name": "Conduit", + "categoryId": 4, + "url": "http://www.conduit.com/", + "companyId": "conduit" + }, + "confirmit": { + "name": "Confirmit", + "categoryId": 4, + "url": "http://confirmit.com/", + "companyId": "confirmit" + }, + "congstar.de": { + "name": "congstar.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "connatix.com": { + "name": "Connatix", + "categoryId": 4, + "url": "https://connatix.com/", + "companyId": "connatix" + }, + "connectad": { + "name": "ConnectAd", + "categoryId": 4, + "url": "https://connectad.io/", + "companyId": "connectad" + }, + "connecto": { + "name": "Connecto", + "categoryId": 6, + "url": "http://www.connecto.io/", + "companyId": "connecto" + }, + "connexity": { + "name": "Connexity", + "categoryId": 4, + "url": "http://www.connexity.com", + "companyId": "shopzilla" + }, + "connextra": { + "name": "Connextra", + "categoryId": 4, + "url": "http://connextra.com/", + "companyId": "connextra" + }, + "constant_contact": { + "name": "Constant Contact", + "categoryId": 4, + "url": "http://www.constantcontact.com/index.jsp", + "companyId": "constant_contact" + }, + "consumable": { + "name": "Consumable", + "categoryId": 4, + "url": "http://consumable.com/index.html", + "companyId": "giftconnect" + }, + "contact_at_once": { + "name": "Contact At Once!", + "categoryId": 2, + "url": "http://www.contactatonce.com/", + "companyId": "contact_at_once!" + }, + "contact_impact": { + "name": "Contact Impact", + "categoryId": 4, + "url": "https://www.contactimpact.de/", + "companyId": "axel_springer" + }, + "contactme": { + "name": "ContactMe", + "categoryId": 4, + "url": "http://www.contactme.com", + "companyId": "contactme" + }, + "contaxe": { + "name": "Contaxe", + "categoryId": 5, + "url": "http://www.contaxe.com/", + "companyId": "contaxe" + }, + "content.ad": { + "name": "Content.ad", + "categoryId": 4, + "url": "https://www.content.ad/", + "companyId": "content.ad" + }, + "content_insights": { + "name": "Content Insights", + "categoryId": 6, + "url": "https://contentinsights.com/", + "companyId": "content_insights" + }, + "contentexchange.me": { + "name": "Content Exchange", + "categoryId": 6, + "url": "https://www.contentexchange.me/", + "companyId": "i.r.v." + }, + "contentful_gmbh": { + "name": "Contentful GmbH", + "categoryId": 9, + "url": "https://www.contentful.com/", + "companyId": "contentful_gmbh" + }, + "contentpass": { + "name": "ContentPass", + "categoryId": 6, + "url": "https://www.contentpass.de/", + "companyId": "contentpass" + }, + "contentsquare.net": { + "name": "ContentSquare", + "categoryId": 4, + "url": "https://www.contentsquare.com/", + "companyId": "content_square" + }, + "contentwrx": { + "name": "Contentwrx", + "categoryId": 6, + "url": "http://contentwrx.com/", + "companyId": "contentwrx" + }, + "context": { + "name": "C|ON|TEXT", + "categoryId": 4, + "url": "http://c-on-text.com", + "companyId": "c_on_text" + }, + "context.ad": { + "name": "Context.ad", + "categoryId": 4, + "url": "http://contextad.pl/", + "companyId": "context.ad" + }, + "continum_net": { + "name": "continum.net", + "categoryId": 10, + "url": "http://continum.net/", + "companyId": null + }, + "contribusource": { + "name": "Contribusource", + "categoryId": 4, + "url": "https://www.contribusource.com/", + "companyId": "contribusource" + }, + "convergetrack": { + "name": "ConvergeTrack", + "categoryId": 6, + "url": "http://www.convergedirect.com/technology/convergetrack.shtml", + "companyId": "convergedirect" + }, + "conversant": { + "name": "Conversant", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "conversio": { + "name": "CM Commerce", + "categoryId": 6, + "url": "https://cm-commerce.com/", + "companyId": "conversio" + }, + "conversion_logic": { + "name": "Conversion Logic", + "categoryId": 6, + "url": "http://www.conversionlogic.com/", + "companyId": "conversion_logic" + }, + "conversionruler": { + "name": "ConversionRuler", + "categoryId": 4, + "url": "http://www.conversionruler.com/", + "companyId": "market_ruler" + }, + "conversions_box": { + "name": "Conversions Box", + "categoryId": 7, + "url": "http://www.conversionsbox.com/", + "companyId": "conversions_box" + }, + "conversions_on_demand": { + "name": "Conversions On Demand", + "categoryId": 5, + "url": "https://www.conversionsondemand.com/", + "companyId": "conversions_on_demand" + }, + "conversive": { + "name": "Conversive", + "categoryId": 4, + "url": "http://www.conversive.nl/", + "companyId": "conversive" + }, + "convert": { + "name": "Convert", + "categoryId": 6, + "url": "https://www.convert.com/", + "companyId": "convert" + }, + "convertfox": { + "name": "ConvertFox", + "categoryId": 2, + "url": "https://convertfox.com/", + "companyId": "convertfox" + }, + "convertro": { + "name": "Convertro", + "categoryId": 4, + "url": "http://www.convertro.com/", + "companyId": "verizon" + }, + "conviva": { + "name": "Conviva", + "categoryId": 6, + "url": "http://www.conviva.com/", + "companyId": "conviva" + }, + "cookie_consent": { + "name": "Cookie Consent", + "categoryId": 5, + "url": "https://silktide.com/", + "companyId": "silktide" + }, + "cookie_script": { + "name": "Cookie Script", + "categoryId": 5, + "url": "https://cookie-script.com/", + "companyId": "cookie_script" + }, + "cookiebot": { + "name": "Cookiebot", + "categoryId": 5, + "url": "https://www.cookiebot.com/en/", + "companyId": "cybot" + }, + "cookieq": { + "name": "CookieQ", + "categoryId": 5, + "url": "http://cookieq.com/CookieQ", + "companyId": "baycloud" + }, + "cooliris": { + "name": "Cooliris", + "categoryId": 2, + "url": "http://www.cooliris.com", + "companyId": "cooliris" + }, + "copacet": { + "name": "Copacet", + "categoryId": 4, + "url": "http://copacet.com/", + "companyId": "copacet" + }, + "coreaudience": { + "name": "CoreAudience", + "categoryId": 4, + "url": "http://www.redaril.com/", + "companyId": "hearst" + }, + "coremotives": { + "name": "CoreMotives", + "categoryId": 4, + "url": "http://coremotives.com/", + "companyId": "coremotives" + }, + "coull": { + "name": "Coull", + "categoryId": 4, + "url": "http://coull.com/", + "companyId": "coull" + }, + "cpm_rocket": { + "name": "CPM Rocket", + "categoryId": 4, + "url": "http://www.cpmrocket.com/", + "companyId": "cpm_rocket" + }, + "cpmprofit": { + "name": "CPMProfit", + "categoryId": 4, + "url": "http://www.cpmprofit.com/", + "companyId": "cpmprofit" + }, + "cpmstar": { + "name": "CPMStar", + "categoryId": 4, + "url": "http://www.cpmstar.com", + "companyId": "cpmstar" + }, + "cpx.to": { + "name": "Captify", + "categoryId": 4, + "url": "https://www.captify.co.uk/", + "companyId": "captify" + }, + "cq_counter": { + "name": "CQ Counter", + "categoryId": 6, + "url": "http://www.cqcounter.com/", + "companyId": "cq_counter" + }, + "cqq5id8n.com": { + "name": "cqq5id8n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cquotient.com": { + "name": "CQuotient", + "categoryId": 6, + "url": "https://www.demandware.com/#cquotient", + "companyId": "salesforce" + }, + "craftkeys": { + "name": "CraftKeys", + "categoryId": 4, + "url": "http://craftkeys.com/", + "companyId": "craftkeys" + }, + "crakmedia_network": { + "name": "Crakmedia Network", + "categoryId": 4, + "url": "http://crakmedia.com/", + "companyId": "crakmedia_network" + }, + "crankyads": { + "name": "CrankyAds", + "categoryId": 4, + "url": "http://www.crankyads.com", + "companyId": "crankyads" + }, + "crazy_egg": { + "name": "Crazy Egg", + "categoryId": 6, + "url": "http://crazyegg.com/", + "companyId": "crazy_egg" + }, + "creafi": { + "name": "Creafi", + "categoryId": 4, + "url": "http://www.creafi.com/en/home/", + "companyId": "crazy4media" + }, + "createjs": { + "name": "CreateJS", + "categoryId": 9, + "url": "https://createjs.com/", + "companyId": null + }, + "creative_commons": { + "name": "Creative Commons", + "categoryId": 8, + "url": "https://creativecommons.org/", + "companyId": "creative_commons_corp" + }, + "crimsonhexagon_com": { + "name": "Brandwatch", + "categoryId": 6, + "url": "https://www.brandwatch.com/", + "companyId": "brandwatch" + }, + "crimtan": { + "name": "Crimtan", + "categoryId": 4, + "url": "http://www.crimtan.com/", + "companyId": "crimtan" + }, + "crisp": { + "name": "Crisp", + "categoryId": 2, + "url": "https://crisp.chat/", + "companyId": "crisp" + }, + "criteo": { + "name": "Criteo", + "categoryId": 4, + "url": "http://www.criteo.com/", + "companyId": "criteo" + }, + "crm4d": { + "name": "CRM4D", + "categoryId": 6, + "url": "https://crm4d.com/", + "companyId": "crm4d" + }, + "crossengage": { + "name": "CrossEngage", + "categoryId": 6, + "url": "https://www.crossengage.io/", + "companyId": "crossengage" + }, + "crosspixel": { + "name": "Cross Pixel", + "categoryId": 4, + "url": "http://crosspixel.net/", + "companyId": "cross_pixel" + }, + "crosssell.info": { + "name": "econda Cross Sell", + "categoryId": 4, + "url": "https://www.econda.de/en/solutions/personalization/cross-sell/", + "companyId": "econda" + }, + "crossss": { + "name": "Crossss", + "categoryId": 4, + "url": "http://crossss.ru/", + "companyId": "crossss" + }, + "crowd_ignite": { + "name": "Crowd Ignite", + "categoryId": 4, + "url": "http://get.crowdignite.com/", + "companyId": "gorilla_nation_media" + }, + "crowd_science": { + "name": "Crowd Science", + "categoryId": 4, + "url": "http://www.crowdscience.com/", + "companyId": "crowd_science" + }, + "crowdprocess": { + "name": "CrowdProcess", + "categoryId": 2, + "url": "https://crowdprocess.com", + "companyId": "crowdprocess" + }, + "crowdynews": { + "name": "Crowdynews", + "categoryId": 7, + "url": "http://www.crowdynews.com/", + "companyId": "crowdynews" + }, + "crownpeak": { + "name": "Crownpeak", + "categoryId": 5, + "url": "https://www.crownpeak.com/", + "companyId": "crownpeak" + }, + "cryptoloot_miner": { + "name": "CryptoLoot Miner", + "categoryId": 4, + "url": "https://crypto-loot.com/", + "companyId": "cryptoloot" + }, + "ctnetwork": { + "name": "CTnetwork", + "categoryId": 4, + "url": "http://ctnetwork.hu/", + "companyId": "ctnetwork" + }, + "ctrlshift": { + "name": "CtrlShift", + "categoryId": 4, + "url": "http://www.adzcentral.com/", + "companyId": "ctrlshift" + }, + "cubed": { + "name": "Cubed", + "categoryId": 6, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "cuelinks": { + "name": "CueLinks", + "categoryId": 4, + "url": "http://www.cuelinks.com/", + "companyId": "cuelinks" + }, + "cup_interactive": { + "name": "Cup Interactive", + "categoryId": 4, + "url": "http://www.cupinteractive.com/", + "companyId": "cup_interactive" + }, + "curse.com": { + "name": "Curse", + "categoryId": 8, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "cursecdn.com": { + "name": "Curse CDN", + "categoryId": 9, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "customer.io": { + "name": "Customer.io", + "categoryId": 2, + "url": "http://www.customer.io/", + "companyId": "customer.io" + }, + "customerly": { + "name": "Customerly", + "categoryId": 2, + "url": "https://www.customerly.io/", + "companyId": "customerly" + }, + "cxense": { + "name": "cXense", + "categoryId": 4, + "url": "http://www.cxense.com/", + "companyId": "cxense" + }, + "cxo.name": { + "name": "Chip Analytics", + "categoryId": 6, + "url": "http://www.chip.de/", + "companyId": null + }, + "cyber_wing": { + "name": "Cyber Wing", + "categoryId": 4, + "url": "http://www.cyberwing.co.jp/", + "companyId": "cyberwing" + }, + "cybersource": { + "name": "CyberSource", + "categoryId": 6, + "url": "https://www.cybersource.com/en-gb.html", + "companyId": "visa" + }, + "cygnus": { + "name": "Cygnus", + "categoryId": 4, + "url": "http://www.cygnus.com/", + "companyId": "cygnus" + }, + "da-ads.com": { + "name": "da-ads.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dailymail.co.uk": { + "name": "Daily Mail", + "categoryId": 8, + "url": "http://www.dailymail.co.uk/home/index.html", + "companyId": "dmg_media" + }, + "dailymotion": { + "name": "Dailymotion", + "categoryId": 8, + "url": "https://vivendi.com/", + "companyId": "vivendi" + }, + "dailymotion_advertising": { + "name": "Dailymotion Advertising", + "categoryId": 4, + "url": "http://advertising.dailymotion.com/", + "companyId": "vivendi" + }, + "daisycon": { + "name": "Daisycon", + "categoryId": 4, + "url": "http://www.daisycon.com", + "companyId": "daisycon" + }, + "dantrack.net": { + "name": "DANtrack", + "categoryId": 4, + "url": "http://media.dantrack.net/privacy/", + "companyId": "dentsu_aegis_network" + }, + "darwin_marketing": { + "name": "Darwin Marketing", + "categoryId": 4, + "url": "http://www.darwinmarketing.com/", + "companyId": "darwin_marketing" + }, + "dashboard_ad": { + "name": "Dashboard Ad", + "categoryId": 4, + "url": "http://www.dashboardad.com/", + "companyId": "premium_access" + }, + "datacaciques.com": { + "name": "DataCaciques", + "categoryId": 6, + "url": "http://www.datacaciques.com/", + "companyId": null + }, + "datacoral": { + "name": "Datacoral", + "categoryId": 4, + "url": "https://datacoral.com/", + "companyId": "datacoral" + }, + "datacrushers": { + "name": "Datacrushers", + "categoryId": 6, + "url": "https://www.datacrushers.com/", + "companyId": "datacrushers" + }, + "datadome": { + "name": "DataDome", + "categoryId": 6, + "url": "https://datadome.co/", + "companyId": "datadome" + }, + "datalicious_datacollector": { + "name": "Datalicious DataCollector", + "categoryId": 6, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalicious_supertag": { + "name": "Datalicious SuperTag", + "categoryId": 5, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalogix": { + "name": "Datalogix", + "categoryId": 4, + "url": "https://www.oracle.com/corporate/acquisitions/datalogix/", + "companyId": "oracle" + }, + "datamind.ru": { + "name": "DataMind", + "categoryId": 4, + "url": "http://datamind.ru/", + "companyId": "datamind" + }, + "datatables": { + "name": "DataTables", + "categoryId": 2, + "url": "https://datatables.net/", + "companyId": null + }, + "datawrkz": { + "name": "Datawrkz", + "categoryId": 4, + "url": "http://datawrkz.com/", + "companyId": "datawrkz" + }, + "dataxpand": { + "name": "Dataxpand", + "categoryId": 4, + "url": "http://dataxpand.com/", + "companyId": "dataxpand" + }, + "dataxu": { + "name": "DataXu", + "categoryId": 4, + "url": "http://www.dataxu.com/", + "companyId": "dataxu" + }, + "datds.net": { + "name": "datds.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "datonics": { + "name": "Datonics", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "datran": { + "name": "Pulsepoint", + "categoryId": 4, + "url": "https://www.pulsepoint.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "davebestdeals.com": { + "name": "davebestdeals.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dawandastatic.com": { + "name": "Dawanda CDN", + "categoryId": 8, + "url": "https://dawanda.com/", + "companyId": null + }, + "dc_stormiq": { + "name": "DC StormIQ", + "categoryId": 4, + "url": "http://www.dc-storm.com/", + "companyId": "dc_storm" + }, + "dcbap.com": { + "name": "dcbap.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dcmn.com": { + "name": "DCMN", + "categoryId": 4, + "url": "https://www.dcmn.com/", + "companyId": null + }, + "de_persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.nl", + "companyId": "de_persgroep" + }, + "deadline_funnel": { + "name": "Deadline Funnel", + "categoryId": 6, + "url": "https://deadlinefunnel.com/", + "companyId": "deadline_funnel" + }, + "dealer.com": { + "name": "Dealer.com", + "categoryId": 6, + "url": "http://www.dealer.com/", + "companyId": "dealer.com" + }, + "decibel_insight": { + "name": "Decibel Insight", + "categoryId": 6, + "url": "https://www.decibelinsight.com/", + "companyId": "decibel_insight" + }, + "dedicated_media": { + "name": "Dedicated Media", + "categoryId": 4, + "url": "http://www.dedicatedmedia.com/", + "companyId": "dedicated_media" + }, + "deep.bi": { + "name": "Deep.BI", + "categoryId": 6, + "url": "http://www.deep.bi/#", + "companyId": "deep.bi" + }, + "deepintent.com": { + "name": "DeepIntent", + "categoryId": 4, + "url": "https://www.deepintent.com/", + "companyId": "deep_intent" + }, + "defpush.com": { + "name": "defpush.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "deichmann.com": { + "name": "deichmann.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "delacon": { + "name": "Delacon", + "categoryId": 6, + "url": "http://www.delacon.com.au/", + "companyId": "delacon" + }, + "delivr": { + "name": "Delivr", + "categoryId": 6, + "url": "http://www.percentmobile.com/", + "companyId": "delivr" + }, + "delta_projects": { + "name": "Delta Projects", + "categoryId": 4, + "url": "http://www.adaction.se/", + "companyId": "delta_projects" + }, + "deluxe": { + "name": "Deluxe", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "delve_networks": { + "name": "Delve Networks", + "categoryId": 7, + "url": "http://www.delvenetworks.com/", + "companyId": "limelight_networks" + }, + "demandbase": { + "name": "Demandbase", + "categoryId": 4, + "url": "http://www.demandbase.com/", + "companyId": "demandbase" + }, + "demandmedia": { + "name": "DemandMedia", + "categoryId": 4, + "url": "http://www.demandmedia.com", + "companyId": "leaf_group" + }, + "deqwas": { + "name": "Deqwas", + "categoryId": 6, + "url": "http://www.deqwas.com/", + "companyId": "deqwas" + }, + "devatics": { + "name": "Devatics", + "categoryId": 2, + "url": "http://www.devatics.co.uk/", + "companyId": "devatics" + }, + "developer_media": { + "name": "Developer Media", + "categoryId": 4, + "url": "http://www.developermedia.com/", + "companyId": "developer_media" + }, + "deviantart.net": { + "name": "deviantart.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dex_platform": { + "name": "DEX Platform", + "categoryId": 4, + "url": "http://blueadvertise.com/", + "companyId": "dex_platform" + }, + "dgm": { + "name": "dgm", + "categoryId": 4, + "url": "http://www.dgm-au.com/", + "companyId": "apd" + }, + "dialogtech": { + "name": "Dialogtech", + "categoryId": 6, + "url": "https://www.dialogtech.com/", + "companyId": "dialogtech" + }, + "dianomi": { + "name": "Dianomi", + "categoryId": 4, + "url": "http://www.dianomi.com/cms/", + "companyId": "dianomi" + }, + "didit_blizzard": { + "name": "Didit Blizzard", + "categoryId": 4, + "url": "http://www.didit.com/blizzard", + "companyId": "didit" + }, + "didit_maestro": { + "name": "Didit Maestro", + "categoryId": 4, + "url": "http://www.didit.com/maestro", + "companyId": "didit" + }, + "didomi": { + "name": "Didomi", + "categoryId": 5, + "url": "https://www.didomi.io/en/", + "companyId": "didomi" + }, + "digg_widget": { + "name": "Digg Widget", + "categoryId": 2, + "url": "http://digg.com/apple/Digg_Widget", + "companyId": "buysellads.com" + }, + "digicert_trust_seal": { + "name": "Digicert Trust Seal", + "categoryId": 5, + "url": "http://www.digicert.com/", + "companyId": "digicert" + }, + "digidip": { + "name": "Digidip", + "categoryId": 4, + "url": "http://www.digidip.net/", + "companyId": "digidip" + }, + "digiglitz": { + "name": "Digiglitz", + "categoryId": 6, + "url": "http://www.digiglitz.com/", + "companyId": "digiglitz" + }, + "digilant": { + "name": "Digilant", + "categoryId": 4, + "url": "https://www.digilant.com/", + "companyId": "digilant" + }, + "digioh": { + "name": "Digioh", + "categoryId": 4, + "url": "https://digioh.com/", + "companyId": null + }, + "digital.gov": { + "name": "Digital.gov", + "categoryId": 6, + "url": "https://digital.gov/", + "companyId": "us_government" + }, + "digital_control_room": { + "name": "Digital Control Room", + "categoryId": 5, + "url": "http://www.cookiereports.com/", + "companyId": "digital_control_room" + }, + "digital_nomads": { + "name": "Digital Nomads", + "categoryId": 4, + "url": "http://dnomads.net/", + "companyId": null + }, + "digital_remedy": { + "name": "Digital Remedy", + "categoryId": 4, + "url": "https://www.digitalremedy.com/", + "companyId": "digital_remedy" + }, + "digital_river": { + "name": "Digital River", + "categoryId": 4, + "url": "http://corporate.digitalriver.com", + "companyId": "digital_river" + }, + "digital_window": { + "name": "Digital Window", + "categoryId": 4, + "url": "http://www.digitalwindow.com/", + "companyId": "axel_springer" + }, + "digiteka": { + "name": "Digiteka", + "categoryId": 4, + "url": "http://digiteka.com/", + "companyId": "digiteka" + }, + "digitrust": { + "name": "DigiTrust", + "categoryId": 4, + "url": "http://www.digitru.st/", + "companyId": "iab" + }, + "dihitt_badge": { + "name": "diHITT Badge", + "categoryId": 7, + "url": "http://www.dihitt.com.br/", + "companyId": "dihitt" + }, + "dimml": { + "name": "DimML", + "categoryId": 8, + "url": null, + "companyId": null + }, + "direct_keyword_link": { + "name": "Direct Keyword Link", + "categoryId": 4, + "url": "http://www.keywordsconnect.com/", + "companyId": "direct_keyword_link" + }, + "directadvert": { + "name": "Direct/ADVERT", + "categoryId": 4, + "url": "http://www.directadvert.ru/", + "companyId": "directadvert" + }, + "directrev": { + "name": "DirectREV", + "categoryId": 4, + "url": "http://www.directrev.com/", + "companyId": "directrev" + }, + "discord": { + "name": "Discord", + "categoryId": 2, + "url": "https://discordapp.com/", + "companyId": null + }, + "display_block": { + "name": "display block", + "categoryId": 4, + "url": "https://www.displayblock.com/", + "companyId": "display_block" + }, + "disqus": { + "name": "Disqus", + "categoryId": 1, + "url": "https://disqus.com/", + "companyId": "zeta" + }, + "disqus_ads": { + "name": "Disqus Ads", + "categoryId": 4, + "url": "https://disqusads.com/", + "companyId": "zeta" + }, + "distil_tag": { + "name": "Distil Networks", + "categoryId": 5, + "url": "https://www.distilnetworks.com/", + "companyId": "distil_networks" + }, + "districtm.io": { + "name": "district m", + "categoryId": 4, + "url": "https://districtm.net/", + "companyId": "district_m" + }, + "distroscale": { + "name": "Distroscale", + "categoryId": 6, + "url": "http://www.distroscale.com/", + "companyId": "distroscale" + }, + "div.show": { + "name": "div.show", + "categoryId": 12, + "url": null, + "companyId": null + }, + "diva": { + "name": "DiVa", + "categoryId": 6, + "url": "http://www.vertriebsassistent.de/", + "companyId": "diva" + }, + "divvit": { + "name": "Divvit", + "categoryId": 6, + "url": "https://www.divvit.com/", + "companyId": "divvit" + }, + "dm2": { + "name": "DM2", + "categoryId": 4, + "url": "http://digitalmediamanagement.com/", + "companyId": "digital_media_management" + }, + "dmg_media": { + "name": "DMG Media", + "categoryId": 8, + "url": "https://www.dmgmedia.co.uk/", + "companyId": "dmgt" + }, + "dmm": { + "name": "DMM", + "categoryId": 3, + "url": "http://www.dmm.co.jp", + "companyId": "dmm.r18" + }, + "dmwd": { + "name": "DMWD", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dockvine": { + "name": "dockvine", + "categoryId": 2, + "url": "https://www.dockvine.com", + "companyId": "dockvine" + }, + "docler": { + "name": "Docler", + "categoryId": 0, + "url": "https://www.doclerholding.com/en/about/companies/33/", + "companyId": "docler_ip" + }, + "dogannet": { + "name": "Dogannet", + "categoryId": 4, + "url": "http://s.dogannet.tv/", + "companyId": "dogannet" + }, + "domodomain": { + "name": "DomoDomain", + "categoryId": 6, + "url": "http://www.domodomain.com/", + "companyId": "intelligencefocus" + }, + "donationtools": { + "name": "iRobinHood", + "categoryId": 12, + "url": "http://www.irobinhood.org", + "companyId": null + }, + "doofinder.com": { + "name": "doofinder", + "categoryId": 2, + "url": "https://www.doofinder.com/", + "companyId": null + }, + "doorbell.io": { + "name": "Doorbell.io", + "categoryId": 5, + "url": "https://doorbell.io/", + "companyId": "doorbell.io" + }, + "dotandmedia": { + "name": "DotAndMedia", + "categoryId": 4, + "url": "http://www.dotandmedia.com", + "companyId": "dotandmedia" + }, + "dotmailer": { + "name": "dotMailer", + "categoryId": 2, + "url": "http://www.dotdigitalgroup.com/", + "companyId": "dotdigital_group" + }, + "dotmetrics.net": { + "name": "Dotmetrics", + "categoryId": 6, + "url": "https://dotmetrics.net/", + "companyId": null + }, + "dotomi": { + "name": "Dotomi", + "categoryId": 4, + "url": "http://www.dotomi.com/", + "companyId": "conversant" + }, + "double.net": { + "name": "Double.net", + "categoryId": 4, + "url": "http://double.net/en/", + "companyId": "double.net" + }, + "doubleclick": { + "name": "DoubleClick", + "categoryId": 4, + "url": "http://www.doubleclick.com", + "companyId": "google" + }, + "doubleclick_ad_buyer": { + "name": "DoubleClick Ad Exchange-Buyer", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doubleclick_bid_manager": { + "name": "DoubleClick Bid Manager", + "categoryId": 4, + "url": "http://www.invitemedia.com", + "companyId": "google" + }, + "doubleclick_floodlight": { + "name": "DoubleClick Floodlight", + "categoryId": 4, + "url": "http://www.google.com/support/dfa/partner/bin/topic.py?topic=23943", + "companyId": "google" + }, + "doubleclick_spotlight": { + "name": "DoubleClick Spotlight", + "categoryId": 4, + "url": "http://www.doubleclick.com/products/richmedia", + "companyId": "google" + }, + "doubleclick_video_stats": { + "name": "Doubleclick Video Stats", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doublepimp": { + "name": "DoublePimp", + "categoryId": 3, + "url": "http://www.doublepimp.com/", + "companyId": "doublepimp" + }, + "doubleverify": { + "name": "DoubleVerify", + "categoryId": 4, + "url": "http://www.doubleverify.com/", + "companyId": "doubleverify" + }, + "dratio": { + "name": "Dratio", + "categoryId": 6, + "url": "http://www.dratio.com/", + "companyId": "dratio" + }, + "drawbridge": { + "name": "Drawbridge", + "categoryId": 4, + "url": "http://www.drawbrid.ge/", + "companyId": "drawbridge" + }, + "dreamlab.pl": { + "name": "DreamLab.pl", + "categoryId": 4, + "url": "https://www.dreamlab.pl/", + "companyId": "onet.pl" + }, + "drift": { + "name": "Drift", + "categoryId": 2, + "url": "https://www.drift.com/", + "companyId": "drift" + }, + "drip": { + "name": "Drip", + "categoryId": 2, + "url": "https://www.getdrip.com", + "companyId": "drip" + }, + "dropbox.com": { + "name": "Dropbox", + "categoryId": 2, + "url": "https://www.dropbox.com/", + "companyId": null + }, + "dsnr_media_group": { + "name": "DSNR Media Group", + "categoryId": 4, + "url": "http://www.dsnrmg.com/", + "companyId": "dsnr_media_group" + }, + "dsp_rambler": { + "name": "Rambler DSP", + "categoryId": 4, + "url": "http://dsp.rambler.ru/", + "companyId": "rambler" + }, + "dstillery": { + "name": "Dstillery", + "categoryId": 4, + "url": "https://dstillery.com/", + "companyId": "dstillery" + }, + "dtscout.com": { + "name": "DTScout", + "categoryId": 4, + "url": "http://www.dtscout.com/", + "companyId": "dtscout" + }, + "dudamobile": { + "name": "DudaMobile", + "categoryId": 4, + "url": "https://www.dudamobile.com/", + "companyId": "dudamobile" + }, + "dun_and_bradstreet": { + "name": "Dun and Bradstreet", + "categoryId": 6, + "url": "http://www.dnb.com/#", + "companyId": "dun_&_bradstreet" + }, + "dwstat.cn": { + "name": "dwstat.cn", + "categoryId": 6, + "url": "http://www.dwstat.cn/", + "companyId": "dwstat" + }, + "dynad": { + "name": "DynAd", + "categoryId": 4, + "url": "http://dynad.net/", + "companyId": "dynad" + }, + "dynadmic": { + "name": "DynAdmic", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dynamic_1001_gmbh": { + "name": "Dynamic 1001 GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dynamic_logic": { + "name": "Dynamic Logic", + "categoryId": 4, + "url": "http://www.dynamiclogic.com/", + "companyId": "millward_brown" + }, + "dynamic_yield": { + "name": "Dynamic Yield", + "categoryId": 5, + "url": "https://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynamic_yield_analytics": { + "name": "Dynamic Yield Analytics", + "categoryId": 6, + "url": "http://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynata": { + "name": "Dynata", + "categoryId": 4, + "url": "http://hottraffic.nl/en", + "companyId": "dynata" + }, + "dynatrace.com": { + "name": "Dynatrace", + "categoryId": 6, + "url": "https://www.dynatrace.com/", + "companyId": "thoma_bravo" + }, + "dyncdn.me": { + "name": "dyncdn.me", + "categoryId": 11, + "url": null, + "companyId": null + }, + "e-planning": { + "name": "e-planning", + "categoryId": 4, + "url": "http://www.e-planning.net/", + "companyId": "e-planning" + }, + "eadv": { + "name": "eADV", + "categoryId": 4, + "url": "http://eadv.it/", + "companyId": "eadv" + }, + "eanalyzer.de": { + "name": "eanalyzer.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "early_birds": { + "name": "Early Birds", + "categoryId": 4, + "url": "http://www.early-birds.fr/", + "companyId": "early_birds" + }, + "earnify": { + "name": "Earnify", + "categoryId": 4, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "earnify_tracker": { + "name": "Earnify Tracker", + "categoryId": 6, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "easyads": { + "name": "EasyAds", + "categoryId": 4, + "url": "https://easyads.bg/", + "companyId": "easyads" + }, + "easylist_club": { + "name": "easylist.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ebay": { + "name": "eBay Stats", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "ebay_korea": { + "name": "eBay Korea", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "ebay_partner_network": { + "name": "eBay Partner Network", + "categoryId": 4, + "url": "https://www.ebaypartnernetwork.com/files/hub/en-US/index.html", + "companyId": "ebay_partner_network" + }, + "ebuzzing": { + "name": "eBuzzing", + "categoryId": 4, + "url": "http://www.ebuzzing.com/", + "companyId": "ebuzzing" + }, + "echo": { + "name": "Echo", + "categoryId": 4, + "url": "http://js-kit.com/", + "companyId": "echo" + }, + "eclick": { + "name": "eClick", + "categoryId": 4, + "url": "http://eclick.vn", + "companyId": "eclick" + }, + "econda": { + "name": "Econda", + "categoryId": 6, + "url": "http://www.econda.de/", + "companyId": "econda" + }, + "ecotag": { + "name": "ecotag", + "categoryId": 4, + "url": "http://www.eco-tag.jp/", + "companyId": "ecotag" + }, + "edigitalresearch": { + "name": "eDigitalResearch", + "categoryId": 4, + "url": "http://www.edigitalresearch.com/", + "companyId": "edigitalresearch" + }, + "effective_measure": { + "name": "Effective Measure", + "categoryId": 4, + "url": "http://www.effectivemeasure.com/", + "companyId": "effective_measure" + }, + "effiliation": { + "name": "Effiliation", + "categoryId": 4, + "url": "http://www.effiliation.com/", + "companyId": "effiliation" + }, + "egain": { + "name": "eGain", + "categoryId": 2, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "egain_analytics": { + "name": "eGain Analytics", + "categoryId": 6, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "ehi-siegel_de": { + "name": "ehi-siegel.de", + "categoryId": 2, + "url": "http://ehi-siegel.de/", + "companyId": null + }, + "ekmpinpoint": { + "name": "ekmPinPoint", + "categoryId": 6, + "url": "http://ekmpinpoint.com/", + "companyId": "ekmpinpoint" + }, + "ekomi": { + "name": "eKomi", + "categoryId": 1, + "url": "http://www.ekomi.co.uk", + "companyId": "ekomi" + }, + "elastic_ad": { + "name": "Elastic Ad", + "categoryId": 4, + "url": "http://www.elasticad.com", + "companyId": "elastic_ad" + }, + "elastic_beanstalk": { + "name": "Elastic Beanstalk", + "categoryId": 6, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "elicit": { + "name": "elicit", + "categoryId": 4, + "url": "http://www.elicitsearch.com/", + "companyId": "elicit" + }, + "eloqua": { + "name": "Eloqua", + "categoryId": 4, + "url": "http://www.eloqua.com/", + "companyId": "oracle" + }, + "eluxer_net": { + "name": "eluxer.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "email_aptitude": { + "name": "Email Aptitude", + "categoryId": 4, + "url": "http://www.emailaptitude.com/", + "companyId": "email_aptitude" + }, + "email_attitude": { + "name": "Email Attitude", + "categoryId": 4, + "url": "http://us.email-attitude.com/Default.aspx", + "companyId": "1000mercis" + }, + "emarketeer": { + "name": "emarketeer", + "categoryId": 4, + "url": "http://www.emarketeer.com/", + "companyId": "emarketeer" + }, + "embed.ly": { + "name": "Embedly", + "categoryId": 6, + "url": "http://embed.ly/", + "companyId": "medium" + }, + "emediate": { + "name": "Emediate", + "categoryId": 4, + "url": "http://www.emediate.biz/", + "companyId": "cxense" + }, + "emetriq": { + "name": "emetriq", + "categoryId": 4, + "url": "http://www.emetriq.com", + "companyId": "emetriq" + }, + "emma": { + "name": "Emma", + "categoryId": 4, + "url": "http://myemma.com/", + "companyId": "emma" + }, + "emnet": { + "name": "eMnet", + "categoryId": 4, + "url": "http://www.emnet.co.kr", + "companyId": "emnet" + }, + "empathy": { + "name": "Empathy", + "categoryId": 4, + "url": "http://www.colbenson.com", + "companyId": "empathy" + }, + "emsmobile.de": { + "name": "EMS Mobile", + "categoryId": 8, + "url": "http://www.emsmobile.com/", + "companyId": null + }, + "encore_metrics": { + "name": "Encore Metrics", + "categoryId": 4, + "url": "http://sitecompass.com", + "companyId": "flashtalking" + }, + "enecto_analytics": { + "name": "Enecto Analytics", + "categoryId": 6, + "url": "http://www.enecto.com/en/", + "companyId": "enecto" + }, + "engage_sciences": { + "name": "Engage Sciences", + "categoryId": 6, + "url": "http://www.engagesciences.com/", + "companyId": "engagesciences" + }, + "engageya_widget": { + "name": "Engageya Widget", + "categoryId": 4, + "url": "http://www.engageya.com/home/", + "companyId": "engageya" + }, + "engagio": { + "name": "Engagio", + "categoryId": 6, + "url": "https://www.engagio.com/", + "companyId": "engagio" + }, + "engineseeker": { + "name": "EngineSeeker", + "categoryId": 4, + "url": "http://www.engineseeker.com/", + "companyId": "engineseeker" + }, + "enquisite": { + "name": "Enquisite", + "categoryId": 4, + "url": "http://www.enquisite.com/", + "companyId": "inboundwriter" + }, + "enreach": { + "name": "Enreach", + "categoryId": 4, + "url": "https://enreach.me/", + "companyId": "enreach" + }, + "ensemble": { + "name": "Ensemble", + "categoryId": 4, + "url": "http://www.tumri.com", + "companyId": "ensemble" + }, + "ensighten": { + "name": "Ensighten", + "categoryId": 5, + "url": "http://www.ensighten.com", + "companyId": "ensighten" + }, + "envolve": { + "name": "Envolve", + "categoryId": 2, + "url": "https://www.envolve.com/", + "companyId": "envolve" + }, + "envybox": { + "name": "Envybox", + "categoryId": 2, + "url": "https://envybox.io/", + "companyId": "envybox" + }, + "eperflex": { + "name": "Eperflex", + "categoryId": 4, + "url": "https://eperflex.com/", + "companyId": "ividence" + }, + "epic_game_ads": { + "name": "Epic Game Ads", + "categoryId": 4, + "url": "http://www.epicgameads.com/", + "companyId": "epic_game_ads" + }, + "epic_marketplace": { + "name": "Epic Marketplace", + "categoryId": 4, + "url": "http://www.trafficmarketplace.com/", + "companyId": "epic_advertising" + }, + "epom": { + "name": "Epom", + "categoryId": 4, + "url": "http://epom.com/", + "companyId": "epom" + }, + "epoq": { + "name": "epoq", + "categoryId": 2, + "url": "http://www.epoq.de/", + "companyId": "epoq" + }, + "eprice": { + "name": "ePrice", + "categoryId": 4, + "url": "http://banzaiadv.it/", + "companyId": "eprice" + }, + "eproof": { + "name": "eProof", + "categoryId": 6, + "url": "http://www.eproof.com/", + "companyId": "eproof" + }, + "eqs_group": { + "name": "EQS Group", + "categoryId": 6, + "url": "https://www.eqs.com/", + "companyId": "eqs_group" + }, + "eqworks": { + "name": "EQWorks", + "categoryId": 4, + "url": "http://eqads.com", + "companyId": "eq_works" + }, + "eroadvertising": { + "name": "EroAdvertising", + "categoryId": 3, + "url": "http://www.ero-advertising.com/", + "companyId": "ero_advertising" + }, + "errorception": { + "name": "Errorception", + "categoryId": 6, + "url": "http://errorception.com/", + "companyId": "errorception" + }, + "eshopcomp.com": { + "name": "eshopcomp.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "espn_cdn": { + "name": "ESPN CDN", + "categoryId": 9, + "url": "http://www.espn.com/", + "companyId": "disney" + }, + "esprit.de": { + "name": "esprit.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "estat": { + "name": "eStat", + "categoryId": 6, + "url": "http://www.mediametrie-estat.com/", + "companyId": "mediametrie" + }, + "etag": { + "name": "etag", + "categoryId": 4, + "url": "http://etagdigital.com.br/", + "companyId": "etag" + }, + "etahub.com": { + "name": "etahub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "etarget": { + "name": "Etarget", + "categoryId": 4, + "url": "http://etargetnet.com/", + "companyId": "etarget" + }, + "ethnio": { + "name": "Ethnio", + "categoryId": 4, + "url": "http://ethn.io/", + "companyId": "ethnio" + }, + "etology": { + "name": "Etology", + "categoryId": 4, + "url": "http://www.etology.com", + "companyId": "etology" + }, + "etp": { + "name": "ETP", + "categoryId": 6, + "url": "https://www.etpgroup.com", + "companyId": "etp" + }, + "etracker": { + "name": "etracker", + "categoryId": 6, + "url": "http://www.etracker.com/en/", + "companyId": "etracker_gmbh" + }, + "etrigue": { + "name": "eTrigue", + "categoryId": 4, + "url": "http://www.etrigue.com/", + "companyId": "etrigue" + }, + "etsystatic": { + "name": "Etsy CDN", + "categoryId": 9, + "url": "https://www.etsy.com/", + "companyId": "etsy" + }, + "eulerian": { + "name": "Eulerian", + "categoryId": 6, + "url": "https://www.eulerian.com/", + "companyId": "eulerian" + }, + "euroads": { + "name": "Euroads", + "categoryId": 4, + "url": "http://euroads.com/en/", + "companyId": "euroads" + }, + "europecash": { + "name": "Europecash", + "categoryId": 4, + "url": "https://www.europacash.com/", + "companyId": "europacash" + }, + "euroweb_counter": { + "name": "Euroweb Counter", + "categoryId": 4, + "url": "http://www.euroweb.de/", + "companyId": "euroweb" + }, + "evergage.com": { + "name": "Evergage", + "categoryId": 2, + "url": "https://www.evergage.com", + "companyId": "evergage" + }, + "everstring": { + "name": "Everstring", + "categoryId": 6, + "url": "http://www.everstring.com/", + "companyId": "everstring" + }, + "everyday_health": { + "name": "Everyday Health", + "categoryId": 7, + "url": "http://www.everydayhealth.com/", + "companyId": "everyday_health" + }, + "evidon": { + "name": "Evidon", + "categoryId": 5, + "url": "https://www.evidon.com/", + "companyId": "crownpeak" + }, + "evisit_analyst": { + "name": "eVisit Analyst", + "categoryId": 4, + "url": "http://www.evisitanalyst.com", + "companyId": "evisit_analyst" + }, + "exact_drive": { + "name": "Exact Drive", + "categoryId": 4, + "url": "http://www.exactdrive.com/", + "companyId": "exact_drive" + }, + "exactag": { + "name": "Exactag", + "categoryId": 6, + "url": "http://www.exactag.com", + "companyId": "exactag" + }, + "exelate": { + "name": "eXelate", + "categoryId": 4, + "url": "http://www.exelate.com/", + "companyId": "nielsen" + }, + "exitjunction": { + "name": "ExitJunction", + "categoryId": 4, + "url": "https://secure.exitjunction.com", + "companyId": "exitjunction" + }, + "exoclick": { + "name": "ExoClick", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "exoticads.com": { + "name": "exoticads", + "categoryId": 3, + "url": "https://exoticads.com/welcome/", + "companyId": null + }, + "expedia": { + "name": "Expedia", + "categoryId": 8, + "url": "https://www.trvl-px.com/", + "companyId": "iac_apps" + }, + "experian": { + "name": "Experian", + "categoryId": 8, + "url": "https://www.experian.com/", + "companyId": "experian_inc" + }, + "experian_marketing_services": { + "name": "Experian Marketing Services", + "categoryId": 4, + "url": "http://www.experian.com/", + "companyId": "experian_inc" + }, + "expo-max": { + "name": "expo-MAX", + "categoryId": 4, + "url": "http://expo-max.com/", + "companyId": "expo-max" + }, + "expose_box": { + "name": "Expose Box", + "categoryId": 4, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "expose_box_widgets": { + "name": "Expose Box Widgets", + "categoryId": 2, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "express.co.uk": { + "name": "express.co.uk", + "categoryId": 8, + "url": "https://www.express.co.uk/", + "companyId": null + }, + "expressvpn": { + "name": "ExpressVPN", + "categoryId": 2, + "url": "https://www.expressvpn.com/", + "companyId": "expressvpn" + }, + "extreme_tracker": { + "name": "eXTReMe Tracker", + "categoryId": 6, + "url": "http://www.extremetracking.com/", + "companyId": "extreme_digital" + }, + "eye_newton": { + "name": "Eye Newton", + "categoryId": 2, + "url": "http://eyenewton.ru/", + "companyId": "eyenewton" + }, + "eyeota": { + "name": "Eyeota", + "categoryId": 4, + "url": "http://www.eyeota.com/", + "companyId": "eyeota" + }, + "eyereturnmarketing": { + "name": "Eyereturn Marketing", + "categoryId": 4, + "url": "https://eyereturnmarketing.com/", + "companyId": "torstar_corp" + }, + "eyeview": { + "name": "Eyeview", + "categoryId": 4, + "url": "http://www.eyeviewdigital.com/", + "companyId": "eyeview" + }, + "ezakus": { + "name": "Ezakus", + "categoryId": 4, + "url": "http://www.ezakus.com/", + "companyId": "np6" + }, + "f11-ads.com": { + "name": "Factor Eleven", + "categoryId": 4, + "url": null, + "companyId": null + }, + "facebook": { + "name": "Facebook", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "facebook" + }, + "facebook_beacon": { + "name": "Facebook Beacon", + "categoryId": 7, + "url": "http://www.facebook.com/beacon/faq.php", + "companyId": "facebook" + }, + "facebook_cdn": { + "name": "Facebook CDN", + "categoryId": 9, + "url": "https://www.facebook.com", + "companyId": "facebook" + }, + "facebook_connect": { + "name": "Facebook Connect", + "categoryId": 6, + "url": "https://developers.facebook.com/connect.php", + "companyId": "facebook" + }, + "facebook_conversion_tracking": { + "name": "Facebook Conversion Tracking", + "categoryId": 4, + "url": "http://www.facebook.com/", + "companyId": "facebook" + }, + "facebook_custom_audience": { + "name": "Facebook Custom Audience", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "facebook" + }, + "facebook_graph": { + "name": "Facebook Social Graph", + "categoryId": 7, + "url": "https://developers.facebook.com/docs/reference/api/", + "companyId": "facebook" + }, + "facebook_impressions": { + "name": "Facebook Impressions", + "categoryId": 4, + "url": "https://www.facebook.com/", + "companyId": "facebook" + }, + "facebook_social_plugins": { + "name": "Facebook Social Plugins", + "categoryId": 7, + "url": "https://developers.facebook.com/plugins", + "companyId": "facebook" + }, + "facetz.dca": { + "name": "Facetz.DCA", + "categoryId": 4, + "url": "http://facetz.net", + "companyId": "dca" + }, + "facilitate_digital": { + "name": "Facilitate Digital", + "categoryId": 4, + "url": "http://www.facilitatedigital.com/", + "companyId": "adslot" + }, + "faktor.io": { + "name": "faktor.io", + "categoryId": 6, + "url": "https://faktor.io/", + "companyId": "faktor.io" + }, + "fancy_widget": { + "name": "Fancy Widget", + "categoryId": 7, + "url": "http://www.thefancy.com/", + "companyId": "fancy" + }, + "fanplayr": { + "name": "Fanplayr", + "categoryId": 4, + "url": "http://www.fanplayr.com/", + "companyId": "fanplayr" + }, + "fap.to": { + "name": "Imagefap", + "categoryId": 8, + "url": null, + "companyId": null + }, + "fastly_insights": { + "name": "Fastly Insights", + "categoryId": 6, + "url": "https://insights.fastlylabs.com/", + "companyId": "fastly" + }, + "fastlylb.net": { + "name": "Fastly", + "categoryId": 9, + "url": "https://www.fastly.com/", + "companyId": "fastly" + }, + "fastpic.ru": { + "name": "FastPic", + "categoryId": 10, + "url": "http://fastpic.ru/", + "companyId": "fastpic" + }, + "federated_media": { + "name": "Federated Media", + "categoryId": 4, + "url": "http://www.federatedmedia.net/", + "companyId": "hyfn" + }, + "feedbackify": { + "name": "Feedbackify", + "categoryId": 2, + "url": "http://www.feedbackify.com/", + "companyId": "feedbackify" + }, + "feedburner.com": { + "name": "FeedBurner", + "categoryId": 4, + "url": "https://feedburner.com", + "companyId": "google" + }, + "feedify": { + "name": "Feedify", + "categoryId": 7, + "url": "http://feedify.de/", + "companyId": "feedify" + }, + "feedjit": { + "name": "Feedjit", + "categoryId": 4, + "url": "http://feedjit.com/", + "companyId": "feedjit" + }, + "feedperfect": { + "name": "FeedPerfect", + "categoryId": 4, + "url": "http://www.feedperfect.com/", + "companyId": "feedperfect" + }, + "feedsportal": { + "name": "Feedsportal", + "categoryId": 4, + "url": "http://www.mediafed.com/", + "companyId": "mediafed" + }, + "feefo": { + "name": "Feefo", + "categoryId": 2, + "url": "http://www.feefo.com/web/en/us/", + "companyId": "feefo" + }, + "fidelity_media": { + "name": "Fidelity Media", + "categoryId": 4, + "url": "http://fidelity-media.com/", + "companyId": "fidelity_media" + }, + "fiksu": { + "name": "Fiksu", + "categoryId": 4, + "url": "https://fiksu.com/", + "companyId": "noosphere" + }, + "filament.io": { + "name": "Filament.io", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "fileserve": { + "name": "FileServe", + "categoryId": 10, + "url": "http://fileserve.com/", + "companyId": "fileserve" + }, + "financeads": { + "name": "FinanceADs", + "categoryId": 4, + "url": "https://www.financeads.net/", + "companyId": "financeads_gmbh_&_co._kg" + }, + "financial_content": { + "name": "Financial Content", + "categoryId": 4, + "url": "http://www.financialcontent.com", + "companyId": "financial_content" + }, + "findizer.fr": { + "name": "Findizer", + "categoryId": 8, + "url": "http://www.findizer.fr/", + "companyId": null + }, + "findologic.com": { + "name": "Findologic", + "categoryId": 2, + "url": "https://www.findologic.com/", + "companyId": "findologic" + }, + "firebaseio.com": { + "name": "Firebase", + "categoryId": 8, + "url": "https://firebase.google.com/", + "companyId": "google" + }, + "first_impression": { + "name": "First Impression", + "categoryId": 4, + "url": "http://www.firstimpression.io", + "companyId": "first_impression" + }, + "fit_analytics": { + "name": "Fit Analytics", + "categoryId": 6, + "url": "http://www.fitanalytics.com/", + "companyId": "fit_analytics" + }, + "fivetran": { + "name": "Fivetran", + "categoryId": 6, + "url": "https://fivetran.com/", + "companyId": "fivetran" + }, + "flag_ads": { + "name": "Flag Ads", + "categoryId": 4, + "url": "http://www.flagads.net/", + "companyId": "flag_ads" + }, + "flag_counter": { + "name": "Flag Counter", + "categoryId": 4, + "url": "http://flagcounter.com/", + "companyId": "flag_counter" + }, + "flashtalking": { + "name": "Flashtalking", + "categoryId": 4, + "url": "http://www.flashtalking.com/", + "companyId": "flashtalking" + }, + "flattr_button": { + "name": "Flattr Button", + "categoryId": 7, + "url": "http://flattr.com/", + "companyId": "flattr" + }, + "flexoffers": { + "name": "FlexOffers", + "categoryId": 4, + "url": "http://www.flexoffers.com/", + "companyId": "flexoffers.com" + }, + "flickr_badge": { + "name": "Flickr Badge", + "categoryId": 7, + "url": "http://www.flickr.com/", + "companyId": "smugmug" + }, + "flipboard": { + "name": "Flipboard", + "categoryId": 6, + "url": "http://www.flipboard.com/", + "companyId": "flipboard" + }, + "flite": { + "name": "Flite", + "categoryId": 4, + "url": "http://www.flite.com/", + "companyId": "flite" + }, + "flixcdn.com": { + "name": "flixcdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "flixmedia": { + "name": "Flixmedia", + "categoryId": 8, + "url": "https://flixmedia.eu", + "companyId": "flixmedia" + }, + "flocktory.com": { + "name": "Flocktory", + "categoryId": 6, + "url": "https://www.flocktory.com/", + "companyId": "flocktory" + }, + "flowplayer": { + "name": "Flowplayer", + "categoryId": 4, + "url": "https://flowplayer.org/", + "companyId": "flowplayer" + }, + "fluct": { + "name": "Fluct", + "categoryId": 4, + "url": "https://corp.fluct.jp/", + "companyId": "fluct" + }, + "fluent": { + "name": "Fluent", + "categoryId": 4, + "url": "http://www.fluentco.com/", + "companyId": "fluent" + }, + "fluid": { + "name": "Fluid", + "categoryId": 4, + "url": "http://www.8thbridge.com/", + "companyId": "fluid" + }, + "fluidads": { + "name": "FluidAds", + "categoryId": 4, + "url": "http://www.fluidads.co/", + "companyId": "fluidads" + }, + "fluidsurveys": { + "name": "FluidSurveys", + "categoryId": 2, + "url": "http://fluidsurveys.com/", + "companyId": "fluidware" + }, + "flurry": { + "name": "Flurry", + "categoryId": 101, + "url": "http://www.flurry.com/", + "companyId": "verizon", + "source": "AdGuard" + }, + "flxone": { + "name": "FLXONE", + "categoryId": 4, + "url": "http://www.flxone.com/", + "companyId": "flxone" + }, + "flyertown": { + "name": "Flyertown", + "categoryId": 6, + "url": "http://www.flyertown.ca/", + "companyId": "flyertown" + }, + "fmadserving": { + "name": "FMAdserving", + "categoryId": 4, + "url": "http://www.fmadserving.dk/", + "companyId": "fm_adserving" + }, + "fonbet": { + "name": "Fonbet", + "categoryId": 6, + "url": "https://www.fonbet.ru", + "companyId": "fonbet" + }, + "fonecta": { + "name": "Fonecta", + "categoryId": 2, + "url": "http://www.fonecta.com/", + "companyId": "fonecta" + }, + "fontawesome_com": { + "name": "fontawesome.com", + "categoryId": 9, + "url": "http://fontawesome.com/", + "companyId": null + }, + "foodie_blogroll": { + "name": "Foodie Blogroll", + "categoryId": 7, + "url": "http://www.foodieblogroll.com", + "companyId": "foodie_blogroll" + }, + "footprint": { + "name": "Footprint", + "categoryId": 4, + "url": "http://www.footprintlive.com/", + "companyId": "opentracker" + }, + "footprintdns.com": { + "name": "Footprint DNS", + "categoryId": 11, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "forcetrac": { + "name": "ForceTrac", + "categoryId": 2, + "url": "http://www.forcetrac.com/", + "companyId": "force_marketing" + }, + "forensiq": { + "name": "Forensiq", + "categoryId": 4, + "url": "http://www.cpadetective.com/", + "companyId": "impact" + }, + "foresee": { + "name": "ForeSee", + "categoryId": 5, + "url": "https://www.foresee.com/", + "companyId": "foresee_results" + }, + "formisimo": { + "name": "Formisimo", + "categoryId": 4, + "url": "https://www.formisimo.com/", + "companyId": "formisimo" + }, + "forter": { + "name": "Forter", + "categoryId": 4, + "url": "https://www.forter.com/", + "companyId": "forter" + }, + "fortlachanhecksof.info": { + "name": "fortlachanhecksof.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "foursquare_widget": { + "name": "Foursquare Widget", + "categoryId": 4, + "url": "https://foursquare.com/", + "companyId": "foursquare" + }, + "fout.jp": { + "name": "FreakOut", + "categoryId": 4, + "url": "https://www.fout.co.jp/", + "companyId": "freakout" + }, + "fox_audience_network": { + "name": "Fox Audience Network", + "categoryId": 4, + "url": "https://publishers.foxaudiencenetwork.com/", + "companyId": "fox_audience_network" + }, + "foxnews_static": { + "name": "Fox News CDN", + "categoryId": 9, + "url": "http://www.foxnews.com/", + "companyId": "fox_news" + }, + "foxpush": { + "name": "FoxPush", + "categoryId": 4, + "url": "https://www.foxpush.com/", + "companyId": "foxpush" + }, + "foxydeal_com": { + "name": "foxydeal.com", + "categoryId": 12, + "url": "https://www.foxydeal.de", + "companyId": null + }, + "fraudlogix": { + "name": "FraudLogix", + "categoryId": 4, + "url": "https://www.fraudlogix.com/", + "companyId": null + }, + "free_counter": { + "name": "Free Counter", + "categoryId": 6, + "url": "http://www.statcounterfree.com/", + "companyId": "free_counter" + }, + "free_online_users": { + "name": "Free Online Users", + "categoryId": 6, + "url": "http://www.freeonlineusers.com", + "companyId": "free_online_users" + }, + "free_pagerank": { + "name": "Free PageRank", + "categoryId": 6, + "url": "http://www.free-pagerank.com/", + "companyId": "free_pagerank" + }, + "freedom_mortgage": { + "name": "Freedom Mortgage", + "categoryId": 6, + "url": "https://www.freedommortgage.com/", + "companyId": "freedom_mortgage" + }, + "freegeoip_net": { + "name": "freegeoip.net", + "categoryId": 6, + "url": "http://freegeoip.net/", + "companyId": null + }, + "freenet_de": { + "name": "freenet.de", + "categoryId": 4, + "url": "http://freenet.de/", + "companyId": "debitel" + }, + "freewheel": { + "name": "FreeWheel", + "categoryId": 4, + "url": "http://www.freewheel.tv/", + "companyId": "comcast" + }, + "fresh8": { + "name": "Fresh8", + "categoryId": 6, + "url": "http://fresh8gaming.com/", + "companyId": "fresh_8_gaming" + }, + "freshdesk": { + "name": "Freshdesk", + "categoryId": 2, + "url": "http://www.freshdesk.com", + "companyId": "freshdesk" + }, + "freshplum": { + "name": "Freshplum", + "categoryId": 4, + "url": "https://freshplum.com/", + "companyId": "freshplum" + }, + "friendbuy": { + "name": "FriendBuy", + "categoryId": 6, + "url": "https://www.friendbuy.com", + "companyId": "friendbuy" + }, + "friendfeed": { + "name": "FriendFeed", + "categoryId": 7, + "url": "http://friendfeed.com/", + "companyId": "facebook" + }, + "friendfinder_network": { + "name": "FriendFinder Network", + "categoryId": 3, + "url": "http://www.ffn.com/", + "companyId": "friendfinder_networks" + }, + "frosmo_optimizer": { + "name": "Frosmo Optimizer", + "categoryId": 4, + "url": "http://frosmo.com/", + "companyId": "frosmo" + }, + "fruitflan": { + "name": "FruitFlan", + "categoryId": 4, + "url": "http://flan-tech.com/", + "companyId": "keytiles" + }, + "fstrk.net": { + "name": "24metrics Fraudshield", + "categoryId": 6, + "url": "https://24metrics.com/", + "companyId": "24metrics" + }, + "fuelx": { + "name": "FuelX", + "categoryId": 4, + "url": "http://fuelx.com/", + "companyId": "fuelx" + }, + "fullstory": { + "name": "FullStory", + "categoryId": 6, + "url": "http://fullstory.com", + "companyId": "fullstory" + }, + "funnelytics": { + "name": "Funnelytics", + "categoryId": 6, + "url": "https://funnelytics.io/", + "companyId": "funnelytics" + }, + "fyber": { + "name": "Fyber", + "categoryId": 4, + "url": "https://www.fyber.com/", + "companyId": "fyber" + }, + "ga_audiences": { + "name": "GA Audiences", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "game_advertising_online": { + "name": "Game Advertising Online", + "categoryId": 4, + "url": "http://www.game-advertising-online.com/", + "companyId": "game_advertising_online" + }, + "gamedistribution.com": { + "name": "Gamedistribution.com", + "categoryId": 8, + "url": "http://gamedistribution.com/", + "companyId": null + }, + "gamerdna": { + "name": "gamerDNA", + "categoryId": 7, + "url": "http://www.gamerdnamedia.com/", + "companyId": "gamerdna_media" + }, + "gannett": { + "name": "Gannett Media", + "categoryId": 0, + "url": "https://www.gannett.com/", + "companyId": "gannett_digital_media_network" + }, + "gaug.es": { + "name": "Gaug.es", + "categoryId": 6, + "url": "http://get.gaug.es/", + "companyId": "euroweb" + }, + "gazprom-media_digital": { + "name": "Gazprom-Media Digital", + "categoryId": 0, + "url": "http://www.gpm-digital.com/", + "companyId": "gazprom-media_digital" + }, + "gb-world": { + "name": "GB-World", + "categoryId": 7, + "url": "http://www.gb-world.net/", + "companyId": "gb-world" + }, + "gdeslon": { + "name": "GdeSlon", + "categoryId": 4, + "url": "http://www.gdeslon.ru/", + "companyId": "gdeslon" + }, + "gdm_digital": { + "name": "GDM Digital", + "categoryId": 4, + "url": "http://www.gdmdigital.com/", + "companyId": "ve_interactive" + }, + "geeen": { + "name": "Geeen", + "categoryId": 6, + "url": "https://www.geeen.co.jp/", + "companyId": "geeen" + }, + "gemius": { + "name": "Gemius", + "categoryId": 4, + "url": "http://www.gemius.com", + "companyId": "gemius_sa" + }, + "generaltracking_de": { + "name": "generaltracking.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "genesis": { + "name": "Genesis", + "categoryId": 4, + "url": "http://genesismedia.com/", + "companyId": "genesis_media" + }, + "geniee": { + "name": "GENIEE", + "categoryId": 4, + "url": "http://geniee.co.jp/", + "companyId": null + }, + "genius": { + "name": "Genius", + "categoryId": 6, + "url": "http://www.genius.com/", + "companyId": "genius" + }, + "genoo": { + "name": "Genoo", + "categoryId": 4, + "url": "http://www.genoo.com/", + "companyId": "genoo" + }, + "geoads": { + "name": "GeoAds", + "categoryId": 4, + "url": "http://www.geoads.com", + "companyId": "geoads" + }, + "geolify": { + "name": "Geolify", + "categoryId": 4, + "url": "http://geolify.com/", + "companyId": "geolify" + }, + "geoplugin": { + "name": "geoPlugin", + "categoryId": 6, + "url": "http://www.geoplugin.com/", + "companyId": "geoplugin" + }, + "geotrust": { + "name": "GeoTrust", + "categoryId": 5, + "url": "http://www.geotrust.com/", + "companyId": "symantec" + }, + "geovisite": { + "name": "Geovisite", + "categoryId": 6, + "url": "http://www.geovisite.com/", + "companyId": "geovisite" + }, + "gestionpub": { + "name": "GestionPub", + "categoryId": 4, + "url": "http://www.gestionpub.com/", + "companyId": "gestionpub" + }, + "get_response": { + "name": "Get Response", + "categoryId": 2, + "url": "https://www.getresponse.com/?marketing_gv=v2", + "companyId": "getresponse" + }, + "get_site_control": { + "name": "Get Site Control", + "categoryId": 4, + "url": "https://getsitecontrol.com/", + "companyId": "getsitecontrol" + }, + "getconversion": { + "name": "GetConversion", + "categoryId": 2, + "url": "http://www.getconversion.net/", + "companyId": "getconversion" + }, + "getglue": { + "name": "GetGlue", + "categoryId": 0, + "url": "http://getglue.com", + "companyId": "telfie" + }, + "getintent": { + "name": "GetIntent", + "categoryId": 4, + "url": "http://www.getintent.com/", + "companyId": "getintent" + }, + "getkudos": { + "name": "GetKudos", + "categoryId": 1, + "url": "https://www.getkudos.me/", + "companyId": "zendesk" + }, + "getmyad": { + "name": "GetMyAd", + "categoryId": 4, + "url": "http://yottos.com", + "companyId": "yottos" + }, + "getsatisfaction": { + "name": "GetSatisfaction", + "categoryId": 1, + "url": "http://getsatisfaction.com/", + "companyId": "get_satisfaction" + }, + "gettyimages": { + "name": "Getty Images", + "categoryId": 8, + "url": "https://www.gettyimages.com/", + "companyId": null + }, + "gfk": { + "name": "GfK", + "categoryId": 4, + "url": "http://nurago.com/", + "companyId": "gfk_nurago" + }, + "gfycat.com": { + "name": "gfycat", + "categoryId": 7, + "url": "https://gfycat.com/", + "companyId": null + }, + "giant_realm": { + "name": "Giant Realm", + "categoryId": 4, + "url": "http://corp.giantrealm.com/", + "companyId": "giant_realm" + }, + "giantmedia": { + "name": "GiantMedia", + "categoryId": 4, + "url": "http://giantmedia.com/", + "companyId": "adknowledge" + }, + "giga": { + "name": "Giga", + "categoryId": 4, + "url": "https://gigaonclick.com", + "companyId": "giga" + }, + "gigya": { + "name": "Gigya", + "categoryId": 6, + "url": "https://www.sap.com/index.html", + "companyId": "sap" + }, + "gigya_beacon": { + "name": "Gigya Beacon", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_socialize": { + "name": "Gigya Socialize", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_toolbar": { + "name": "Gigya Toolbar", + "categoryId": 2, + "url": "http://www.gigya.com/", + "companyId": "sap" + }, + "giosg": { + "name": "Giosg", + "categoryId": 6, + "url": "https://www.giosg.com/", + "companyId": "giosg" + }, + "giphy.com": { + "name": "Giphy", + "categoryId": 7, + "url": "https://giphy.com/", + "companyId": null + }, + "giraff.io": { + "name": "Giraff.io", + "categoryId": 4, + "url": "https://www.giraff.io/", + "companyId": null + }, + "github": { + "name": "GitHub", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "github" + }, + "github_apps": { + "name": "GitHub Apps", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "github" + }, + "github_pages": { + "name": "Github Pages", + "categoryId": 10, + "url": "https://pages.github.com/", + "companyId": "github" + }, + "gittigidiyor_affiliate_program": { + "name": "GittiGidiyor Affiliate Program", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "gittip": { + "name": "Gittip", + "categoryId": 2, + "url": "https://www.gittip.com/", + "companyId": "gittip" + }, + "glad_cube": { + "name": "Glad Cube", + "categoryId": 6, + "url": "http://www.glad-cube.com/", + "companyId": "glad_cube_inc." + }, + "glganltcs.space": { + "name": "glganltcs.space", + "categoryId": 12, + "url": null, + "companyId": null + }, + "global_web_index": { + "name": "GlobalWebIndex", + "categoryId": 6, + "url": "https://www.globalwebindex.com/", + "companyId": "global_web_index" + }, + "globalnotifier.com": { + "name": "globalnotifier.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "globalsign": { + "name": "GlobalSign", + "categoryId": 8, + "url": null, + "companyId": null + }, + "globaltakeoff": { + "name": "GlobalTakeoff", + "categoryId": 4, + "url": "http://www.globaltakeoff.net/", + "companyId": "globaltakeoff" + }, + "glomex.com": { + "name": "Glomex", + "categoryId": 0, + "url": "https://www.glomex.com/", + "companyId": "glomex" + }, + "glotgrx.com": { + "name": "glotgrx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "gm_delivery": { + "name": "GM Delivery", + "categoryId": 4, + "url": "http://a.gmdelivery.com/", + "companyId": "gm_delivery" + }, + "gmo": { + "name": "GMO", + "categoryId": 4, + "url": "https://www.gmo.media/", + "companyId": "gmo_media" + }, + "gmx_net": { + "name": "gmx.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "go.com": { + "name": "go.com", + "categoryId": 8, + "url": "go.com", + "companyId": "disney" + }, + "godaddy_affiliate_program": { + "name": "GoDaddy Affiliate Program", + "categoryId": 4, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godaddy_site_analytics": { + "name": "GoDaddy Site Analytics", + "categoryId": 6, + "url": "https://www.godaddy.com/gdshop/hosting/stats_", + "companyId": "godaddy" + }, + "godaddy_site_seal": { + "name": "GoDaddy Site Seal", + "categoryId": 5, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godatafeed": { + "name": "GoDataFeed", + "categoryId": 6, + "url": "http://www.godatafeed.com", + "companyId": "godatafeed" + }, + "goingup": { + "name": "GoingUp", + "categoryId": 6, + "url": "http://www.goingup.com/", + "companyId": "goingup" + }, + "gomez": { + "name": "Gomez", + "categoryId": 6, + "url": "http://www.gomez.com/", + "companyId": "dynatrace" + }, + "goodadvert": { + "name": "GoodADVERT", + "categoryId": 4, + "url": "http://goodadvert.ru/", + "companyId": "goodadvert" + }, + "google": { + "name": "Google", + "categoryId": 4, + "url": "https://www.google.com/", + "companyId": "google" + }, + "google_ads_measurement": { + "name": "Google Ads Measurement", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adsense": { + "name": "Google Adsense", + "categoryId": 4, + "url": "https://www.google.com/adsense/", + "companyId": "google" + }, + "google_adservices": { + "name": "Google AdServices", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adwords_conversion": { + "name": "Google AdWords Conversion", + "categoryId": 4, + "url": "https://adwords.google.com/", + "companyId": "google" + }, + "google_adwords_user_lists": { + "name": "Google Adwords User Lists", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_analytics": { + "name": "Google Analytics", + "categoryId": 6, + "url": "http://www.google.com/analytics/", + "companyId": "google" + }, + "google_appspot": { + "name": "Google Appspot", + "categoryId": 10, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_beacons": { + "name": "Google Beacons", + "categoryId": 6, + "url": "https://google.xyz", + "companyId": "google" + }, + "google_custom_search": { + "name": "Google Custom Search Ads", + "categoryId": 4, + "url": "https://developers.google.com/custom-search-ads/", + "companyId": "google" + }, + "google_custom_search_engine": { + "name": "Google Programmable Search Engine", + "categoryId": 5, + "url": "https://programmablesearchengine.google.com/about/", + "companyId": "google" + }, + "google_email": { + "name": "Google Email", + "categoryId": 13, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_fonts": { + "name": "Google Fonts", + "categoryId": 9, + "url": "https://fonts.google.com/", + "companyId": "google" + }, + "google_ima": { + "name": "Google IMA", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_photos": { + "name": "Google Photos", + "categoryId": 9, + "url": "https://photos.google.com/", + "companyId": "google" + }, + "google_pingback": { + "name": "Google Pingback", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_plus": { + "name": "Google+ Platform", + "categoryId": 7, + "url": "http://www.google.com/+1/button/", + "companyId": "google" + }, + "google_publisher_tags": { + "name": "Google Publisher Tags", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_remarketing": { + "name": "Google Dynamic Remarketing", + "categoryId": 4, + "url": "http://adwords.google.com/", + "companyId": "google" + }, + "google_safeframe": { + "name": "Google Safeframe", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_servers": { + "name": "Google Servers", + "categoryId": 8, + "url": "https://support.google.com/faqs/answer/174717?hl=en", + "companyId": "google" + }, + "google_shopping_reviews": { + "name": "Google Shopping Reviews", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_syndication": { + "name": "Google Syndication", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_tag_manager": { + "name": "Google Tag Manager", + "categoryId": 5, + "url": "https://marketingplatform.google.com/about/tag-manager/", + "companyId": "google" + }, + "google_translate": { + "name": "Google Translate", + "categoryId": 2, + "url": "https://translate.google.com/manager", + "companyId": "google" + }, + "google_travel_adds": { + "name": "Google Travel Adds", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_trusted_stores": { + "name": "Google Trusted Stores", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_users": { + "name": "Google User Content", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_website_optimizer": { + "name": "Google Website Optimizer", + "categoryId": 6, + "url": "https://www.google.com/analytics/siteopt/prev", + "companyId": "google" + }, + "google_widgets": { + "name": "Google Widgets", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "googleapis.com": { + "name": "Google APIs", + "categoryId": 9, + "url": "https://www.googleapis.com/", + "companyId": "google" + }, + "goooal": { + "name": "Goooal", + "categoryId": 6, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "gorilla_nation": { + "name": "Gorilla Nation", + "categoryId": 4, + "url": "http://www.gorillanationmedia.com", + "companyId": "gorilla_nation_media" + }, + "gosquared": { + "name": "GoSquared", + "categoryId": 6, + "url": "http://www.gosquared.com/livestats/", + "companyId": "gosquared" + }, + "gostats": { + "name": "GoStats", + "categoryId": 6, + "url": "http://gostats.com/", + "companyId": "gostats" + }, + "govmetric": { + "name": "GovMetric", + "categoryId": 6, + "url": "http://www.govmetric.com/", + "companyId": "govmetric" + }, + "grabo_affiliate": { + "name": "Grabo Affiliate", + "categoryId": 4, + "url": "http://grabo.bg/", + "companyId": "grabo_media" + }, + "grandslammedia": { + "name": "GrandSlamMedia", + "categoryId": 4, + "url": "http://www.grandslammedia.com/", + "companyId": "grand_slam_media" + }, + "granify": { + "name": "Granify", + "categoryId": 6, + "url": "http://granify.com/", + "companyId": "granify" + }, + "grapeshot": { + "name": "Grapeshot", + "categoryId": 4, + "url": "https://www.grapeshot.com/", + "companyId": "oracle" + }, + "graph_comment": { + "name": "Graph Comment", + "categoryId": 5, + "url": "https://graphcomment.com/en/", + "companyId": "graph_comment" + }, + "gravatar": { + "name": "Gravatar", + "categoryId": 7, + "url": "http://en.gravatar.com/", + "companyId": "automattic" + }, + "gravitec": { + "name": "Gravitec", + "categoryId": 6, + "url": "https://gravitec.net/", + "companyId": "gravitec" + }, + "gravity_insights": { + "name": "Gravity Insights", + "categoryId": 6, + "url": "http://www.gravity.com/", + "companyId": "verizon" + }, + "greatviews.de": { + "name": "GreatViews", + "categoryId": 4, + "url": "http://greatviews.de/", + "companyId": "parship" + }, + "green_and_red": { + "name": "Green and Red", + "categoryId": 4, + "url": "http://www.green-red.com/", + "companyId": "green_&_red_technologies" + }, + "green_certified_site": { + "name": "Green Certified Site", + "categoryId": 2, + "url": "http://www.advenity.com/", + "companyId": "advenity" + }, + "green_story": { + "name": "Green Story", + "categoryId": 6, + "url": "https://greenstory.ca/", + "companyId": "green_story" + }, + "greentube.com": { + "name": "Greentube Internet Entertainment Solutions", + "categoryId": 7, + "url": "https://www.greentube.com/", + "companyId": null + }, + "greystripe": { + "name": "Greystripe", + "categoryId": 4, + "url": "http://www.greystripe.com/", + "companyId": "conversant" + }, + "groove": { + "name": "Groove", + "categoryId": 2, + "url": "http://www.groovehq.com/", + "companyId": "groove_networks" + }, + "groovinads": { + "name": "GroovinAds", + "categoryId": 4, + "url": "http://www.groovinads.com/en", + "companyId": "groovinads" + }, + "groundtruth": { + "name": "GroundTruth", + "categoryId": 4, + "url": "http://www.groundtruth.com/", + "companyId": "groundtruth" + }, + "groupm_server": { + "name": "GroupM Server", + "categoryId": 4, + "url": "http://www.groupm.com/", + "companyId": "wpp" + }, + "gsi_media": { + "name": "GSI Media", + "categoryId": 4, + "url": "http://gsimedia.net", + "companyId": "gsi_media_network" + }, + "gstatic": { + "name": "Google Static", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "gtop": { + "name": "GTop", + "categoryId": 6, + "url": "http://www.gtopstats.com", + "companyId": "gtopstats" + }, + "gugaboo": { + "name": "Gugaboo", + "categoryId": 4, + "url": "https://www.gubagoo.com/", + "companyId": "gubagoo" + }, + "guj.de": { + "name": "Gruner + Jahr", + "categoryId": 4, + "url": "https://www.guj.de/", + "companyId": "gruner_jahr_ag" + }, + "gujems": { + "name": "G+J e|MS", + "categoryId": 4, + "url": "http://www.gujmedia.de/", + "companyId": "gruner_jahr_ag" + }, + "gumgum": { + "name": "gumgum", + "categoryId": 4, + "url": "http://gumgum.com/", + "companyId": "gumgum" + }, + "gumroad": { + "name": "Gumroad", + "categoryId": 7, + "url": "https://gumroad.com/", + "companyId": "gumroad" + }, + "gunggo": { + "name": "Gunggo", + "categoryId": 4, + "url": "http://www.gunggo.com/", + "companyId": "gunggo" + }, + "h12_ads": { + "name": "H12 Ads", + "categoryId": 4, + "url": "http://www.h12-media.com/", + "companyId": "h12_media_ads" + }, + "hacker_news_button": { + "name": "Hacker News Button", + "categoryId": 7, + "url": "http://news.ycombinator.com/", + "companyId": "hacker_news" + }, + "haendlerbund.de": { + "name": "Händlerbund", + "categoryId": 2, + "url": "https://www.haendlerbund.de/en", + "companyId": null + }, + "halogen_network": { + "name": "Halogen Network", + "categoryId": 7, + "url": "http://www.halogennetwork.com/", + "companyId": "social_chorus" + }, + "happy_fox_chat": { + "name": "Happy Fox Chat", + "categoryId": 2, + "url": "https://happyfoxchat.com/", + "companyId": "happy_fox_chat" + }, + "harren_media": { + "name": "Harren Media", + "categoryId": 4, + "url": "http://www.harrenmedia.com/index.html", + "companyId": "harren_media" + }, + "hatchbuck": { + "name": "Hatchbuck", + "categoryId": 6, + "url": "http://www.hatchbuck.com/", + "companyId": "hatchbuck" + }, + "head_hunter": { + "name": "Head Hunter", + "categoryId": 6, + "url": "https://hh.ru/", + "companyId": "head_hunter" + }, + "healte.de": { + "name": "healte.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "heap": { + "name": "Heap", + "categoryId": 6, + "url": "https://heapanalytics.com/", + "companyId": "heap" + }, + "heatmap": { + "name": "Heatmap", + "categoryId": 6, + "url": "https://heatmap.me/", + "companyId": "heatmap" + }, + "heimspiel": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "http://www.heimspiel.de", + "companyId": null + }, + "hello_bar": { + "name": "Hello Bar", + "categoryId": 7, + "url": "https://www.hellobar.com/", + "companyId": "crazy_egg" + }, + "hellosociety": { + "name": "HelloSociety", + "categoryId": 6, + "url": "http://hellosociety.com", + "companyId": "hellosociety" + }, + "here": { + "name": "HERE", + "categoryId": 8, + "url": "https://www.here.com/", + "companyId": null + }, + "heroku": { + "name": "Heroku", + "categoryId": 10, + "url": null, + "companyId": null + }, + "heureka-widget": { + "name": "Heureka-Widget", + "categoryId": 4, + "url": "https://www.heurekashopping.cz/", + "companyId": "heureka" + }, + "heybubble": { + "name": "HeyBubble", + "categoryId": 2, + "url": "https://www.heybubble.com/", + "companyId": "heybubble" + }, + "heyos": { + "name": "Heyos", + "categoryId": 4, + "url": "http://www.heyos.com/", + "companyId": "heyos" + }, + "hi-media_performance": { + "name": "Hi-Media Performance", + "categoryId": 4, + "url": "http://www.hi-mediaperformance.co.uk/", + "companyId": "hi-media_performance" + }, + "hiconversion": { + "name": "HiConversion", + "categoryId": 4, + "url": "http://www.hiconversion.com", + "companyId": "hiconversion" + }, + "highwebmedia.com": { + "name": "highwebmedia.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "highwinds": { + "name": "Highwinds", + "categoryId": 6, + "url": "https://www.highwinds.com/", + "companyId": "highwinds" + }, + "hiiir": { + "name": "Hiiir", + "categoryId": 4, + "url": "http://adpower.hiiir.com/", + "companyId": "hiiir" + }, + "hiro": { + "name": "HIRO", + "categoryId": 4, + "url": "http://www.hiro-media.com/", + "companyId": "hiro_media" + }, + "histats": { + "name": "Histats", + "categoryId": 4, + "url": "http://www.histats.com/", + "companyId": "histats" + }, + "hit-parade": { + "name": "Hit-Parade", + "categoryId": 4, + "url": "http://www.hit-parade.com/", + "companyId": "hit-parade" + }, + "hit.ua": { + "name": "HIT.UA", + "categoryId": 4, + "url": "http://hit.ua/", + "companyId": "hit.ua" + }, + "hitslink": { + "name": "HitsLink", + "categoryId": 4, + "url": "http://www.hitslink.com/", + "companyId": "net_applications" + }, + "hitsniffer": { + "name": "HitSniffer", + "categoryId": 4, + "url": "http://hitsniffer.com/", + "companyId": "hit_sniffer" + }, + "hittail": { + "name": "HitTail", + "categoryId": 4, + "url": "http://www.hittail.com/", + "companyId": "hittail" + }, + "hivedx.com": { + "name": "hiveDX", + "categoryId": 4, + "url": "https://www.hivedx.com/", + "companyId": null + }, + "hiveworks": { + "name": "Hive Networks", + "categoryId": 4, + "url": "https://hiveworkscomics.com/", + "companyId": "hive_works" + }, + "hoholikik.club": { + "name": "hoholikik.club", + "categoryId": 12, + "url": null, + "companyId": null + }, + "hola_player": { + "name": "Hola Player", + "categoryId": 0, + "url": "https://holacdn.com/", + "companyId": "hola_cdn" + }, + "homeaway": { + "name": "HomeAway", + "categoryId": 8, + "url": null, + "companyId": null + }, + "honeybadger": { + "name": "Honeybadger", + "categoryId": 6, + "url": "https://www.honeybadger.io/", + "companyId": "honeybadger" + }, + "hooklogic": { + "name": "HookLogic", + "categoryId": 4, + "url": "http://hooklogic.com/", + "companyId": "criteo" + }, + "hop-cube": { + "name": "Hop-Cube", + "categoryId": 4, + "url": "http://www.hop-cube.com/", + "companyId": "hop-cube" + }, + "hotdogsandads.com": { + "name": "hotdogsandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "hotjar": { + "name": "Hotjar", + "categoryId": 6, + "url": "http://www.hotjar.com/", + "companyId": "hotjar" + }, + "hotkeys": { + "name": "HotKeys", + "categoryId": 4, + "url": "http://www.demandmedia.com/", + "companyId": "leaf_group" + }, + "hotlog.ru": { + "name": "HotLog", + "categoryId": 4, + "url": "https://hotlog.ru/", + "companyId": "hotlog" + }, + "hotwords": { + "name": "HOTWords", + "categoryId": 4, + "url": "http://hotwords.com/", + "companyId": "hotwords" + }, + "howtank.com": { + "name": "howtank", + "categoryId": 7, + "url": "https://www.howtank.com/", + "companyId": null + }, + "hqentertainmentnetwork.com": { + "name": "HQ Entertainment Network", + "categoryId": 4, + "url": "https://hqentertainmentnetwork.com/", + "companyId": null + }, + "hsoub": { + "name": "Hsoub", + "categoryId": 4, + "url": "http://www.hsoub.com/", + "companyId": "hsoub" + }, + "hstrck.com": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "https://www.heimspiel.de/", + "companyId": null + }, + "httpool": { + "name": "HTTPool", + "categoryId": 4, + "url": "http://www.httpool.com/", + "companyId": "httpool" + }, + "hubrus": { + "name": "HUBRUS", + "categoryId": 4, + "url": "http://www.hubrus.com/", + "companyId": "hubrus" + }, + "hubspot": { + "name": "HubSpot", + "categoryId": 6, + "url": "http://www.hubspot.com/", + "companyId": "hubspot" + }, + "hubspot_forms": { + "name": "HubSpot Forms", + "categoryId": 2, + "url": "http://www.hubspot.com", + "companyId": "hubspot" + }, + "hubvisor.io": { + "name": "Hubvisor", + "categoryId": 4, + "url": "https://hubvisor.io/", + "companyId": null + }, + "hucksterbot": { + "name": "HucksterBot", + "categoryId": 4, + "url": "http://hucksterbot.ru/", + "companyId": "hucksterbot" + }, + "hupso": { + "name": "Hupso", + "categoryId": 7, + "url": "http://www.hupso.com/", + "companyId": "hupso" + }, + "hurra_tracker": { + "name": "Hurra Tracker", + "categoryId": 4, + "url": "http://www.hurra.com/en/", + "companyId": "hurra_communications" + }, + "hybrid.ai": { + "name": "Hybrid.ai", + "categoryId": 4, + "url": "https://hybrid.ai/", + "companyId": "hybrid_adtech" + }, + "hype_exchange": { + "name": "Hype Exchange", + "categoryId": 4, + "url": "http://www.hypeexchange.com/", + "companyId": "hype_exchange" + }, + "hypercomments": { + "name": "HyperComments", + "categoryId": 1, + "url": "http://www.hypercomments.com/", + "companyId": "hypercomments" + }, + "hyves_widgets": { + "name": "Hyves Widgets", + "categoryId": 4, + "url": "http://www.hyves.nl/", + "companyId": "hyves" + }, + "hyvyd": { + "name": "Hyvyd GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "i-behavior": { + "name": "i-Behavior", + "categoryId": 4, + "url": "http://www.i-behavior.com/", + "companyId": "kbm_group" + }, + "i-mobile": { + "name": "i-mobile", + "categoryId": 4, + "url": "https://www2.i-mobile.co.jp/en/index.aspx", + "companyId": "i-mobile" + }, + "i.ua": { + "name": "i.ua", + "categoryId": 4, + "url": "http://www.i.ua/", + "companyId": "i.ua" + }, + "i10c.net": { + "name": "i10c.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "i2i.jp": { + "name": "i2i.jp", + "categoryId": 6, + "url": "http://www.i2i.jp/", + "companyId": "i2i.jp" + }, + "iab_consent": { + "name": "IAB Consent", + "categoryId": 5, + "url": "https://iabtechlab.com/standards/gdpr-transparency-and-consent-framework/", + "companyId": "iab" + }, + "iadvize": { + "name": "iAdvize", + "categoryId": 2, + "url": "http://www.iadvize.com/", + "companyId": "iadvize" + }, + "ibm_customer_experience": { + "name": "IBM Digital Analytics", + "categoryId": 6, + "url": "http://www.coremetrics.com/", + "companyId": "ibm" + }, + "icerocket_tracker": { + "name": "IceRocket Tracker", + "categoryId": 7, + "url": "http://tracker.icerocket.com/", + "companyId": "meltwater_icerocket" + }, + "icf_technology": { + "name": "ICF Technology", + "categoryId": 2, + "url": "http://www.icftechnology.com/", + "companyId": null + }, + "iclick": { + "name": "iClick", + "categoryId": 4, + "url": "http://optimix.asia/", + "companyId": "iclick_interactive" + }, + "icrossing": { + "name": "iCrossing", + "categoryId": 4, + "url": "http://www.icrossing.com/", + "companyId": "hearst" + }, + "icstats": { + "name": "ICStats", + "categoryId": 6, + "url": "http://www.icstats.nl/", + "companyId": "icstats" + }, + "icuazeczpeoohx.com": { + "name": "icuazeczpeoohx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "id-news.net": { + "name": "Ippen Digital", + "categoryId": 4, + "url": "https://www.ippen-digital.de/", + "companyId": null + }, + "id_services": { + "name": "ID Services", + "categoryId": 6, + "url": "https://id.services/", + "companyId": "id_services" + }, + "ideal_media": { + "name": "Ideal Media", + "categoryId": 4, + "url": "http://idealmedia.com/", + "companyId": "ideal_media" + }, + "idealo_com": { + "name": "idealo.com", + "categoryId": 4, + "url": "http://idealo.com/", + "companyId": null + }, + "ideoclick": { + "name": "IdeoClick", + "categoryId": 4, + "url": "http://ideoclick.com", + "companyId": "ideoclick" + }, + "idio": { + "name": "Idio", + "categoryId": 4, + "url": "https://www.idio.ai/", + "companyId": "idio" + }, + "ie8eamus.com": { + "name": "ie8eamus.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ientry": { + "name": "iEntry", + "categoryId": 4, + "url": "http://www.ientry.com/", + "companyId": "ientry" + }, + "iflychat": { + "name": "iFlyChat", + "categoryId": 2, + "url": "https://iflychat.com/", + "companyId": "iflychat" + }, + "ignitionone": { + "name": "IgnitionOne", + "categoryId": 6, + "url": "https://www.ignitionone.com/", + "companyId": "zeta" + }, + "igodigital": { + "name": "iGoDigital", + "categoryId": 2, + "url": "http://igodigital.com/", + "companyId": "salesforce" + }, + "ihs_markit": { + "name": "IHS Markit", + "categoryId": 6, + "url": "https://ihsmarkit.com/index.html", + "companyId": "ihs" + }, + "ihs_markit_online_shopper_insigh": { + "name": "IHS Markit Online Shopper Insigh", + "categoryId": 6, + "url": "http://www.visicogn.com/vcu.htm", + "companyId": "ihs" + }, + "ihvmcqojoj.com": { + "name": "ihvmcqojoj.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "iias.eu": { + "name": "Insight Image", + "categoryId": 3, + "url": "http://insightimage.com/", + "companyId": null + }, + "ijento": { + "name": "iJento", + "categoryId": 6, + "url": "http://www.ijento.com/", + "companyId": "ijento" + }, + "imad": { + "name": "imad", + "categoryId": 4, + "url": "http://www.imad.co.kr/", + "companyId": "i'mad_republic" + }, + "image_advantage": { + "name": "Image Advantage", + "categoryId": 4, + "url": "http://www.worthathousandwords.com/", + "companyId": "image_advantage" + }, + "image_space_media": { + "name": "Image Space Media", + "categoryId": 4, + "url": "http://www.imagespacemedia.com/", + "companyId": "image_space_media" + }, + "imgix.net": { + "name": "ImgIX", + "categoryId": 9, + "url": "https://www.imgix.com/", + "companyId": null + }, + "imgur": { + "name": "Imgur", + "categoryId": 8, + "url": "https://imgur.com/", + "companyId": "imgur" + }, + "imho_vi": { + "name": "imho vi", + "categoryId": 4, + "url": "http://www.imho.ru", + "companyId": "imho" + }, + "immanalytics": { + "name": "Immanalytics", + "categoryId": 2, + "url": "https://www.roku.com/", + "companyId": "roku" + }, + "immobilienscout24_de": { + "name": "immobilienscout24.de", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "imonomy": { + "name": "imonomy", + "categoryId": 6, + "url": "http://imonomy.com/", + "companyId": "imonomy" + }, + "impact_radius": { + "name": "Impact Radius", + "categoryId": 5, + "url": "http://www.impactradius.com/", + "companyId": "impact_radius" + }, + "impresiones_web": { + "name": "Impresiones Web", + "categoryId": 4, + "url": "http://www.iw-advertising.com/", + "companyId": "impresiones_web" + }, + "improve_digital": { + "name": "Improve Digital", + "categoryId": 4, + "url": "http://www.improvedigital.com/", + "companyId": "improve_digital" + }, + "improvely": { + "name": "Improvely", + "categoryId": 6, + "url": "https://www.improvely.com/", + "companyId": "awio_web_services" + }, + "inbenta": { + "name": "Inbenta", + "categoryId": 6, + "url": "https://www.inbenta.com/en/", + "companyId": "inbenta" + }, + "inboxsdk.com": { + "name": "Inbox SDK", + "categoryId": 8, + "url": "https://www.inboxsdk.com/", + "companyId": null + }, + "indeed": { + "name": "Indeed", + "categoryId": 4, + "url": "http://www.indeed.com/", + "companyId": "indeed" + }, + "index_exchange": { + "name": "Index Exchange", + "categoryId": 4, + "url": "http://www.casalemedia.com/", + "companyId": "index_exchange" + }, + "indieclick": { + "name": "IndieClick", + "categoryId": 4, + "url": "http://www.indieclick.com/", + "companyId": "leaf_group" + }, + "industry_brains": { + "name": "Industry Brains", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "industrybrains" + }, + "infectious_media": { + "name": "Impression Desk", + "categoryId": 4, + "url": "https://impressiondesk.com/", + "companyId": "infectious_media" + }, + "infinite_analytics": { + "name": "Infinite Analytics", + "categoryId": 6, + "url": "http://infiniteanalytics.com/products/", + "companyId": "infinite_analytics" + }, + "infinity_tracking": { + "name": "Infinity Tracking", + "categoryId": 6, + "url": "http://www.infinity-tracking.com", + "companyId": "infinity_tracking" + }, + "influads": { + "name": "InfluAds", + "categoryId": 4, + "url": "http://www.influads.com/", + "companyId": "influads" + }, + "infolinks": { + "name": "InfoLinks", + "categoryId": 4, + "url": "http://www.infolinks.com/", + "companyId": "infolinks" + }, + "infonline": { + "name": "INFOnline", + "categoryId": 6, + "url": "http://www.infonline.de/", + "companyId": "infonline" + }, + "informer_technologies": { + "name": "Informer Technologies", + "categoryId": 6, + "url": "http://www.informer.com/", + "companyId": "informer_technologies" + }, + "infusionsoft": { + "name": "Infusionsoft by Keap", + "categoryId": 4, + "url": "https://keap.com/", + "companyId": "infusionsoft" + }, + "innity": { + "name": "Innity", + "categoryId": 4, + "url": "http://www.innity.com/", + "companyId": "innity" + }, + "innogames.de": { + "name": "InnoGames", + "categoryId": 8, + "url": "https://www.innogames.com/", + "companyId": null + }, + "innovid": { + "name": "Innovid", + "categoryId": 4, + "url": "https://www.innovid.com/", + "companyId": "innovid" + }, + "inside": { + "name": "inside", + "categoryId": 7, + "url": "http://www.inside.tm/", + "companyId": "powerfront" + }, + "insider": { + "name": "Insider", + "categoryId": 6, + "url": "http://useinsider.com/", + "companyId": "insider" + }, + "insightexpress": { + "name": "InsightExpress", + "categoryId": 6, + "url": "https://www.millwardbrowndigital.com/", + "companyId": "millward_brown" + }, + "inskin_media": { + "name": "InSkin Media", + "categoryId": 4, + "url": "http://www.inskinmedia.com/", + "companyId": "inskin_media" + }, + "inspectlet": { + "name": "Inspectlet", + "categoryId": 6, + "url": "https://www.inspectlet.com/", + "companyId": "inspectlet" + }, + "inspsearchapi.com": { + "name": "Infospace Search", + "categoryId": 4, + "url": "http://infospace.com/", + "companyId": "system1" + }, + "instagram_com": { + "name": "Instagram", + "categoryId": 8, + "url": "https://www.facebook.com/", + "companyId": "facebook" + }, + "instant_check_mate": { + "name": "Instant Check Mate", + "categoryId": 2, + "url": "https://www.instantcheckmate.com/", + "companyId": "instant_check_mate" + }, + "instart_logic": { + "name": "Instart Logic", + "categoryId": 4, + "url": "https://www.instartlogic.com/", + "companyId": "instart_logic_inc" + }, + "insticator": { + "name": "Insticator", + "categoryId": 4, + "url": "https://www.insticator.com/landingpage", + "companyId": "insticator" + }, + "instinctive": { + "name": "Instinctive", + "categoryId": 4, + "url": "https://instinctive.io/", + "companyId": "instinctive" + }, + "intango": { + "name": "Intango", + "categoryId": 4, + "url": "https://intango.com/", + "companyId": "intango" + }, + "integral_ad_science": { + "name": "Integral Ad Science", + "categoryId": 4, + "url": "https://integralads.com/", + "companyId": "integral_ad_science" + }, + "integral_marketing": { + "name": "Integral Marketing", + "categoryId": 4, + "url": "http://integral-marketing.com/", + "companyId": "integral_marketing" + }, + "intelliad": { + "name": "intelliAd", + "categoryId": 6, + "url": "http://www.intelliad.de/", + "companyId": "intelliad" + }, + "intelligencefocus": { + "name": "IntelligenceFocus", + "categoryId": 6, + "url": "http://www.intelligencefocus.com", + "companyId": "intelligencefocus" + }, + "intelligent_reach": { + "name": "Intelligent Reach", + "categoryId": 4, + "url": "http://www.intelligentreach.com/", + "companyId": "intelligent_reach" + }, + "intense_debate": { + "name": "Intense Debate", + "categoryId": 2, + "url": "http://intensedebate.com/", + "companyId": "automattic" + }, + "intent_iq": { + "name": "Intent IQ", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "intent_media": { + "name": "Intent", + "categoryId": 4, + "url": "https://intent.com/", + "companyId": "intent_media" + }, + "intercom": { + "name": "Intercom", + "categoryId": 2, + "url": "http://intercom.io/", + "companyId": "intercom" + }, + "interedy.info": { + "name": "interedy.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "intergi": { + "name": "Intergi", + "categoryId": 4, + "url": "http://www.intergi.com/", + "companyId": "intergi_entertainment" + }, + "intermarkets.net": { + "name": "Intermarkets", + "categoryId": 4, + "url": "http://intermarkets.net/", + "companyId": "intermarkets" + }, + "intermundo_media": { + "name": "InterMundo Media", + "categoryId": 4, + "url": "http://intermundomedia.com/", + "companyId": "intermundo_media" + }, + "internet_billboard": { + "name": "Internet BillBoard", + "categoryId": 4, + "url": "http://www.ibillboard.com/en/", + "companyId": "internet_billboard" + }, + "internetaudioads": { + "name": "InternetAudioAds", + "categoryId": 0, + "url": "http://www.internetaudioads.com/", + "companyId": "internetaudioads" + }, + "internetbrands": { + "name": "InternetBrands", + "categoryId": 7, + "url": "http://www.internetbrands.com/", + "companyId": "internet_brands" + }, + "interpolls": { + "name": "Interpolls", + "categoryId": 4, + "url": "http://www.interpolls.com/", + "companyId": "interpolls" + }, + "interyield": { + "name": "Interyield", + "categoryId": 4, + "url": "http://www.advertise.com/publisher-solutions/", + "companyId": "advertise.com" + }, + "intilery": { + "name": "Intilery", + "categoryId": 6, + "url": "http://www.intilery.com", + "companyId": "intilery" + }, + "intimate_merger": { + "name": "Intimate Merger", + "categoryId": 6, + "url": "https://corp.intimatemerger.com/", + "companyId": "intimate_merger" + }, + "investingchannel": { + "name": "Investing Channel", + "categoryId": 8, + "url": "http://www.investingchannel.com/", + "companyId": "investingchannel" + }, + "inviziads": { + "name": "InviziAds", + "categoryId": 4, + "url": "http://www.inviziads.com", + "companyId": "inviziads" + }, + "invoca": { + "name": "Invoca", + "categoryId": 4, + "url": "http://www.invoca.com/", + "companyId": "invoca" + }, + "invodo": { + "name": "Invodo", + "categoryId": 6, + "url": "http://www.invodo.com/", + "companyId": "invodo" + }, + "ionicframework.com": { + "name": "Ionic", + "categoryId": 8, + "url": "https://ionicframework.com/", + "companyId": null + }, + "iotec": { + "name": "iotec", + "categoryId": 4, + "url": "https://www.iotecglobal.com/", + "companyId": "iotec" + }, + "iovation": { + "name": "iovation", + "categoryId": 5, + "url": "http://www.iovation.com/", + "companyId": "iovation" + }, + "ip-label": { + "name": "ip-label", + "categoryId": 6, + "url": "http://www.ip-label.co.uk/", + "companyId": "ip-label" + }, + "ip_targeting": { + "name": "IP Targeting", + "categoryId": 6, + "url": "https://www.iptargeting.com/", + "companyId": "el_toro" + }, + "ip_tracker": { + "name": "IP Tracker", + "categoryId": 6, + "url": "http://www.ip-tracker.org/", + "companyId": "ip_tracker" + }, + "iperceptions": { + "name": "iPerceptions", + "categoryId": 2, + "url": "http://www.iperceptions.com/", + "companyId": "iperceptions" + }, + "ipfingerprint": { + "name": "IPFingerprint", + "categoryId": 6, + "url": "http://www.ipfingerprint.com/", + "companyId": "ipfingerprint" + }, + "ipg_mediabrands": { + "name": "IPG Mediabrands", + "categoryId": 4, + "url": "https://www.ipgmediabrands.com/", + "companyId": "ipg_mediabrands" + }, + "ipify": { + "name": "ipify", + "categoryId": 8, + "url": "https://www.ipify.org/", + "companyId": null + }, + "ipinfo": { + "name": "Ipinfo", + "categoryId": 2, + "url": "https://ipinfo.io/", + "companyId": "ipinfo.io" + }, + "iplogger": { + "name": "IPLogger", + "categoryId": 6, + "url": "http://iplogger.ru/", + "companyId": "iplogger" + }, + "iprom": { + "name": "iprom", + "categoryId": 4, + "url": "http://www.iprom.si/", + "companyId": "iprom" + }, + "ipromote": { + "name": "iPromote", + "categoryId": 4, + "url": "http://www.ipromote.com/", + "companyId": "ipromote" + }, + "iprospect": { + "name": "iProspect", + "categoryId": 4, + "url": "http://www.iprospect.com/", + "companyId": "dentsu_aegis_network" + }, + "ironsource": { + "name": "ironSource", + "categoryId": 4, + "url": "https://www.ironsrc.com/", + "companyId": "ironsource" + }, + "isocket": { + "name": "isocket", + "categoryId": 4, + "url": "http://www.isocket.com/", + "companyId": "rubicon_project" + }, + "ispot.tv": { + "name": "iSpot.tv", + "categoryId": 4, + "url": "https://www.ispot.tv/", + "companyId": null + }, + "itineraire.info": { + "name": "itineraire.info", + "categoryId": 2, + "url": "https://www.itineraire.info/", + "companyId": null + }, + "itunes_link_maker": { + "name": "iTunes Link Maker", + "categoryId": 4, + "url": "https://www.apple.com/", + "companyId": "apple" + }, + "ity.im": { + "name": "ity.im", + "categoryId": 4, + "url": "http://ity.im/", + "companyId": "ity.im" + }, + "iubenda.com": { + "name": "iubenda", + "categoryId": 5, + "url": "https://www.iubenda.com/", + "companyId": "iubenda" + }, + "ivcbrasil.org.br": { + "name": "IVC Brasil", + "categoryId": 6, + "url": "https://ivcbrasil.org.br/#/home", + "companyId": null + }, + "ividence": { + "name": "Ividence", + "categoryId": 4, + "url": "https://www.ividence.com/home/", + "companyId": "sien" + }, + "iwiw_widgets": { + "name": "iWiW Widgets", + "categoryId": 2, + "url": "http://iwiw.hu", + "companyId": "iwiw" + }, + "ixi_digital": { + "name": "IXI Digital", + "categoryId": 4, + "url": "http://www.equifax.com/home/en_us", + "companyId": "equifax" + }, + "ixquick.com": { + "name": "ixquick", + "categoryId": 8, + "url": "https://www.ixquick.com/", + "companyId": "startpage" + }, + "izooto": { + "name": "iZooto", + "categoryId": 6, + "url": "https://www.izooto.com/", + "companyId": "izooto" + }, + "j-list_affiliate_program": { + "name": "J-List Affiliate Program", + "categoryId": 4, + "url": "http://www.jlist.com/page/affiliates.html", + "companyId": "j-list" + }, + "jaco": { + "name": "Jaco", + "categoryId": 6, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "janrain": { + "name": "Janrain", + "categoryId": 6, + "url": "http://www.janrain.com/", + "companyId": "akamai" + }, + "jeeng": { + "name": "Jeeng", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jeeng_widgets": { + "name": "Jeeng Widgets", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jet_interactive": { + "name": "Jet Interactive", + "categoryId": 6, + "url": "http://www.jetinteractive.com.au/", + "companyId": "jet_interactive" + }, + "jetlore": { + "name": "Jetlore", + "categoryId": 6, + "url": "http://www.jetlore.com/", + "companyId": "jetlore" + }, + "jetpack": { + "name": "Jetpack", + "categoryId": 6, + "url": "https://jetpack.com/", + "companyId": "automattic" + }, + "jetpack_digital": { + "name": "Jetpack Digital", + "categoryId": 6, + "url": "http://www.jetpack.com/", + "companyId": "jetpack_digital" + }, + "jimdo.com": { + "name": "jimdo.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "jink": { + "name": "Jink", + "categoryId": 4, + "url": "http://www.jink.de/", + "companyId": "jink" + }, + "jirafe": { + "name": "Jirafe", + "categoryId": 6, + "url": "http://jirafe.com/", + "companyId": "jirafe" + }, + "jivochat": { + "name": "JivoSite", + "categoryId": 2, + "url": "https://www.jivochat.com/", + "companyId": "jivochat" + }, + "jivox": { + "name": "Jivox", + "categoryId": 4, + "url": "http://www.jivox.com/", + "companyId": "jivox" + }, + "jobs_2_careers": { + "name": "Jobs 2 Careers", + "categoryId": 4, + "url": "http://www.jobs2careers.com/", + "companyId": "jobs_2_careers" + }, + "joinhoney": { + "name": "Honey", + "categoryId": 8, + "url": "https://www.joinhoney.com/", + "companyId": null + }, + "jornaya": { + "name": "Jornaya", + "categoryId": 6, + "url": "http://leadid.com/", + "companyId": "jornaya" + }, + "jquery": { + "name": "jQuery", + "categoryId": 9, + "url": "https://jquery.org/", + "companyId": "js_foundation" + }, + "js_communications": { + "name": "JS Communications", + "categoryId": 4, + "url": "http://www.jssearch.net/", + "companyId": "js_communications" + }, + "jsdelivr": { + "name": "jsDelivr", + "categoryId": 9, + "url": "https://www.jsdelivr.com/", + "companyId": null + }, + "jse_coin": { + "name": "JSE Coin", + "categoryId": 4, + "url": "https://jsecoin.com/", + "companyId": "jse_coin" + }, + "jsuol.com.br": { + "name": "jsuol.com.br", + "categoryId": 4, + "url": null, + "companyId": null + }, + "juggcash": { + "name": "JuggCash", + "categoryId": 3, + "url": "http://www.juggcash.com", + "companyId": "juggcash" + }, + "juiceadv": { + "name": "JuiceADV", + "categoryId": 4, + "url": "http://juiceadv.com/", + "companyId": "juiceadv" + }, + "juicyads": { + "name": "JuicyAds", + "categoryId": 3, + "url": "http://www.juicyads.com/", + "companyId": "juicyads" + }, + "jumplead": { + "name": "Jumplead", + "categoryId": 6, + "url": "https://jumplead.com/", + "companyId": "jumplead" + }, + "jumpstart_tagging_solutions": { + "name": "Jumpstart Tagging Solutions", + "categoryId": 6, + "url": "http://www.hearst.com/", + "companyId": "hearst" + }, + "jumptap": { + "name": "Jumptap", + "categoryId": 4, + "url": "http://www.jumptap.com/", + "companyId": "verizon" + }, + "jumptime": { + "name": "JumpTime", + "categoryId": 6, + "url": "http://www.jumptime.com/", + "companyId": "openx" + }, + "just_answer": { + "name": "Just Answer", + "categoryId": 2, + "url": "https://www.justanswer.com/", + "companyId": "just_answer" + }, + "just_premium": { + "name": "Just Premium", + "categoryId": 4, + "url": "http://justpremium.com/", + "companyId": "just_premium" + }, + "just_relevant": { + "name": "Just Relevant", + "categoryId": 4, + "url": "http://www.justrelevant.com/", + "companyId": "just_relevant" + }, + "jvc.gg": { + "name": "Jeuxvideo CDN", + "categoryId": 9, + "url": "http://www.jeuxvideo.com/", + "companyId": null + }, + "jw_player": { + "name": "JW Player", + "categoryId": 0, + "url": "https://www.jwplayer.com/", + "companyId": "jw_player" + }, + "jw_player_ad_solutions": { + "name": "JW Player Ad Solutions", + "categoryId": 4, + "url": "http://www.longtailvideo.com/adsolution/", + "companyId": "jw_player" + }, + "kaeufersiegel.de": { + "name": "Käufersiegel", + "categoryId": 2, + "url": "https://www.kaeufersiegel.de/", + "companyId": null + }, + "kairion.de": { + "name": "kairion", + "categoryId": 4, + "url": "https://kairion.de/", + "companyId": "prosieben_sat1" + }, + "kaloo.ga": { + "name": "Kalooga", + "categoryId": 4, + "url": "https://www.kalooga.com/", + "companyId": "kalooga" + }, + "kalooga_widget": { + "name": "Kalooga Widget", + "categoryId": 4, + "url": "http://kalooga.com/", + "companyId": "kalooga" + }, + "kaltura": { + "name": "Kaltura", + "categoryId": 0, + "url": "http://corp.kaltura.com/", + "companyId": "kaltura" + }, + "kameleoon": { + "name": "Kameleoon", + "categoryId": 6, + "url": "http://www.kameleoon.com/", + "companyId": "kameleoon" + }, + "kampyle": { + "name": "Medallia", + "categoryId": 2, + "url": "http://www.kampyle.com/", + "companyId": "medallia" + }, + "kanoodle": { + "name": "Kanoodle", + "categoryId": 4, + "url": "http://www.kanoodle.com/", + "companyId": "kanoodle" + }, + "kantar_media": { + "name": "Kantar Media", + "categoryId": 4, + "url": "https://www.kantarmedia.com/", + "companyId": "wpp" + }, + "kargo": { + "name": "Kargo", + "categoryId": 4, + "url": "http://www.kargo.com/", + "companyId": "kargo" + }, + "kaspersky-labs.com": { + "name": "Kaspersky Labs", + "categoryId": 12, + "url": "https://www.kaspersky.com/", + "companyId": "AO Kaspersky Lab" + }, + "kataweb.it": { + "name": "KataWeb", + "categoryId": 4, + "url": "http://www.kataweb.it/", + "companyId": null + }, + "katchup": { + "name": "Katchup", + "categoryId": 4, + "url": "http://www.katchup.fr/", + "companyId": "katchup" + }, + "kauli": { + "name": "Kauli", + "categoryId": 4, + "url": "http://kau.li/", + "companyId": "kauli" + }, + "kavanga": { + "name": "Kavanga", + "categoryId": 4, + "url": "http://kavanga.ru/", + "companyId": "kavanga" + }, + "keen_io": { + "name": "Keen IO", + "categoryId": 6, + "url": "https://keen.io", + "companyId": "keen_io" + }, + "kelkoo": { + "name": "Kelkoo", + "categoryId": 4, + "url": "http://www.kelkoo.com/", + "companyId": "kelkoo" + }, + "kenshoo": { + "name": "Kenshoo", + "categoryId": 6, + "url": "http://www.kenshoo.com/", + "companyId": "kenshoo" + }, + "keymetric": { + "name": "KeyMetric", + "categoryId": 6, + "url": "http://keymetric.net/", + "companyId": "keymetric" + }, + "keytiles": { + "name": "Keytiles", + "categoryId": 6, + "url": "http://keytiles.com/", + "companyId": "keytiles" + }, + "keywee": { + "name": "Keywee", + "categoryId": 6, + "url": "https://keywee.co/", + "companyId": "keywee" + }, + "keywordmax": { + "name": "KeywordMax", + "categoryId": 4, + "url": "http://www.keywordmax.com/", + "companyId": "digital_river" + }, + "khoros": { + "name": "Khoros", + "categoryId": 7, + "url": "http://www.massrelevance.com/", + "companyId": "khoros" + }, + "khzbeucrltin.com": { + "name": "khzbeucrltin.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "kickfactory": { + "name": "Kickfactory", + "categoryId": 4, + "url": "https://kickfactory.com/", + "companyId": "kickfactory" + }, + "kickfire": { + "name": "Kickfire", + "categoryId": 4, + "url": "http://www.visistat.com/", + "companyId": "kickfire" + }, + "king.com": { + "name": "King.com", + "categoryId": 4, + "url": "http://www.king.com/", + "companyId": "king.com" + }, + "king_com": { + "name": "King.com", + "categoryId": 8, + "url": "https://king.com/", + "companyId": "activision_blizzard" + }, + "kinja.com": { + "name": "Kinja", + "categoryId": 6, + "url": "https://kinja.com/", + "companyId": "gizmodo" + }, + "kiosked": { + "name": "Kiosked", + "categoryId": 4, + "url": "http://www.kiosked.com/", + "companyId": "kiosked" + }, + "kissmetrics.com": { + "name": "Kissmetrics", + "categoryId": 6, + "url": "https://www.kissmetrics.com/", + "companyId": "kissmetrics" + }, + "kitara_media": { + "name": "Kitara Media", + "categoryId": 4, + "url": "http://www.kitaramedia.com/", + "companyId": "kitara_media" + }, + "kixer": { + "name": "Kixer", + "categoryId": 4, + "url": "http://www.kixer.com", + "companyId": "kixer" + }, + "klarna.com": { + "name": "Klarna", + "categoryId": 2, + "url": "https://www.klarna.com/", + "companyId": null + }, + "klaviyo": { + "name": "Klaviyo", + "categoryId": 6, + "url": "https://www.klaviyo.com/", + "companyId": "klaviyo" + }, + "klikki": { + "name": "Klikki", + "categoryId": 4, + "url": "http://www.klikki.com/", + "companyId": "klikki" + }, + "kliksaya": { + "name": "KlikSaya", + "categoryId": 4, + "url": "http://www.kliksaya.com", + "companyId": "kliksaya" + }, + "kmeleo": { + "name": "Kméléo", + "categoryId": 4, + "url": "http://www.6peo.com/", + "companyId": "6peo" + }, + "knoopstat": { + "name": "Knoopstat", + "categoryId": 6, + "url": "http://www.knoopstat.nl", + "companyId": "knoopstat" + }, + "knotch": { + "name": "Knotch", + "categoryId": 2, + "url": "http://knotch.it", + "companyId": "knotch" + }, + "komoona": { + "name": "Komoona", + "categoryId": 4, + "url": "http://www.komoona.com/", + "companyId": "komoona" + }, + "kontera_contentlink": { + "name": "Kontera ContentLink", + "categoryId": 4, + "url": "http://www.kontera.com/", + "companyId": "singtel" + }, + "kontextr": { + "name": "Kontextr", + "categoryId": 4, + "url": "https://www.kontextr.com/", + "companyId": "kontext" + }, + "kontextua": { + "name": "Kontextua", + "categoryId": 4, + "url": "http://www.kontextua.com/", + "companyId": "kontextua" + }, + "korrelate": { + "name": "Korrelate", + "categoryId": 4, + "url": "http://korrelate.com/", + "companyId": "korrelate" + }, + "kortx": { + "name": "Kortx", + "categoryId": 6, + "url": "http://www.kortx.io/", + "companyId": "kortx" + }, + "kount": { + "name": "Kount", + "categoryId": 6, + "url": "https://kount.com/", + "companyId": null + }, + "krux_digital": { + "name": "Salesforce DMP", + "categoryId": 4, + "url": "https://www.salesforce.com/products/marketing-cloud/data-management/?mc=DMP", + "companyId": "salesforce" + }, + "kupona": { + "name": "Kupona", + "categoryId": 4, + "url": "http://www.kupona-media.de/en/retargeting-and-performance-media-width-kupona", + "companyId": "kupona" + }, + "kxcdn.com": { + "name": "Keycdn", + "categoryId": 9, + "url": "https://www.keycdn.com/", + "companyId": null + }, + "kyto": { + "name": "Kyto", + "categoryId": 6, + "url": "https://www.kyto.com/", + "companyId": "kyto" + }, + "ladsp.com": { + "name": "Logicad", + "categoryId": 4, + "url": "https://www.logicad.com/", + "companyId": "logicad" + }, + "lanista_concepts": { + "name": "Lanista Concepts", + "categoryId": 4, + "url": "http://lanistaconcepts.com/", + "companyId": "lanista_concepts" + }, + "latimes": { + "name": "Los Angeles Times", + "categoryId": 8, + "url": "http://www.latimes.com/", + "companyId": "latimes" + }, + "launch_darkly": { + "name": "Launch Darkly", + "categoryId": 5, + "url": "https://launchdarkly.com/index.html", + "companyId": "launch_darkly" + }, + "launchbit": { + "name": "LaunchBit", + "categoryId": 4, + "url": "https://www.launchbit.com/", + "companyId": "launchbit" + }, + "layer-ad.org": { + "name": "Layer-ADS.net", + "categoryId": 4, + "url": "http://layer-ads.net/", + "companyId": null + }, + "lazada": { + "name": "Lazada", + "categoryId": 4, + "url": "https://www.lazada.com/", + "companyId": "lazada" + }, + "lcx_digital": { + "name": "LCX Digital", + "categoryId": 4, + "url": "http://www.lcx.com/", + "companyId": "lcx_digital" + }, + "le_monde.fr": { + "name": "Le Monde.fr", + "categoryId": 8, + "url": "http://www.lemonde.fr/", + "companyId": "le_monde.fr" + }, + "lead_liaison": { + "name": "Lead Liaison", + "categoryId": 6, + "url": "https://www.leadliaison.com", + "companyId": "lead_liaison" + }, + "leadback": { + "name": "Leadback", + "categoryId": 6, + "url": "http://leadback.ru/?utm_source=leadback_widget&utm_medium=eas-balt.ru&utm_campaign=self_ad", + "companyId": "leadback" + }, + "leaddyno": { + "name": "LeadDyno", + "categoryId": 4, + "url": "http://www.leaddyno.com", + "companyId": "leaddyno" + }, + "leadforensics": { + "name": "LeadForensics", + "categoryId": 4, + "url": "http://www.leadforensics.com/", + "companyId": "lead_forensics" + }, + "leadgenic": { + "name": "LeadGENIC", + "categoryId": 4, + "url": "https://leadgenic.com/", + "companyId": "leadgenic" + }, + "leadhit": { + "name": "LeadHit", + "categoryId": 2, + "url": "http://leadhit.ru/", + "companyId": "leadhit" + }, + "leadin": { + "name": "Leadin", + "categoryId": 6, + "url": "https://www.hubspot.com/", + "companyId": "hubspot" + }, + "leading_reports": { + "name": "Leading Reports", + "categoryId": 4, + "url": "https://www.leadingreports.de/", + "companyId": "leading_reports" + }, + "leadinspector": { + "name": "LeadInspector", + "categoryId": 6, + "url": "https://www.leadinspector.de/", + "companyId": "leadinspector" + }, + "leadlander": { + "name": "LeadLander", + "categoryId": 6, + "url": "http://www.leadlander.com/", + "companyId": "leadlander" + }, + "leadlife": { + "name": "LeadLife", + "categoryId": 2, + "url": "http://leadlife.com/", + "companyId": "leadlife" + }, + "leadpages": { + "name": "Leadpages", + "categoryId": 6, + "url": "https://www.leadpages.net/", + "companyId": "leadpages" + }, + "leadplace": { + "name": "LeadPlace", + "categoryId": 6, + "url": "https://temelio.com", + "companyId": "leadplace" + }, + "leads_by_web.com": { + "name": "Leads by Web.com", + "categoryId": 4, + "url": "http://www.leadsbyweb.com", + "companyId": "web.com_group" + }, + "leadscoreapp": { + "name": "LeadScoreApp", + "categoryId": 2, + "url": "http://leadscoreapp.com", + "companyId": "leadscoreapp" + }, + "leadsius": { + "name": "Leadsius", + "categoryId": 4, + "url": "http://www.leadsius.com/", + "companyId": "leadsius" + }, + "leady": { + "name": "Leady", + "categoryId": 4, + "url": "http://www.leady.cz/", + "companyId": "leady" + }, + "leiki": { + "name": "Leiki", + "categoryId": 4, + "url": "http://www.leiki.com", + "companyId": "leiki" + }, + "lengow": { + "name": "Lengow", + "categoryId": 4, + "url": "http://www.lengow.com/", + "companyId": "lengow" + }, + "lenmit.com": { + "name": "lenmit.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lentainform.com": { + "name": "lentainform.com", + "categoryId": 8, + "url": "https://www.lentainform.com/", + "companyId": null + }, + "lenua.de": { + "name": "Lenua System", + "categoryId": 4, + "url": "http://lenua.de/", + "companyId": "synatix" + }, + "let_reach": { + "name": "Let Reach", + "categoryId": 2, + "url": "https://letreach.com/", + "companyId": "let_reach" + }, + "letv": { + "name": "LeTV", + "categoryId": 6, + "url": "http://www.le.com/", + "companyId": "letv" + }, + "level3_communications": { + "name": "Level 3 Communications, Inc.", + "categoryId": 8, + "url": "http://www.level3.com/en/", + "companyId": "level3_communications" + }, + "licensebuttons.net": { + "name": "licensebuttons.net", + "categoryId": 9, + "url": "https://licensebuttons.net/", + "companyId": null + }, + "lifestreet_media": { + "name": "LifeStreet Media", + "categoryId": 4, + "url": "http://lifestreetmedia.com/", + "companyId": "lifestreet_media" + }, + "ligatus": { + "name": "Ligatus", + "categoryId": 4, + "url": "http://www.ligatus.com/", + "companyId": "outbrain" + }, + "limk": { + "name": "Limk", + "categoryId": 4, + "url": "https://limk.com/", + "companyId": "limk" + }, + "line_apps": { + "name": "Line", + "categoryId": 6, + "url": "https://line.me/en-US/", + "companyId": "line" + }, + "linezing": { + "name": "LineZing", + "categoryId": 4, + "url": "http://www.linezing.com/", + "companyId": "linezing" + }, + "linkbucks": { + "name": "Linkbucks", + "categoryId": 4, + "url": "http://www.linkbucks.com/", + "companyId": "linkbucks" + }, + "linkconnector": { + "name": "LinkConnector", + "categoryId": 4, + "url": "http://www.linkconnector.com", + "companyId": "linkconnector" + }, + "linkedin": { + "name": "LinkedIn", + "categoryId": 8, + "url": "https://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_ads": { + "name": "LinkedIn Ads", + "categoryId": 4, + "url": "http://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_analytics": { + "name": "LinkedIn Analytics", + "categoryId": 6, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "linkedin_marketing_solutions": { + "name": "LinkedIn Marketing Solutions", + "categoryId": 4, + "url": "https://business.linkedin.com/marketing-solutions", + "companyId": "microsoft" + }, + "linkedin_widgets": { + "name": "LinkedIn Widgets", + "categoryId": 7, + "url": "https://www.linkedin.com", + "companyId": "microsoft" + }, + "linker": { + "name": "Linker", + "categoryId": 4, + "url": "https://linker.hr/", + "companyId": "linker" + }, + "linkprice": { + "name": "LinkPrice", + "categoryId": 4, + "url": "http://www.linkprice.com/", + "companyId": "linkprice" + }, + "linkpulse": { + "name": "Linkpulse", + "categoryId": 6, + "url": "http://www.linkpulse.com/", + "companyId": "linkpulse" + }, + "linksalpha": { + "name": "LinksAlpha", + "categoryId": 7, + "url": "http://www.linksalpha.com", + "companyId": "linksalpha" + }, + "linksmart": { + "name": "LinkSmart", + "categoryId": 4, + "url": "http://www.linksmart.com/", + "companyId": "sovrn" + }, + "linkstorm": { + "name": "Linkstorm", + "categoryId": 2, + "url": "http://www.linkstorms.com/", + "companyId": "linkstorm" + }, + "linksynergy.com": { + "name": "Rakuten LinkShare", + "categoryId": 4, + "url": "https://rakutenmarketing.com/affiliate", + "companyId": "rakuten" + }, + "linkup": { + "name": "LinkUp", + "categoryId": 6, + "url": "http://www.linkup.com/", + "companyId": "linkup" + }, + "linkwise": { + "name": "Linkwise", + "categoryId": 4, + "url": "http://linkwi.se/global-en/", + "companyId": "linkwise" + }, + "linkwithin": { + "name": "LinkWithin", + "categoryId": 7, + "url": "http://www.linkwithin.com/", + "companyId": "linkwithin" + }, + "liquidm_technology_gmbh": { + "name": "LiquidM Technology GmbH", + "categoryId": 4, + "url": "https://liquidm.com/", + "companyId": "liquidm" + }, + "liqwid": { + "name": "Liqwid", + "categoryId": 4, + "url": "https://liqwid.com/", + "companyId": "liqwid" + }, + "list.ru": { + "name": "Rating@Mail.Ru", + "categoryId": 7, + "url": "http://list.ru/", + "companyId": "megafon" + }, + "listrak": { + "name": "Listrak", + "categoryId": 2, + "url": "http://www.listrak.com/", + "companyId": "listrak" + }, + "live2support": { + "name": "Live2Support", + "categoryId": 2, + "url": "http://www.live2support.com/", + "companyId": "live2support" + }, + "live800": { + "name": "Live800", + "categoryId": 2, + "url": "http://live800.com", + "companyId": "live800" + }, + "live_agent": { + "name": "Live Agent", + "categoryId": 2, + "url": "https://www.ladesk.com/", + "companyId": "liveagent" + }, + "live_help_now": { + "name": "Live Help Now", + "categoryId": 2, + "url": "http://www.livehelpnow.net/", + "companyId": "live_help_now" + }, + "live_intent": { + "name": "Live Intent", + "categoryId": 6, + "url": "http://www.liveintent.com/", + "companyId": "liveintent" + }, + "live_journal": { + "name": "Live Journal", + "categoryId": 6, + "url": "http://www.livejournal.com/", + "companyId": "livejournal" + }, + "liveadexchanger.com": { + "name": "liveadexchanger.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "livechat": { + "name": "LiveChat", + "categoryId": 2, + "url": "http://www.livechatinc.com", + "companyId": "livechat" + }, + "livechatnow": { + "name": "LiveChatNow", + "categoryId": 2, + "url": "http://www.livechatnow.com/", + "companyId": "livechatnow!" + }, + "liveclicker": { + "name": "Liveclicker", + "categoryId": 2, + "url": "http://www.liveclicker.com", + "companyId": "liveclicker" + }, + "livecounter": { + "name": "Livecounter", + "categoryId": 6, + "url": "http://www.livecounter.dk/", + "companyId": "livecounter" + }, + "livefyre": { + "name": "Livefyre", + "categoryId": 1, + "url": "http://www.livefyre.com/", + "companyId": "adobe" + }, + "liveinternet": { + "name": "LiveInternet", + "categoryId": 1, + "url": "http://www.liveinternet.ru/", + "companyId": "liveinternet" + }, + "liveperson": { + "name": "LivePerson", + "categoryId": 2, + "url": "http://www.liveperson.com/", + "companyId": "liveperson" + }, + "liveramp": { + "name": "LiveRamp", + "categoryId": 4, + "url": "https://liveramp.com/", + "companyId": "acxiom" + }, + "livere": { + "name": "LiveRe", + "categoryId": 7, + "url": "http://www.livere.com/", + "companyId": "livere" + }, + "livesportmedia.eu": { + "name": "Livesport Media", + "categoryId": 8, + "url": "http://www.livesportmedia.eu/", + "companyId": null + }, + "livestream": { + "name": "Livestream", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "livetex.ru": { + "name": "LiveTex", + "categoryId": 2, + "url": "https://livetex.ru/", + "companyId": "livetex" + }, + "lkqd": { + "name": "LKQD", + "categoryId": 4, + "url": "http://www.lkqd.com/", + "companyId": "nexstar" + }, + "loadbee.com": { + "name": "Loadbee", + "categoryId": 4, + "url": "https://company.loadbee.com/de/loadbee-home", + "companyId": null + }, + "loadercdn.com": { + "name": "loadercdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "loadsource.org": { + "name": "loadsource.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "localytics": { + "name": "Localytics", + "categoryId": 6, + "url": "http://www.localytics.com/", + "companyId": "localytics" + }, + "lockerdome": { + "name": "LockerDome", + "categoryId": 7, + "url": "https://lockerdome.com", + "companyId": "lockerdome" + }, + "lockerz_share": { + "name": "AddToAny", + "categoryId": 7, + "url": "http://www.addtoany.com/", + "companyId": "addtoany" + }, + "logan_media": { + "name": "Logan Media", + "categoryId": 6, + "url": "http://loganmedia.mobi/", + "companyId": "logan_media" + }, + "logdna": { + "name": "LogDNA", + "categoryId": 4, + "url": "http://www.answerbook.com/", + "companyId": "logdna" + }, + "loggly": { + "name": "Loggly", + "categoryId": 6, + "url": "http://loggly.com/", + "companyId": "loggly" + }, + "logly": { + "name": "logly", + "categoryId": 6, + "url": "http://logly.co.jp/", + "companyId": "logly" + }, + "logsss.com": { + "name": "logsss.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lomadee": { + "name": "Lomadee", + "categoryId": 4, + "url": "http://lomadee.com", + "companyId": "lomadee" + }, + "longtail_video_analytics": { + "name": "JW Player Analytics", + "categoryId": 4, + "url": "http://www.longtailvideo.com/", + "companyId": "jw_player" + }, + "loomia": { + "name": "Loomia", + "categoryId": 4, + "url": "http://www.loomia.com/", + "companyId": "loomia" + }, + "loop11": { + "name": "Loop11", + "categoryId": 6, + "url": "https://360i.com/", + "companyId": "360i" + }, + "loopfuse_oneview": { + "name": "LoopFuse OneView", + "categoryId": 4, + "url": "http://www.loopfuse.com/", + "companyId": "loopfuse" + }, + "lotame": { + "name": "Lotame", + "categoryId": 4, + "url": "http://www.lotame.com/", + "companyId": "lotame" + }, + "lottex_inc": { + "name": "vidcpm.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lucid": { + "name": "Lucid", + "categoryId": 4, + "url": "https://luc.id/", + "companyId": "luc.id" + }, + "lucid_media": { + "name": "Lucid Media", + "categoryId": 4, + "url": "http://www.lucidmedia.com/", + "companyId": "singtel" + }, + "lucini": { + "name": "Lucini", + "categoryId": 4, + "url": "http://www.lucinilucini.com/", + "companyId": "lucini_&_lucini_communications" + }, + "lucky_orange": { + "name": "Lucky Orange", + "categoryId": 6, + "url": "http://www.luckyorange.com/", + "companyId": "lucky_orange" + }, + "luckypushh.com": { + "name": "luckypushh.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lxr100": { + "name": "LXR100", + "categoryId": 4, + "url": "http://www.netelixir.com/lxr100_PPC_management_tool.html", + "companyId": "netelixir" + }, + "lynchpin_analytics": { + "name": "Lynchpin Analytics", + "categoryId": 4, + "url": "http://www.lynchpin.com/", + "companyId": "lynchpin_analytics" + }, + "lytics": { + "name": "Lytics", + "categoryId": 6, + "url": "https://www.lytics.com/", + "companyId": "lytics" + }, + "lyuoaxruaqdo.com": { + "name": "lyuoaxruaqdo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "m-pathy": { + "name": "m-pathy", + "categoryId": 4, + "url": "http://www.m-pathy.com/", + "companyId": "m-pathy" + }, + "m._p._newmedia": { + "name": "M. P. NEWMEDIA", + "categoryId": 4, + "url": "http://www.mp-newmedia.com/", + "companyId": "sticky" + }, + "m4n": { + "name": "M4N", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "mad_ads_media": { + "name": "Mad Ads Media", + "categoryId": 4, + "url": "http://www.madadsmedia.com/", + "companyId": "mad_ads_media" + }, + "madeleine.de": { + "name": "madeleine.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "madison_logic": { + "name": "Madison Logic", + "categoryId": 4, + "url": "http://www.madisonlogic.com/", + "companyId": "madison_logic" + }, + "madnet": { + "name": "MADNET", + "categoryId": 4, + "url": "http://madnet.ru/en", + "companyId": "madnet" + }, + "mads": { + "name": "MADS", + "categoryId": 4, + "url": "http://www.mads.com/", + "companyId": "mads" + }, + "magna_advertise": { + "name": "Magna Advertise", + "categoryId": 4, + "url": "http://magna.ru/", + "companyId": "magna_advertise" + }, + "magnetic": { + "name": "Magnetic", + "categoryId": 4, + "url": "http://www.magnetic.is", + "companyId": "magnetic" + }, + "magnetise_group": { + "name": "Magnetise Group", + "categoryId": 4, + "url": "http://magnetisegroup.com/", + "companyId": "magnetise_group" + }, + "magnify360": { + "name": "Magnify360", + "categoryId": 6, + "url": "http://www.magnify360.com/", + "companyId": "magnify360" + }, + "magnuum.com": { + "name": "magnuum.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mail.ru_banner": { + "name": "Mail.Ru Banner Network", + "categoryId": 4, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_counter": { + "name": "Mail.Ru Counter", + "categoryId": 2, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_group": { + "name": "Mail.Ru Group", + "categoryId": 7, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mailchimp_tracking": { + "name": "MailChimp Tracking", + "categoryId": 4, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "mailerlite.com": { + "name": "Mailerlite", + "categoryId": 10, + "url": "https://www.mailerlite.com/", + "companyId": "mailerlite" + }, + "mailtrack.io": { + "name": "MailTrack.io", + "categoryId": 4, + "url": "https://mailtrack.io", + "companyId": "mailtrack" + }, + "mainadv": { + "name": "mainADV", + "categoryId": 4, + "url": "http://www.mainadv.com/", + "companyId": "mainadv" + }, + "makazi": { + "name": "Makazi", + "categoryId": 4, + "url": "http://www.makazi.com/en/", + "companyId": "makazi_group" + }, + "makeappdev.xyz": { + "name": "makeappdev.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "makesource.cool": { + "name": "makesource.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mango": { + "name": "Mango", + "categoryId": 4, + "url": "https://www.mango-office.ru/", + "companyId": "mango_office" + }, + "manycontacts": { + "name": "ManyContacts", + "categoryId": 4, + "url": "https://www.manycontacts.com/", + "companyId": "manycontacts" + }, + "mapandroute.de": { + "name": "Map and Route", + "categoryId": 2, + "url": "http://www.mapandroute.de/", + "companyId": null + }, + "mapbox": { + "name": "Mapbox", + "categoryId": 2, + "url": "https://www.mapbox.com/", + "companyId": null + }, + "maploco": { + "name": "MapLoco", + "categoryId": 4, + "url": "http://www.maploco.com/", + "companyId": "maploco" + }, + "marchex": { + "name": "Marchex", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "marchex" + }, + "marimedia": { + "name": "Marimedia", + "categoryId": 4, + "url": "http://www.marimedia.net/", + "companyId": "tremor_video" + }, + "marin_search_marketer": { + "name": "Marin Search Marketer", + "categoryId": 4, + "url": "http://www.marinsoftware.com/", + "companyId": "marin_software" + }, + "mark_+_mini": { + "name": "Mark & Mini", + "categoryId": 4, + "url": "http://www.markandmini.com/index.cfm", + "companyId": "edm_group" + }, + "market_thunder": { + "name": "Market Thunder", + "categoryId": 4, + "url": "https://www.makethunder.com/", + "companyId": "market_thunder" + }, + "marketgid": { + "name": "MarketGid", + "categoryId": 4, + "url": "http://www.mgid.com/", + "companyId": "marketgid_usa" + }, + "marketing_automation": { + "name": "Marketing Automation", + "categoryId": 4, + "url": "https://en.frodx.com", + "companyId": "frodx" + }, + "marketo": { + "name": "Marketo", + "categoryId": 4, + "url": "http://www.marketo.com/", + "companyId": "marketo" + }, + "markmonitor": { + "name": "MarkMonitor", + "categoryId": 4, + "url": "https://www.markmonitor.com/", + "companyId": "markmonitor", + "source": "AdGuard" + }, + "marktest": { + "name": "Marktest", + "categoryId": 4, + "url": "http://www.marktest.com/", + "companyId": "marktest_group" + }, + "marshadow.io": { + "name": "marshadow.io", + "categoryId": 4, + "url": null, + "companyId": null + }, + "martini_media": { + "name": "Martini Media", + "categoryId": 4, + "url": "http://martinimediainc.com/", + "companyId": "martini_media" + }, + "maru-edu": { + "name": "Maru-EDU", + "categoryId": 2, + "url": "https://www.maruedr.com", + "companyId": "maruedr" + }, + "marvellous_machine": { + "name": "Marvellous Machine", + "categoryId": 6, + "url": "https://www.marvellousmachine.net/", + "companyId": "marvellous_machine" + }, + "master_banner_network": { + "name": "Master Banner Network", + "categoryId": 4, + "url": "http://www.mbn.com.ua/", + "companyId": "master_banner_network" + }, + "mastertarget": { + "name": "MasterTarget", + "categoryId": 4, + "url": "http://mastertarget.ru/", + "companyId": "mastertarget" + }, + "matelso": { + "name": "Matelso", + "categoryId": 6, + "url": "https://www.matelso.de", + "companyId": "matelso" + }, + "mather_analytics": { + "name": "Mather Analytics", + "categoryId": 6, + "url": "https://www.mathereconomics.com/", + "companyId": "mather_economics" + }, + "mathjax.org": { + "name": "MathJax", + "categoryId": 9, + "url": "https://www.mathjax.org/", + "companyId": null + }, + "matiro": { + "name": "Matiro", + "categoryId": 6, + "url": "http://matiro.com/", + "companyId": "matiro" + }, + "matomo": { + "name": "Matomo", + "categoryId": 6, + "url": "https://matomo.org/s", + "companyId": "matomo" + }, + "matomy_market": { + "name": "Matomy Market", + "categoryId": 4, + "url": "http://www.matomymarket.com/", + "companyId": "matomy_media" + }, + "maxbounty": { + "name": "MaxBounty", + "categoryId": 5, + "url": "http://www.maxbounty.com/", + "companyId": "maxbounty" + }, + "maxcdn": { + "name": "MaxCDN", + "categoryId": 9, + "url": "https://www.maxcdn.com/", + "companyId": null + }, + "maxlab": { + "name": "Maxlab", + "categoryId": 4, + "url": "http://maxlab.ru", + "companyId": "maxlab" + }, + "maxmind": { + "name": "MaxMind", + "categoryId": 4, + "url": "http://www.maxmind.com/", + "companyId": "maxmind" + }, + "maxonclick_com": { + "name": "maxonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "maxpoint_interactive": { + "name": "MaxPoint Interactive", + "categoryId": 4, + "url": "http://www.maxpointinteractive.com/", + "companyId": "maxpoint_interactive" + }, + "maxymiser": { + "name": "Oracle Maxymiser", + "categoryId": 4, + "url": "https://www.oracle.com/marketingcloud/products/testing-and-optimization/index.html", + "companyId": "oracle" + }, + "mbr_targeting": { + "name": "mbr targeting", + "categoryId": 4, + "url": "https://mbr-targeting.com/", + "companyId": "stroer" + }, + "mbuy": { + "name": "MBuy", + "categoryId": 4, + "url": "http://www.adbuyer.com/", + "companyId": "mbuy" + }, + "mcabi": { + "name": "mCabi", + "categoryId": 4, + "url": "https://mcabi.mcloudglobal.com/#", + "companyId": "mcabi" + }, + "mcafee_secure": { + "name": "McAfee Secure", + "categoryId": 5, + "url": "http://www.mcafeesecure.com/us/", + "companyId": "mcafee" + }, + "mconet": { + "name": "MCOnet", + "categoryId": 4, + "url": "http://mconet.biz/", + "companyId": "mconet" + }, + "mdotlabs": { + "name": "MdotLabs", + "categoryId": 4, + "url": "http://www.mdotlabs.com/", + "companyId": "comscore" + }, + "media-clic": { + "name": "Media-clic", + "categoryId": 4, + "url": "http://www.media-clic.com/", + "companyId": "media-click" + }, + "media-imdb.com": { + "name": "IMDB CDN", + "categoryId": 9, + "url": "https://www.imdb.com/", + "companyId": "amazon_associates" + }, + "media.net": { + "name": "Media.net", + "categoryId": 4, + "url": "http://www.media.net/", + "companyId": "media.net" + }, + "media_impact": { + "name": "Media Impact", + "categoryId": 4, + "url": "https://mediaimpact.de/index.html", + "companyId": "media_impact" + }, + "media_innovation_group": { + "name": "Xaxis", + "categoryId": 4, + "url": "https://www.xaxis.com/", + "companyId": "media_innovation_group" + }, + "media_today": { + "name": "Media Today", + "categoryId": 4, + "url": "http://mediatoday.ru/", + "companyId": "media_today" + }, + "mediaad": { + "name": "MediaAd", + "categoryId": 4, + "url": "https://mediaad.org", + "companyId": "mediaad" + }, + "mediaglu": { + "name": "Mediaglu", + "categoryId": 4, + "url": "http://mlnadvertising.com/", + "companyId": "appnexus" + }, + "mediahub": { + "name": "MediaHub", + "categoryId": 4, + "url": "http://www.mediahub.com/", + "companyId": "mediahub" + }, + "medialand": { + "name": "Medialand", + "categoryId": 4, + "url": "http://medialand.ru", + "companyId": "medialand" + }, + "medialead": { + "name": "Medialead", + "categoryId": 4, + "url": "https://www.medialead.de/", + "companyId": "the_reach_group" + }, + "mediamath": { + "name": "MediaMath", + "categoryId": 4, + "url": "http://www.mediamath.com/", + "companyId": "mediamath" + }, + "mediametrics": { + "name": "Mediametrics", + "categoryId": 7, + "url": "http://mediametrics.ru", + "companyId": "mediametrics" + }, + "median": { + "name": "Median", + "categoryId": 4, + "url": "http://median.hu", + "companyId": "median" + }, + "mediapass": { + "name": "MediaPass", + "categoryId": 4, + "url": "http://www.mediapass.com/", + "companyId": "mediapass" + }, + "mediapost_communications": { + "name": "Mediapost Communications", + "categoryId": 6, + "url": "https://vrm.mediapostcommunication.net/", + "companyId": "mediapost_communications" + }, + "mediarithmics.com": { + "name": "Mediarithmics", + "categoryId": 4, + "url": "http://www.mediarithmics.com/en/", + "companyId": "mediarithmics" + }, + "mediascope": { + "name": "Mediascope", + "categoryId": 6, + "url": "http://mediascope.net/", + "companyId": "mediascope" + }, + "mediashakers": { + "name": "MediaShakers", + "categoryId": 4, + "url": "http://www.mediashakers.com/", + "companyId": "mediashakers" + }, + "mediashift": { + "name": "MediaShift", + "categoryId": 4, + "url": "http://www.mediashift.com/", + "companyId": "mediashift" + }, + "mediator.media": { + "name": "Mediator", + "categoryId": 6, + "url": "https://mediator.media/", + "companyId": "mycom_bv" + }, + "mediav": { + "name": "MediaV", + "categoryId": 4, + "url": "https://www.mediav.com/", + "companyId": "mediav" + }, + "mediawhiz": { + "name": "Mediawhiz", + "categoryId": 4, + "url": "http://www.mediawhiz.com/", + "companyId": "matomy_media" + }, + "medigo": { + "name": "Medigo", + "categoryId": 4, + "url": "https://www.mediego.com/en/", + "companyId": "mediego" + }, + "medley": { + "name": "Medley", + "categoryId": 4, + "url": "http://medley.com/", + "companyId": "friendfinder_networks" + }, + "medyanet": { + "name": "MedyaNet", + "categoryId": 4, + "url": "http://www.medyanet.com.tr/", + "companyId": "medyanet" + }, + "meebo_bar": { + "name": "Meebo Bar", + "categoryId": 7, + "url": "http://bar.meebo.com/", + "companyId": "google" + }, + "meetrics": { + "name": "Meetrics", + "categoryId": 4, + "url": "http://www.meetrics.de/", + "companyId": "meetrics" + }, + "megaindex": { + "name": "MegaIndex", + "categoryId": 4, + "url": "http://www.megaindex.ru", + "companyId": "megaindex" + }, + "mein-bmi.com": { + "name": "mein-bmi.com", + "categoryId": 12, + "url": "https://www.mein-bmi.com/", + "companyId": null + }, + "melissa": { + "name": "Melissa", + "categoryId": 6, + "url": "https://www.melissa.com/", + "companyId": "melissa_global_intelligence" + }, + "melt": { + "name": "Melt", + "categoryId": 4, + "url": "http://meltdsp.com/", + "companyId": "melt" + }, + "menlo": { + "name": "Menlo", + "categoryId": 4, + "url": "http://www.menlotechnologies.cn/", + "companyId": "menlotechnologies" + }, + "mentad": { + "name": "MentAd", + "categoryId": 4, + "url": "http://www.mentad.com/", + "companyId": "mentad" + }, + "mercado": { + "name": "Mercado", + "categoryId": 4, + "url": "https://www.mercadolivre.com.br/", + "companyId": "mercado_livre" + }, + "merchantadvantage": { + "name": "MerchantAdvantage", + "categoryId": 4, + "url": "http://www.merchantadvantage.com/channelmanagement.cfm", + "companyId": "merchantadvantage" + }, + "merchenta": { + "name": "Merchenta", + "categoryId": 4, + "url": "http://www.merchenta.com/", + "companyId": "merchenta" + }, + "mercury_media": { + "name": "Mercury Media", + "categoryId": 4, + "url": "http://trackingsoft.com/", + "companyId": "mercury_media" + }, + "merkle_research": { + "name": "Merkle Research", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "merkle_rkg": { + "name": "Merkle RKG", + "categoryId": 6, + "url": "https://www.merkleinc.com/what-we-do/digital-agency-services/rkg-now-fully-integrated-merkle", + "companyId": "dentsu_aegis_network" + }, + "messenger.com": { + "name": "Facebook Messenger", + "categoryId": 7, + "url": "https://messenger.com", + "companyId": "facebook" + }, + "meta_network": { + "name": "Meta Network", + "categoryId": 7, + "url": "http://www.metanetwork.com/", + "companyId": "meta_network" + }, + "metaffiliation.com": { + "name": "Netaffiliation", + "categoryId": 4, + "url": "http://netaffiliation.com/", + "companyId": "kwanko" + }, + "metapeople": { + "name": "Metapeople", + "categoryId": 4, + "url": "http://www.metapeople.com/us/", + "companyId": "metapeople" + }, + "metrigo": { + "name": "Metrigo", + "categoryId": 4, + "url": "http://metrigo.com/", + "companyId": "metrigo" + }, + "metriweb": { + "name": "MetriWeb", + "categoryId": 4, + "url": "http://www.metriware.be/", + "companyId": "metriware" + }, + "miaozhen": { + "name": "Miaozhen", + "categoryId": 4, + "url": "http://miaozhen.com/en/index.html", + "companyId": "miaozhen" + }, + "microad": { + "name": "MicroAd", + "categoryId": 4, + "url": "https://www.microad.co.jp/", + "companyId": "microad" + }, + "microsoft": { + "name": "Microsoft Services", + "categoryId": 8, + "url": "http://www.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_adcenter_conversion": { + "name": "Microsoft adCenter Conversion", + "categoryId": 4, + "url": "https://adcenter.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_analytics": { + "name": "Microsoft Analytics", + "categoryId": 4, + "url": "https://adcenter.microsoft.com", + "companyId": "microsoft" + }, + "microsoft_clarity": { + "name": "Microsoft Clarity", + "categoryId": 6, + "url": "https://clarity.microsoft.com/", + "companyId": "microsoft" + }, + "mindset_media": { + "name": "Mindset Media", + "categoryId": 4, + "url": "http://www.mindset-media.com/", + "companyId": "google" + }, + "mindspark": { + "name": "Mindspark", + "categoryId": 6, + "url": "http://www.mindspark.com/", + "companyId": "iac_apps" + }, + "mindviz_tracker": { + "name": "MindViz Tracker", + "categoryId": 4, + "url": "http://mvtracker.com/", + "companyId": "mindviz" + }, + "minewhat": { + "name": "MineWhat", + "categoryId": 4, + "url": "http://www.minewhat.com", + "companyId": "minewhat" + }, + "mints_app": { + "name": "Mints App", + "categoryId": 2, + "url": "https://mintsapp.io/", + "companyId": "mints_app" + }, + "minute.ly": { + "name": "minute.ly", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "minute.ly_video": { + "name": "minute.ly video", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "mirando": { + "name": "Mirando", + "categoryId": 4, + "url": "http://mirando.de", + "companyId": "mirando" + }, + "mirtesen.ru": { + "name": "mirtesen.ru", + "categoryId": 7, + "url": "https://mirtesen.ru/", + "companyId": null + }, + "mister_bell": { + "name": "Mister Bell", + "categoryId": 4, + "url": "http://misterbell.fr/", + "companyId": "mister_bell" + }, + "mixi": { + "name": "mixi", + "categoryId": 7, + "url": "http://mixi.jp/", + "companyId": "mixi" + }, + "mixpanel": { + "name": "Mixpanel", + "categoryId": 6, + "url": "http://mixpanel.com/", + "companyId": "mixpanel" + }, + "mixpo": { + "name": "Mixpo", + "categoryId": 4, + "url": "http://dynamicvideoad.mixpo.com/", + "companyId": "mixpo" + }, + "mluvii": { + "name": "Mluvii", + "categoryId": 2, + "url": "https://www.mluvii.com", + "companyId": "mluvii" + }, + "mncdn.com": { + "name": "MediaNova CDN", + "categoryId": 9, + "url": "https://www.medianova.com/", + "companyId": null + }, + "moat": { + "name": "Moat", + "categoryId": 4, + "url": "http://www.moat.com/", + "companyId": "oracle" + }, + "mobicow": { + "name": "Mobicow", + "categoryId": 4, + "url": "http://www.mobicow.com/", + "companyId": "mobicow" + }, + "mobify": { + "name": "Mobify", + "categoryId": 4, + "url": "http://www.mobify.com/", + "companyId": "mobify" + }, + "mobtrks.com": { + "name": "mobtrks.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mocean_mobile": { + "name": "mOcean Mobile", + "categoryId": 4, + "url": "http://www.moceanmobile.com/", + "companyId": "pubmatic" + }, + "mochapp": { + "name": "MoChapp", + "categoryId": 2, + "url": "http://www.mochapp.com/", + "companyId": "mochapp" + }, + "modern_impact": { + "name": "Modern Impact", + "categoryId": 4, + "url": "http://www.modernimpact.com/", + "companyId": "modern_impact" + }, + "modernus": { + "name": "Modernus", + "categoryId": 6, + "url": "http://www.modernus.is", + "companyId": "modernus" + }, + "modulepush.com": { + "name": "modulepush.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "mogo_interactive": { + "name": "Mogo Interactive", + "categoryId": 4, + "url": "http://www.mogomarketing.com/", + "companyId": "mogo_interactive" + }, + "mokono_analytics": { + "name": "Mokono Analytics", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "monero_miner": { + "name": "Monero Miner", + "categoryId": 8, + "url": "http://devappgrant.space/", + "companyId": null + }, + "monetate": { + "name": "Monetate", + "categoryId": 6, + "url": "http://monetate.com", + "companyId": "monetate" + }, + "monetize_me": { + "name": "Monetize Me", + "categoryId": 4, + "url": "http://www.monetize-me.com/", + "companyId": "monetize_me" + }, + "moneytizer": { + "name": "Moneytizer", + "categoryId": 4, + "url": "https://www.themoneytizer.com/", + "companyId": "the_moneytizer" + }, + "mongoose_metrics": { + "name": "Mongoose Metrics", + "categoryId": 4, + "url": "http://www.mongoosemetrics.com/", + "companyId": "mongoose_metrics" + }, + "monitis": { + "name": "Monitis", + "categoryId": 6, + "url": "http://www.monitis.com/", + "companyId": "monitis" + }, + "monitus": { + "name": "Monitus", + "categoryId": 6, + "url": "http://www.monitus.net/", + "companyId": "monitus" + }, + "monotype_gmbh": { + "name": "Monotype GmbH", + "categoryId": 9, + "url": "http://www.monotype.com/", + "companyId": "monotype" + }, + "monotype_imaging": { + "name": "Fonts.com Store", + "categoryId": 2, + "url": "https://www.fonts.com/", + "companyId": "monotype" + }, + "monsido": { + "name": "Monsido", + "categoryId": 6, + "url": "https://monsido.com/", + "companyId": "monsido" + }, + "monster_advertising": { + "name": "Monster Advertising", + "categoryId": 4, + "url": "http://www.monster.com/", + "companyId": "monster_worldwide" + }, + "mooxar": { + "name": "Mooxar", + "categoryId": 4, + "url": "http://mooxar.com/", + "companyId": "mooxar" + }, + "mopinion.com": { + "name": "Mopinion", + "categoryId": 2, + "url": "https://mopinion.com/", + "companyId": "mopinion" + }, + "mopub": { + "name": "MoPub", + "categoryId": 4, + "url": "https://www.mopub.com/", + "companyId": "twitter" + }, + "more_communication": { + "name": "More Communication", + "categoryId": 4, + "url": "http://www.more-com.co.jp/", + "companyId": "more_communication" + }, + "moreads": { + "name": "moreAds", + "categoryId": 4, + "url": "https://www.moras.jp", + "companyId": "moreads" + }, + "motigo_webstats": { + "name": "Motigo Webstats", + "categoryId": 7, + "url": "http://webstats.motigo.com/", + "companyId": "motigo" + }, + "motionpoint": { + "name": "MotionPoint", + "categoryId": 6, + "url": "http://www.motionpoint.com/", + "companyId": "motionpoint_corporation" + }, + "mouseflow": { + "name": "Mouseflow", + "categoryId": 6, + "url": "http://mouseflow.com/", + "companyId": "mouseflow" + }, + "mousestats": { + "name": "MouseStats", + "categoryId": 4, + "url": "http://www.mousestats.com/", + "companyId": "mousestats" + }, + "mousetrace": { + "name": "MouseTrace", + "categoryId": 6, + "url": "http://www.mousetrace.com/", + "companyId": "mousetrace" + }, + "mov.ad": { + "name": "Mov.ad ", + "categoryId": 8, + "url": null, + "companyId": null + }, + "movable_ink": { + "name": "Movable Ink", + "categoryId": 2, + "url": "https://movableink.com/", + "companyId": "movable_ink" + }, + "movable_media": { + "name": "Movable Media", + "categoryId": 4, + "url": "http://www.movablemedia.com/", + "companyId": "movable_media" + }, + "moz": { + "name": "Moz", + "categoryId": 8, + "url": "https://moz.com/", + "companyId": null + }, + "mozoo": { + "name": "MoZoo", + "categoryId": 4, + "url": "http://mozoo.com/", + "companyId": "mozoo" + }, + "mrp": { + "name": "MRP", + "categoryId": 4, + "url": "https://www.mrpfd.com/", + "companyId": "mrp" + }, + "mrpdata": { + "name": "MRP", + "categoryId": 6, + "url": "http://mrpdata.com/Account/Login?ReturnUrl=%2F", + "companyId": "fifth_story" + }, + "mrskincash": { + "name": "MrSkinCash", + "categoryId": 3, + "url": "http://mrskincash.com/", + "companyId": "mrskincash.com" + }, + "msn": { + "name": "Microsoft Network", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "muscula": { + "name": "Muscula", + "categoryId": 4, + "url": "https://www.universe-surf.de/", + "companyId": "universe_surf" + }, + "mux_inc": { + "name": "Mux", + "categoryId": 0, + "url": "https://mux.com/", + "companyId": "mux_inc" + }, + "mybloglog": { + "name": "MyBlogLog", + "categoryId": 7, + "url": "http://www.mybloglog.com/", + "companyId": "verizon" + }, + "mybuys": { + "name": "MyBuys", + "categoryId": 4, + "url": "http://www.mybuys.com/", + "companyId": "magnetic" + }, + "mycdn.me": { + "name": "Mail.Ru CDN", + "categoryId": 9, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "mycliplister.com": { + "name": "Cliplister", + "categoryId": 2, + "url": "https://www.cliplister.com/", + "companyId": null + }, + "mycounter.ua": { + "name": "MyCounter.ua", + "categoryId": 6, + "url": "http://mycounter.ua", + "companyId": "mycounter.ua" + }, + "myfonts": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "myfonts_counter": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "mypagerank": { + "name": "MyPagerank", + "categoryId": 6, + "url": "http://www.mypagerank.net/", + "companyId": "mypagerank" + }, + "mystat": { + "name": "MyStat", + "categoryId": 7, + "url": "http://mystat.hu/", + "companyId": "myst_statistics" + }, + "mythings": { + "name": "myThings", + "categoryId": 4, + "url": "http://www.mythings.com/", + "companyId": "mythings" + }, + "mytop_counter": { + "name": "Mytop Counter", + "categoryId": 7, + "url": "http://mytop-in.net/", + "companyId": "mytop-in" + }, + "nakanohito.jp": { + "name": "Nakanohito", + "categoryId": 4, + "url": "http://nakanohito.jp/", + "companyId": "userinsight" + }, + "namogoo": { + "name": "Namoogoo", + "categoryId": 4, + "url": "https://www.namogoo.com/", + "companyId": null + }, + "nanigans": { + "name": "Nanigans", + "categoryId": 4, + "url": "http://www.nanigans.com/", + "companyId": "nanigans" + }, + "nano_interactive": { + "name": "Nano Interactive", + "categoryId": 4, + "url": "http://www.nanointeractive.com/home/de", + "companyId": "nano_interactive" + }, + "nanorep": { + "name": "nanoRep", + "categoryId": 2, + "url": "http://www.nanorep.com/", + "companyId": "logmein" + }, + "narando": { + "name": "Narando", + "categoryId": 0, + "url": "https://narando.com/", + "companyId": "narando" + }, + "narrativ": { + "name": "Narrativ", + "categoryId": 4, + "url": "https://narrativ.com/", + "companyId": "narrativ" + }, + "narrative_io": { + "name": "Narrative", + "categoryId": 6, + "url": "http://www.narrative.io/", + "companyId": "narrative.io" + }, + "natimatica": { + "name": "Natimatica", + "categoryId": 4, + "url": "http://natimatica.com/", + "companyId": "natimatica" + }, + "nativeads.com": { + "name": "native ads", + "categoryId": 4, + "url": "https://nativeads.com/", + "companyId": null + }, + "nativeroll": { + "name": "Nativeroll", + "categoryId": 0, + "url": "http://nativeroll.tv/", + "companyId": "native_roll" + }, + "nativo": { + "name": "Nativo", + "categoryId": 4, + "url": "http://www.nativo.net/", + "companyId": "nativo" + }, + "navegg_dmp": { + "name": "Navegg", + "categoryId": 6, + "url": "https://www.navegg.com/en/", + "companyId": "navegg" + }, + "naver.com": { + "name": "Naver", + "categoryId": 4, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "naver_search": { + "name": "Naver Search", + "categoryId": 2, + "url": "http://www.naver.com/", + "companyId": "naver" + }, + "nbc_news": { + "name": "NBC News", + "categoryId": 8, + "url": "https://www.nbcnews.com/", + "companyId": null + }, + "ncol": { + "name": "NCOL", + "categoryId": 4, + "url": "http://www.ncol.com/", + "companyId": "ncol" + }, + "needle": { + "name": "Needle", + "categoryId": 2, + "url": "http://www.needle.com", + "companyId": "needle" + }, + "nekudo.com": { + "name": "Nekudo", + "categoryId": 2, + "url": "https://nekudo.com/", + "companyId": "nekudo" + }, + "neodata": { + "name": "Neodata", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "neory": { + "name": "NEORY ", + "categoryId": 4, + "url": "https://www.neory.com/", + "companyId": "neory" + }, + "nerfherdersolo_com": { + "name": "nerfherdersolo.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "net-metrix": { + "name": "NET-Metrix", + "categoryId": 6, + "url": "http://www.net-metrix.ch/", + "companyId": "net-metrix" + }, + "net-results": { + "name": "Net-Results", + "categoryId": 4, + "url": "http://www.net-results.com/", + "companyId": "net-results" + }, + "net_avenir": { + "name": "Net Avenir", + "categoryId": 4, + "url": "http://www.netavenir.com/", + "companyId": "net_avenir" + }, + "net_communities": { + "name": "Net Communities", + "categoryId": 4, + "url": "http://www.netcommunities.com/", + "companyId": "net_communities" + }, + "net_visibility": { + "name": "NET Visibility", + "categoryId": 4, + "url": "http://www.netvisibility.co.uk", + "companyId": "net_visibility" + }, + "netbiscuits": { + "name": "Netbiscuits", + "categoryId": 6, + "url": "http://www.netbiscuits.net/", + "companyId": "netbiscuits" + }, + "netbooster_group": { + "name": "NetBooster Group", + "categoryId": 4, + "url": "http://www.netbooster.com/", + "companyId": "netbooster_group" + }, + "netflix": { + "name": "Netflix", + "categoryId": 0, + "url": "https://www.netflix.com/", + "companyId": "netflix", + "source": "AdGuard" + }, + "netletix": { + "name": "Netletix", + "categoryId": 4, + "url": "http://www.netletix.com//", + "companyId": "ip_de" + }, + "netminers": { + "name": "Netminers", + "categoryId": 6, + "url": "http://netminers.dk/", + "companyId": "netminers" + }, + "netmining": { + "name": "Netmining", + "categoryId": 4, + "url": "http://www.netmining.com/", + "companyId": "zeta" + }, + "netmonitor": { + "name": "NetMonitor", + "categoryId": 6, + "url": "http://www.netmanager.net/en/", + "companyId": "netmonitor" + }, + "netratings_sitecensus": { + "name": "NetRatings SiteCensus", + "categoryId": 4, + "url": "http://www.nielsen-online.com/intlpage.html", + "companyId": "nielsen" + }, + "netrk.net": { + "name": "nfxTrack", + "categoryId": 6, + "url": "https://netrk.net/", + "companyId": "netzeffekt" + }, + "netseer": { + "name": "NetSeer", + "categoryId": 4, + "url": "http://www.netseer.com/", + "companyId": "netseer" + }, + "netshelter": { + "name": "NetShelter", + "categoryId": 4, + "url": "http://www.netshelter.net/", + "companyId": "netshelter" + }, + "netsprint_audience": { + "name": "Netsprint Audience", + "categoryId": 6, + "url": "http://audience.netsprint.eu/", + "companyId": "netsprint" + }, + "networkedblogs": { + "name": "NetworkedBlogs", + "categoryId": 7, + "url": "http://w.networkedblogs.com/", + "companyId": "networkedblogs" + }, + "neustar_adadvisor": { + "name": "Neustar AdAdvisor", + "categoryId": 4, + "url": "http://www.targusinfo.com/", + "companyId": "neustar" + }, + "new_relic": { + "name": "New Relic", + "categoryId": 6, + "url": "http://newrelic.com/", + "companyId": "new_relic" + }, + "newscgp.com": { + "name": "News Connect", + "categoryId": 4, + "url": "https://newscorp.com/", + "companyId": "news_corp" + }, + "newsmax": { + "name": "Newsmax", + "categoryId": 4, + "url": "http://www.newsmax.com/", + "companyId": "newsmax" + }, + "newstogram": { + "name": "Newstogram", + "categoryId": 4, + "url": "http://www.newstogram.com/", + "companyId": "dailyme" + }, + "newsupdatedir.info": { + "name": "newsupdatedir.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "newsupdatewe.info": { + "name": "newsupdatewe.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "newtention": { + "name": "Newtention", + "categoryId": 4, + "url": "http://www.newtention.de/", + "companyId": "next_audience" + }, + "nexage": { + "name": "Nexage", + "categoryId": 4, + "url": "http://www.nexage.com/", + "companyId": "verizon" + }, + "nexeps.com": { + "name": "neXeps", + "categoryId": 4, + "url": "http://nexeps.com/", + "companyId": null + }, + "next_performance": { + "name": "Next Performance", + "categoryId": 4, + "url": "http://www.nextperformance.com/", + "companyId": "nextperf" + }, + "next_user": { + "name": "Next User", + "categoryId": 4, + "url": "https://www.nextuser.com/", + "companyId": "next_user" + }, + "nextag_roi_optimizer": { + "name": "Nextag ROI Optimizer", + "categoryId": 4, + "url": "http://www.nextag.com/", + "companyId": "nextag" + }, + "nextclick": { + "name": "Nextclick", + "categoryId": 4, + "url": "http://nextclick.pl/", + "companyId": "leadbullet" + }, + "nextstat": { + "name": "NextSTAT", + "categoryId": 6, + "url": "http://www.nextstat.com/", + "companyId": "nextstat" + }, + "neytiv": { + "name": "Neytiv", + "categoryId": 6, + "url": "http://neytiv.com/", + "companyId": "neytiv" + }, + "ngage_inc.": { + "name": "NGage INC.", + "categoryId": 6, + "url": "https://www.nginx.com/", + "companyId": "nginx" + }, + "nice264.com": { + "name": "Nice264", + "categoryId": 0, + "url": "http://nice264.com/", + "companyId": null + }, + "nimblecommerce": { + "name": "NimbleCommerce", + "categoryId": 4, + "url": "http://www.nimblecommerce.com/", + "companyId": "nimblecommerce" + }, + "ninja_access_analysis": { + "name": "Ninja Access Analysis", + "categoryId": 6, + "url": "http://www.ninja.co.jp/analysis/", + "companyId": "samurai_factory" + }, + "nirror": { + "name": "Nirror", + "categoryId": 6, + "url": "https://www.nirror.com/", + "companyId": "nirror" + }, + "nitropay": { + "name": "NitroPay", + "categoryId": 4, + "url": "https://nitropay.com/", + "companyId": "gg_software" + }, + "nk.pl_widgets": { + "name": "NK.pl Widgets", + "categoryId": 4, + "url": "http://nk.pl", + "companyId": "nk.pl" + }, + "noaa.gov": { + "name": "National Oceanic and Atmospheric Administration", + "categoryId": 8, + "url": "https://noaa.gov/", + "companyId": null + }, + "noddus": { + "name": "Noddus", + "categoryId": 4, + "url": "https://www.enterprise.noddus.com/", + "companyId": "noddus" + }, + "nolix": { + "name": "Nolix", + "categoryId": 4, + "url": "http://nolix.ru/", + "companyId": "nolix" + }, + "nonstop_consulting": { + "name": "Resolution Media", + "categoryId": 4, + "url": "https://resolutionmedia.com/", + "companyId": "resolution_media" + }, + "noop.style": { + "name": "noop.style", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nosto.com": { + "name": "nosto", + "categoryId": 6, + "url": "http://www.nosto.com/", + "companyId": null + }, + "notify": { + "name": "Notify", + "categoryId": 4, + "url": "http://notify.ag/en/", + "companyId": null + }, + "notifyfox": { + "name": "Notifyfox", + "categoryId": 6, + "url": "https://notifyfox.com/", + "companyId": "notifyfox" + }, + "now_interact": { + "name": "Now Interact", + "categoryId": 6, + "url": "http://nowinteract.com/", + "companyId": "now_interact" + }, + "npario": { + "name": "nPario", + "categoryId": 6, + "url": "http://npario.com/", + "companyId": "npario" + }, + "nplexmedia": { + "name": "nPlexMedia", + "categoryId": 4, + "url": "http://www.nplexmedia.com/", + "companyId": "nplexmedia" + }, + "nrelate": { + "name": "nRelate", + "categoryId": 2, + "url": "http://nrelate.com/", + "companyId": "iac_apps" + }, + "ns8": { + "name": "NS8", + "categoryId": 4, + "url": "https://www.ns8.com/", + "companyId": null + }, + "nt.vc": { + "name": "Next Tuesday GmbH", + "categoryId": 8, + "url": "http://www.nexttuesday.de/", + "companyId": null + }, + "ntent": { + "name": "NTENT", + "categoryId": 4, + "url": "http://www.verticalsearchworks.com", + "companyId": "ntent" + }, + "nttcom_online_marketing_solutions": { + "name": "NTTCom Online Marketing Solutions", + "categoryId": 6, + "url": "http://www.digitalforest.co.jp/", + "companyId": "nttcom_online_marketing_solutions" + }, + "nuffnang": { + "name": "Nuffnang", + "categoryId": 4, + "url": "http://nuffnang.com/", + "companyId": "nuffnang" + }, + "nugg.ad": { + "name": "Nugg.Ad", + "categoryId": 4, + "url": "http://www.nugg.ad/", + "companyId": "nugg.ad" + }, + "nui_media": { + "name": "NUI Media", + "categoryId": 4, + "url": "http://adjuggler.com/", + "companyId": "nui_media" + }, + "numbers.md": { + "name": "Numbers.md", + "categoryId": 6, + "url": "https://numbers.md/", + "companyId": "numbers.md" + }, + "numerator": { + "name": "Numerator", + "categoryId": 5, + "url": "http://www.channeliq.com/", + "companyId": "numerator" + }, + "ny_times_tagx": { + "name": "NY Times TagX", + "categoryId": 6, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "nyacampwk.com": { + "name": "nyacampwk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyetm2mkch.com": { + "name": "nyetm2mkch.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyt.com": { + "name": "The New York Times", + "categoryId": 8, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "o12zs3u2n.com": { + "name": "o12zs3u2n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "o2.pl": { + "name": "o2.pl", + "categoryId": 8, + "url": "https://www.o2.pl/", + "companyId": "o2.pl" + }, + "o2online.de": { + "name": "o2online.de", + "categoryId": 8, + "url": "https://www.o2online.de/", + "companyId": null + }, + "oath_inc": { + "name": "Oath", + "categoryId": 8, + "url": "https://www.oath.com/", + "companyId": "verizon" + }, + "observer": { + "name": "Observer", + "categoryId": 4, + "url": "http://www.observerapp.com", + "companyId": "observer" + }, + "ocioso": { + "name": "Ocioso", + "categoryId": 7, + "url": "http://ocioso.com.br/", + "companyId": "ocioso" + }, + "oclasrv.com": { + "name": "oclasrv.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octapi.net": { + "name": "octapi.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octavius": { + "name": "Octavius", + "categoryId": 4, + "url": "http://octavius.rocks/", + "companyId": "octavius" + }, + "office.com": { + "name": "office.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office.net": { + "name": "office.net", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office365.com": { + "name": "office365.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "oghub.io": { + "name": "OG Hub", + "categoryId": 11, + "url": null, + "companyId": null + }, + "oh_my_stats": { + "name": "Oh My Stats", + "categoryId": 6, + "url": "https://ohmystats.com/", + "companyId": "oh_my_stats" + }, + "ohana_advertising_network": { + "name": "Ohana Advertising Network", + "categoryId": 4, + "url": "http://adohana.com/", + "companyId": "ohana_advertising_network" + }, + "olapic": { + "name": "Olapic", + "categoryId": 4, + "url": "https://www.olapic.com/", + "companyId": "olapic" + }, + "olark": { + "name": "Olark", + "categoryId": 2, + "url": "http://www.olark.com/", + "companyId": "olark" + }, + "olx-st.com": { + "name": "OLX", + "categoryId": 8, + "url": "http://www.olx.com/", + "companyId": null + }, + "omarsys.com": { + "name": "Omarsys", + "categoryId": 4, + "url": "http://omarsys.com/", + "companyId": "xcaliber" + }, + "ometria": { + "name": "Ometria", + "categoryId": 4, + "url": "http://www.ometria.com/", + "companyId": "ometria" + }, + "omg": { + "name": "OMG", + "categoryId": 7, + "url": "http://uk.omgpm.com/", + "companyId": "optimise_media" + }, + "omniconvert.com": { + "name": "Omniconvert", + "categoryId": 4, + "url": "https://www.omniconvert.com/", + "companyId": "omniconvert" + }, + "omniscienta": { + "name": "Omniscienta", + "categoryId": 4, + "url": "http://www.omniscienta.com/", + "companyId": null + }, + "oms": { + "name": "OMS", + "categoryId": 4, + "url": "http://oms.eu/", + "companyId": null + }, + "onaudience": { + "name": "OnAudience", + "categoryId": 4, + "url": "http://www.onaudience.com/", + "companyId": "cloud_technologies" + }, + "oneall": { + "name": "Oneall", + "categoryId": 7, + "url": "http://www.oneall.com/", + "companyId": "oneall" + }, + "onefeed": { + "name": "Onefeed", + "categoryId": 6, + "url": "http://www.onefeed.co.uk", + "companyId": "onefeed" + }, + "onesignal": { + "name": "OneSignal", + "categoryId": 5, + "url": "https://onesignal.com/", + "companyId": "onesignal" + }, + "onestat": { + "name": "OneStat", + "categoryId": 6, + "url": "http://www.onestat.com/", + "companyId": "onestat_international_b.v." + }, + "onet.pl": { + "name": "onet", + "categoryId": 8, + "url": "https://www.onet.pl/", + "companyId": null + }, + "onetag": { + "name": "OneTag", + "categoryId": 4, + "url": "https://www.onetag.com/", + "companyId": "onetag" + }, + "onetrust": { + "name": "OneTrust", + "categoryId": 5, + "url": "https://www.onetrust.com/", + "companyId": "onetrust" + }, + "onfocus.io": { + "name": "OnFocus", + "categoryId": 4, + "url": "http://onfocus.io/", + "companyId": "onfocus" + }, + "onlinewebstat": { + "name": "Onlinewebstat", + "categoryId": 6, + "url": "http://www.onlinewebstats.com/index.php?lang=en", + "companyId": "onlinewebstat" + }, + "onswipe": { + "name": "Onswipe", + "categoryId": 4, + "url": "http://www.onswipe.com/", + "companyId": "onswipe" + }, + "onthe.io": { + "name": "OnThe.io", + "categoryId": 6, + "url": "https://t.onthe.io/media", + "companyId": "onthe.io" + }, + "ontraport_autopilot": { + "name": "Ontraport Autopilot", + "categoryId": 4, + "url": "http://www.moon-ray.com/", + "companyId": "ontraport" + }, + "ooyala.com": { + "name": "Ooyala Player", + "categoryId": 0, + "url": "https://www.ooyala.com/", + "companyId": "telstra" + }, + "ooyala_analytics": { + "name": "Ooyala Analytics", + "categoryId": 6, + "url": "https://www.telstraglobal.com/", + "companyId": "telstra" + }, + "open_adexchange": { + "name": "Open AdExchange", + "categoryId": 4, + "url": "http://openadex.dk/", + "companyId": "open_adexchange" + }, + "open_adstream": { + "name": "Open Adstream", + "categoryId": 4, + "url": "https://www.appnexus.com/en", + "companyId": "appnexus" + }, + "open_share_count": { + "name": "Open Share Count", + "categoryId": 4, + "url": "http://opensharecount.com/", + "companyId": "open_share_count" + }, + "openload": { + "name": "Openload", + "categoryId": 9, + "url": "https://openload.co/", + "companyId": null + }, + "openstat": { + "name": "OpenStat", + "categoryId": 6, + "url": "https://www.openstat.ru/", + "companyId": "openstat" + }, + "opentracker": { + "name": "Opentracker", + "categoryId": 6, + "url": "http://www.opentracker.net/", + "companyId": "opentracker" + }, + "openwebanalytics": { + "name": "Open Web Analytics", + "categoryId": 6, + "url": "http://www.openwebanalytics.com/", + "companyId": "open_web_analytics" + }, + "openx": { + "name": "OpenX", + "categoryId": 4, + "url": "https://www.openx.com", + "companyId": "openx" + }, + "operative_media": { + "name": "Operative Media", + "categoryId": 4, + "url": "http://www.operative.com/", + "companyId": "operative_media" + }, + "opinary": { + "name": "Opinary", + "categoryId": 2, + "url": "http://opinary.com/", + "companyId": "opinary" + }, + "opinionbar": { + "name": "OpinionBar", + "categoryId": 2, + "url": "http://www.metrixlab.com", + "companyId": "metrixlab" + }, + "oplytic": { + "name": "Oplytic", + "categoryId": 6, + "url": "http://www.oplytic.com", + "companyId": "oplytic" + }, + "opta.net": { + "name": "Opta", + "categoryId": 6, + "url": "http://www.optasports.de/", + "companyId": "opta_sports" + }, + "optaim": { + "name": "OptAim", + "categoryId": 4, + "url": "http://optaim.com/", + "companyId": "optaim" + }, + "optanaon": { + "name": "Optanaon by OneTrust", + "categoryId": 5, + "url": "https://www.cookielaw.org/", + "companyId": "onetrust" + }, + "optify": { + "name": "Optify", + "categoryId": 4, + "url": "http://www.optify.net", + "companyId": "optify" + }, + "optimatic": { + "name": "Optimatic", + "categoryId": 0, + "url": "http://www.optimatic.com/", + "companyId": "optimatic" + }, + "optimax_media_delivery": { + "name": "Optimax Media Delivery", + "categoryId": 4, + "url": "http://optmd.com/", + "companyId": "optimax_media_delivery" + }, + "optimicdn.com": { + "name": "OptimiCDN", + "categoryId": 9, + "url": "https://en.optimicdn.com/", + "companyId": null + }, + "optimizely": { + "name": "Optimizely", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_error_log": { + "name": "Optimizely Error Log", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_geo_targeting": { + "name": "Optimizely Geographical Targeting", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_logging": { + "name": "Optimizely Logging", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimonk": { + "name": "Optimonk", + "categoryId": 6, + "url": "https://www.optimonk.com/", + "companyId": "optimonk" + }, + "optinmonster": { + "name": "OptInMonster", + "categoryId": 2, + "url": "https://optinmonster.com/", + "companyId": "optinmonster" + }, + "optinproject.com": { + "name": "OptinProject", + "categoryId": 4, + "url": "https://www.optincollect.com/en", + "companyId": "optincollect" + }, + "optomaton": { + "name": "Optomaton", + "categoryId": 4, + "url": "http://www.optomaton.com/", + "companyId": "ve" + }, + "ora.tv": { + "name": "Ora.TV", + "categoryId": 4, + "url": "http://www.ora.tv/", + "companyId": "ora.tv" + }, + "oracle_live_help": { + "name": "Oracle Live Help", + "categoryId": 2, + "url": "http://www.oracle.com/us/products/applications/atg/live-help-on-demand/index.html", + "companyId": "oracle" + }, + "oracle_rightnow": { + "name": "Oracle RightNow", + "categoryId": 8, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "orange": { + "name": "Orange", + "categoryId": 4, + "url": "http://www.orange.co.uk/", + "companyId": "orange_mobile" + }, + "orange142": { + "name": "Orange142", + "categoryId": 4, + "url": "http://www.orange142.com/", + "companyId": "orange142" + }, + "orange_france": { + "name": "Orange France", + "categoryId": 8, + "url": "https://www.orange.fr/", + "companyId": "orange_france" + }, + "orangesoda": { + "name": "OrangeSoda", + "categoryId": 4, + "url": "http://www.orangesoda.com/", + "companyId": "orangesoda" + }, + "orc_international": { + "name": "ORC International", + "categoryId": 4, + "url": "https://orcinternational.com/", + "companyId": "engine_group" + }, + "order_groove": { + "name": "Order Groove", + "categoryId": 4, + "url": "http://ordergroove.com/", + "companyId": "order_groove" + }, + "orel_site": { + "name": "Orel Site", + "categoryId": 2, + "url": "https://www.orelsite.ru/", + "companyId": "orel_site" + }, + "otclick": { + "name": "otClick", + "categoryId": 4, + "url": "http://otclick-adv.ru/", + "companyId": "otclick" + }, + "othersearch.info": { + "name": "FlowSurf", + "categoryId": 8, + "url": null, + "companyId": null + }, + "otm-r.com": { + "name": "OTM", + "categoryId": 4, + "url": "http://otm-r.com/", + "companyId": null + }, + "otto.de": { + "name": "Otto Group", + "categoryId": 8, + "url": null, + "companyId": null + }, + "outbrain": { + "name": "Outbrain", + "categoryId": 4, + "url": "https://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_amplify": { + "name": "Outbrain Amplify", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_analytics": { + "name": "Outbrain Analytics", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_logger": { + "name": "Outbrain Logger", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_pixel": { + "name": "Outbrain Pixel", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_utilities": { + "name": "Outbrain Utilities", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_widgets": { + "name": "Outbrain Widgets", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "overheat.it": { + "name": "overheat", + "categoryId": 6, + "url": "https://overheat.io/", + "companyId": null + }, + "owa": { + "name": "OWA", + "categoryId": 6, + "url": "http://oewa.at/", + "companyId": "the_austrian_web_analysis" + }, + "owneriq": { + "name": "OwnerIQ", + "categoryId": 4, + "url": "http://www.owneriq.com/", + "companyId": "owneriq" + }, + "ownpage": { + "name": "Ownpage", + "categoryId": 2, + "url": "http://www.ownpage.fr/index.en.html", + "companyId": null + }, + "owox.com": { + "name": "OWOX", + "categoryId": 6, + "url": "https://www.owox.com/", + "companyId": "owox_inc" + }, + "oxamedia": { + "name": "OxaMedia", + "categoryId": 2, + "url": "http://www.oxamedia.com/", + "companyId": "oxamedia" + }, + "oxomi.com": { + "name": "Oxomi", + "categoryId": 4, + "url": "https://oxomi.com/", + "companyId": null + }, + "pageanalytics.space": { + "name": "pageanalytics.space", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pagefair": { + "name": "PageFair", + "categoryId": 2, + "url": "https://pagefair.com/", + "companyId": "blockthrough" + }, + "pagescience": { + "name": "PageScience", + "categoryId": 4, + "url": "http://www.precisionhealthmedia.com/index.html", + "companyId": "pagescience" + }, + "paid-to-promote": { + "name": "Paid-To-Promote", + "categoryId": 4, + "url": "http://www.paid-to-promote.net/", + "companyId": "paid-to-promote" + }, + "paperg": { + "name": "PaperG", + "categoryId": 4, + "url": "http://www.paperg.com/", + "companyId": "paperg" + }, + "pardot": { + "name": "Pardot", + "categoryId": 6, + "url": "http://www.pardot.com/", + "companyId": "pardot" + }, + "parsely": { + "name": "Parse.ly", + "categoryId": 6, + "url": "https://www.parse.ly/", + "companyId": "parse.ly" + }, + "partner-ads": { + "name": "Partner-Ads", + "categoryId": 4, + "url": "http://www.partner-ads.com/", + "companyId": "partner-ads" + }, + "passionfruit": { + "name": "Passionfruit", + "categoryId": 4, + "url": "http://passionfruitads.com/", + "companyId": "passionfruit" + }, + "pathful": { + "name": "Pathful", + "categoryId": 6, + "url": "http://www.pathful.com/", + "companyId": "pathful" + }, + "pay-hit": { + "name": "Pay-Hit", + "categoryId": 4, + "url": "http://pay-hit.com/", + "companyId": "pay-hit" + }, + "payclick": { + "name": "PayClick", + "categoryId": 4, + "url": "http://payclick.it/", + "companyId": "payclick" + }, + "paykickstart": { + "name": "PayKickstart", + "categoryId": 6, + "url": "https://paykickstart.com/", + "companyId": "paykickstart" + }, + "paypal": { + "name": "PayPal", + "categoryId": 2, + "url": "https://www.paypal.com", + "companyId": "ebay" + }, + "pcvark.com": { + "name": "pcvark.com", + "categoryId": 11, + "url": "https://pcvark.com/", + "companyId": null + }, + "peer39": { + "name": "Peer39", + "categoryId": 4, + "url": "http://www.peer39.com/", + "companyId": "peer39" + }, + "peer5.com": { + "name": "Peer5", + "categoryId": 9, + "url": "https://www.peer5.com/", + "companyId": "peer5" + }, + "peerius": { + "name": "Peerius", + "categoryId": 2, + "url": "http://www.peerius.com/", + "companyId": "peerius" + }, + "pendo.io": { + "name": "pendo", + "categoryId": 6, + "url": "https://www.pendo.io/", + "companyId": null + }, + "pepper.com": { + "name": "Pepper", + "categoryId": 4, + "url": "https://www.pepper.com/", + "companyId": "6minutes" + }, + "pepperjam": { + "name": "Pepperjam", + "categoryId": 4, + "url": "http://www.pepperjam.com", + "companyId": "pepperjam" + }, + "pepsia": { + "name": "Pepsia", + "categoryId": 6, + "url": "http://pepsia.com/en/", + "companyId": "pepsia" + }, + "perfdrive.com": { + "name": "perfdrive.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "perfect_audience": { + "name": "Perfect Audience", + "categoryId": 4, + "url": "https://www.perfectaudience.com/", + "companyId": "perfect_audience" + }, + "perfect_market": { + "name": "Perfect Market", + "categoryId": 4, + "url": "http://perfectmarket.com/", + "companyId": "perfect_market" + }, + "perform_group": { + "name": "Perform Group", + "categoryId": 5, + "url": "http://www.performgroup.co.uk/", + "companyId": "perform_group" + }, + "performable": { + "name": "Performable", + "categoryId": 6, + "url": "http://www.performable.com/", + "companyId": "hubspot" + }, + "performancing_metrics": { + "name": "Performancing Metrics", + "categoryId": 6, + "url": "http://pmetrics.performancing.com", + "companyId": "performancing" + }, + "performax": { + "name": "Performax", + "categoryId": 4, + "url": "https://www.performax.cz/", + "companyId": "performax" + }, + "perimeterx.net": { + "name": "Perimeterx", + "categoryId": 6, + "url": "https://www.perimeterx.com/", + "companyId": null + }, + "permutive": { + "name": "Permutive", + "categoryId": 4, + "url": "http://permutive.com/", + "companyId": "permutive" + }, + "persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.be/", + "companyId": "de_persgroep" + }, + "persianstat": { + "name": "PersianStat", + "categoryId": 6, + "url": "http://www.persianstat.com", + "companyId": "persianstat" + }, + "persio": { + "name": "Persio", + "categoryId": 4, + "url": "http://www.pers.io/", + "companyId": "pers.io" + }, + "personyze": { + "name": "Personyze", + "categoryId": 2, + "url": "http://personyze.com/", + "companyId": "personyze" + }, + "petametrics": { + "name": "LiftIgniter", + "categoryId": 2, + "url": "https://www.liftigniter.com/", + "companyId": "liftigniter" + }, + "pheedo": { + "name": "Pheedo", + "categoryId": 4, + "url": "http://pheedo.com/", + "companyId": "pheedo" + }, + "phonalytics": { + "name": "Phonalytics", + "categoryId": 2, + "url": "http://www.phonalytics.com/", + "companyId": "phonalytics" + }, + "phunware": { + "name": "Phunware", + "categoryId": 4, + "url": "https://www.phunware.com", + "companyId": "phunware" + }, + "piguiqproxy.com": { + "name": "piguiqproxy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pilot": { + "name": "Pilot", + "categoryId": 6, + "url": "http://www.pilot.de/en/home.html", + "companyId": "pilot_gmbh" + }, + "pingdom": { + "name": "Pingdom", + "categoryId": 6, + "url": "https://www.pingdom.com/", + "companyId": "pingdom" + }, + "pinterest": { + "name": "Pinterest", + "categoryId": 7, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pinterest_conversion_tracker": { + "name": "Pinterest Conversion Tracker", + "categoryId": 6, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pipz": { + "name": "Pipz", + "categoryId": 4, + "url": "https://pipz.com/br/", + "companyId": "pipz_automation" + }, + "piwik": { + "name": "Tombstone (Matomo/Piwik before the split)", + "categoryId": 6, + "url": "http://piwik.org/", + "companyId": "matomo" + }, + "piwik_pro_analytics_suite": { + "name": "Piwik PRO Analytics Suite", + "categoryId": 6, + "url": "https://piwik.pro/", + "companyId": "piwik_pro" + }, + "pixalate": { + "name": "Pixalate", + "categoryId": 4, + "url": "http://www.pixalate.com/", + "companyId": "pixalate" + }, + "pixel_union": { + "name": "Pixel Union", + "categoryId": 4, + "url": "https://www.pixelunion.net/", + "companyId": "pixel_union" + }, + "pixfuture": { + "name": "PixFuture", + "categoryId": 4, + "url": "http://www.pixfuture.com", + "companyId": "pixfuture" + }, + "piximedia": { + "name": "Piximedia", + "categoryId": 4, + "url": "http://www.piximedia.com/piximedia?en", + "companyId": "piximedia" + }, + "pizzaandads_com": { + "name": "pizzaandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "placester": { + "name": "Placester", + "categoryId": 4, + "url": "https://placester.com/", + "companyId": "placester" + }, + "pladform.ru": { + "name": "Pladform", + "categoryId": 4, + "url": "https://distribution.pladform.ru/", + "companyId": "pladform" + }, + "plan.net_experience_cloud": { + "name": "Plan.net Experience Cloud", + "categoryId": 6, + "url": "https://www.serviceplan.com/", + "companyId": "serviceplan" + }, + "platform360": { + "name": "Platform360", + "categoryId": 4, + "url": "http://www.platform360.co/#home", + "companyId": null + }, + "platformone": { + "name": "Platform One", + "categoryId": 4, + "url": "https://www.platform-one.co.jp/", + "companyId": "daconsortium" + }, + "play_by_mamba": { + "name": "Play by Mamba", + "categoryId": 4, + "url": "http://play.mamba.ru/", + "companyId": "mamba" + }, + "playbuzz.com": { + "name": "Playbuzz", + "categoryId": 2, + "url": "https://www.playbuzz.com/", + "companyId": "playbuzz" + }, + "plenty_of_fish": { + "name": "Plenty Of Fish", + "categoryId": 6, + "url": "http://www.pof.com/", + "companyId": "plentyoffish" + }, + "plex_metrics": { + "name": "Plex Metrics", + "categoryId": 6, + "url": "https://www.plex.tv/", + "companyId": "plex" + }, + "plista": { + "name": "Plista", + "categoryId": 4, + "url": "http://www.plista.com", + "companyId": "plista" + }, + "plugrush": { + "name": "PlugRush", + "categoryId": 4, + "url": "http://www.plugrush.com/", + "companyId": "plugrush" + }, + "pluso.ru": { + "name": "Pluso", + "categoryId": 7, + "url": "https://share.pluso.ru/", + "companyId": "pluso" + }, + "plutusads": { + "name": "Plutusads", + "categoryId": 4, + "url": "http://plutusads.com", + "companyId": "plutusads" + }, + "pmddby.com": { + "name": "pmddby.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "pnamic.com": { + "name": "pnamic.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "po.st": { + "name": "Po.st", + "categoryId": 7, + "url": "https://www.po.st/", + "companyId": "rythmone" + }, + "pocket": { + "name": "Pocket", + "categoryId": 6, + "url": "http://getpocket.com/", + "companyId": "pocket" + }, + "pocketcents": { + "name": "PocketCents", + "categoryId": 4, + "url": "http://pocketcents.com/", + "companyId": "pocketcents" + }, + "pointific": { + "name": "Pointific", + "categoryId": 6, + "url": "http://www.pontiflex.com/", + "companyId": "pontiflex" + }, + "pointroll": { + "name": "PointRoll", + "categoryId": 4, + "url": "http://www.pointroll.com/", + "companyId": "gannett_digital_media_network" + }, + "poirreleast.club": { + "name": "poirreleast.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "polar.me": { + "name": "Polar", + "categoryId": 4, + "url": "https://polar.me/", + "companyId": "polar_inc" + }, + "polldaddy": { + "name": "Polldaddy", + "categoryId": 2, + "url": "http://polldaddy.com/", + "companyId": "automattic" + }, + "polyad": { + "name": "PolyAd", + "categoryId": 4, + "url": "http://polyad.net", + "companyId": "polyad" + }, + "polyfill.io": { + "name": "Polyfill", + "categoryId": 8, + "url": "https://polyfill.io/", + "companyId": "polyfill.io" + }, + "popads": { + "name": "PopAds", + "categoryId": 4, + "url": "https://www.popads.net/", + "companyId": "popads" + }, + "popcash": { + "name": "Popcash", + "categoryId": 4, + "url": "http://popcash.net/", + "companyId": "popcash_network" + }, + "popcorn_metrics": { + "name": "Popcorn Metrics", + "categoryId": 6, + "url": "https://www.popcornmetrics.com/", + "companyId": "popcorn_metrics" + }, + "popin.cc": { + "name": "popIn", + "categoryId": 7, + "url": "https://www.popin.cc/", + "companyId": "popin" + }, + "popmyads": { + "name": "PopMyAds", + "categoryId": 4, + "url": "http://popmyads.com/", + "companyId": "popmyads" + }, + "poponclick": { + "name": "PopOnClick", + "categoryId": 4, + "url": "http://poponclick.com", + "companyId": "poponclick" + }, + "populis": { + "name": "Populis", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "pornhub": { + "name": "PornHub", + "categoryId": 3, + "url": "https://www.pornhub.com/", + "companyId": "pornhub" + }, + "pornwave": { + "name": "Pornwave", + "categoryId": 3, + "url": "http://pornwave.com", + "companyId": "pornwave.com" + }, + "porta_brazil": { + "name": "Porta Brazil", + "categoryId": 4, + "url": "http://brasil.gov.br/", + "companyId": "portal_brazil" + }, + "post_affiliate_pro": { + "name": "Post Affiliate Pro", + "categoryId": 4, + "url": "http://www.qualityunit.com/", + "companyId": "qualityunit" + }, + "powerlinks": { + "name": "PowerLinks", + "categoryId": 4, + "url": "http://www.powerlinks.com/", + "companyId": "powerlinks" + }, + "powerreviews": { + "name": "PowerReviews", + "categoryId": 2, + "url": "http://www.powerreviews.com/", + "companyId": "powerreviews" + }, + "powr.io": { + "name": "POWr", + "categoryId": 6, + "url": "https://www.powr.io/", + "companyId": "powr" + }, + "pozvonim": { + "name": "Pozvonim", + "categoryId": 4, + "url": "https://pozvonim.com/", + "companyId": "pozvonim" + }, + "prebid": { + "name": "Prebid", + "categoryId": 4, + "url": "http://prebid.org/", + "companyId": null + }, + "precisionclick": { + "name": "PrecisionClick", + "categoryId": 4, + "url": "http://www.precisionclick.com/", + "companyId": "precisionclick" + }, + "predicta": { + "name": "Predicta", + "categoryId": 4, + "url": "http://predicta.com.br/", + "companyId": "predicta" + }, + "premonix": { + "name": "Premonix", + "categoryId": 4, + "url": "http://www.premonix.com/", + "companyId": "premonix" + }, + "press": { + "name": "Press+", + "categoryId": 4, + "url": "http://www.mypressplus.com/", + "companyId": "press+" + }, + "pressly": { + "name": "Pressly", + "categoryId": 4, + "url": "https://www.pressly.com/", + "companyId": "pressly" + }, + "pricegrabber": { + "name": "PriceGrabber", + "categoryId": 4, + "url": "http://www.pricegrabber.com", + "companyId": "pricegrabber" + }, + "pricespider": { + "name": "Pricespider", + "categoryId": 4, + "url": "http://www.pricespider.com/", + "companyId": "price_spider" + }, + "prismamediadigital.com": { + "name": "Prisma Media Digital", + "categoryId": 4, + "url": "http://www.pmdrecrute.com/", + "companyId": "prisma_media_digital" + }, + "privy.com": { + "name": "Privy", + "categoryId": 2, + "url": "https://privy.com/", + "companyId": "privy" + }, + "proclivity": { + "name": "Proclivity", + "categoryId": 4, + "url": "http://www.proclivitysystems.com/", + "companyId": "proclivity_media" + }, + "prodperfect": { + "name": "ProdPerfect", + "categoryId": 6, + "url": "https://prodperfect.com/", + "companyId": "prodperfect" + }, + "productsup": { + "name": "ProductsUp", + "categoryId": 4, + "url": "https://productsup.io/", + "companyId": "productsup" + }, + "profiliad": { + "name": "Profiliad", + "categoryId": 6, + "url": "http://profiliad.com/", + "companyId": "profiliad" + }, + "profitshare": { + "name": "Profitshare", + "categoryId": 6, + "url": "https://profitshare.ro/", + "companyId": "profitshare" + }, + "proformics": { + "name": "Proformics", + "categoryId": 6, + "url": "http://proformics.com/", + "companyId": "proformics_digital" + }, + "programattik": { + "name": "Programattik", + "categoryId": 4, + "url": "http://www.programattik.com/", + "companyId": "ttnet" + }, + "project_wonderful": { + "name": "Project Wonderful", + "categoryId": 4, + "url": "http://www.projectwonderful.com/", + "companyId": "project_wonderful" + }, + "propel_marketing": { + "name": "Propel Marketing", + "categoryId": 4, + "url": "http://propelmarketing.com/", + "companyId": "propel_marketing" + }, + "propeller_ads": { + "name": "Propeller Ads", + "categoryId": 4, + "url": "http://www.propellerads.com/", + "companyId": "propeller_ads" + }, + "propermedia": { + "name": "Proper Media", + "categoryId": 4, + "url": "https://proper.io/", + "companyId": "propermedia" + }, + "props": { + "name": "Props", + "categoryId": 4, + "url": "http://props.id/", + "companyId": "props" + }, + "propvideo_net": { + "name": "propvideo.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "prospecteye": { + "name": "ProspectEye", + "categoryId": 4, + "url": "https://www.prospecteye.com/", + "companyId": "prospecteye" + }, + "prosperent": { + "name": "Prosperent", + "categoryId": 4, + "url": "http://prosperent.com", + "companyId": "prosperent" + }, + "prostor": { + "name": "Prostor", + "categoryId": 4, + "url": "http://prostor-lite.ru/", + "companyId": "prostor" + }, + "provide_support": { + "name": "Provide Support", + "categoryId": 2, + "url": "http://www.providesupport.com/", + "companyId": "provide_support" + }, + "proximic": { + "name": "Proximic", + "categoryId": 4, + "url": "http://www.proximic.com/", + "companyId": "proximic" + }, + "proxistore.com": { + "name": "Proxistore", + "categoryId": 4, + "url": "https://www.proxistore.com/", + "companyId": "proxistore" + }, + "pscp.tv": { + "name": "Periscope", + "categoryId": 7, + "url": "https://www.pscp.tv/", + "companyId": "periscope" + }, + "pstatic.net": { + "name": "Naver CDN", + "categoryId": 9, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "psyma": { + "name": "Psyma", + "categoryId": 4, + "url": "http://www.psyma.com/", + "companyId": "psyma" + }, + "pt_engine": { + "name": "Pt engine", + "categoryId": 6, + "url": "http://www.ptengine.jp/", + "companyId": "pt_engine" + }, + "pub-fit": { + "name": "Pub-Fit", + "categoryId": 4, + "url": "http://www.pub-fit.com/", + "companyId": "pub-fit" + }, + "pub.network": { + "name": "pub.network", + "categoryId": 4, + "url": null, + "companyId": null + }, + "pubble": { + "name": "Pubble", + "categoryId": 2, + "url": "http://www.pubble.co/", + "companyId": "pubble" + }, + "pubdirecte": { + "name": "Pubdirecte", + "categoryId": 4, + "url": "http://www.pubdirecte.com/", + "companyId": "pubdirecte" + }, + "pubgears": { + "name": "PubGears", + "categoryId": 4, + "url": "http://pubgears.com/", + "companyId": "pubgears" + }, + "public_ideas": { + "name": "Public Ideas", + "categoryId": 4, + "url": "http://www.publicidees.co.uk/", + "companyId": "public-idees" + }, + "publicidad.net": { + "name": "Publicidad.net", + "categoryId": 4, + "url": "http://www.en.publicidad.net/", + "companyId": "publicidad.net" + }, + "publir": { + "name": "Publir", + "categoryId": 4, + "url": "http://www.publir.com", + "companyId": "publir" + }, + "pubmatic": { + "name": "PubMatic", + "categoryId": 4, + "url": "http://www.pubmatic.com/", + "companyId": "pubmatic" + }, + "pubnub.com": { + "name": "PubNub", + "categoryId": 8, + "url": "https://www.pubnub.com/", + "companyId": null + }, + "puboclic": { + "name": "Puboclic", + "categoryId": 4, + "url": "http://www.puboclic.com/", + "companyId": "puboclic" + }, + "pulpix.com": { + "name": "Pulpix", + "categoryId": 4, + "url": "https://www.pulpix.com/", + "companyId": "adyoulike" + }, + "pulpo_media": { + "name": "Pulpo Media", + "categoryId": 4, + "url": "http://www.pulpomedia.com/home.html", + "companyId": "pulpo_media" + }, + "pulse360": { + "name": "Pulse360", + "categoryId": 4, + "url": "http://www.pulse360.com", + "companyId": "pulse360" + }, + "pulse_insights": { + "name": "Pulse Insights", + "categoryId": 6, + "url": "http://pulseinsights.com/", + "companyId": "pulse_insights" + }, + "pulsepoint": { + "name": "PulsePoint", + "categoryId": 4, + "url": "http://www.contextweb.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "punchtab": { + "name": "PunchTab", + "categoryId": 4, + "url": "http://www.punchtab.com/", + "companyId": "punchtab" + }, + "purch": { + "name": "Purch", + "categoryId": 4, + "url": "http://www.purch.com/", + "companyId": "purch" + }, + "pure_chat": { + "name": "Pure Chat", + "categoryId": 2, + "url": "https://www.purechat.com", + "companyId": "pure_chat" + }, + "pureprofile": { + "name": "Pureprofile", + "categoryId": 6, + "url": "https://www.pureprofile.com/us/", + "companyId": "pureprofile" + }, + "purlive": { + "name": "PurLive", + "categoryId": 4, + "url": "http://www.purlive.com/", + "companyId": "purlive" + }, + "puserving.com": { + "name": "puserving.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "push.world": { + "name": "Push.world", + "categoryId": 2, + "url": "https://push.world/en", + "companyId": "push.world" + }, + "push_engage": { + "name": "Push Engage", + "categoryId": 2, + "url": "https://www.pushengage.com/", + "companyId": "push_engage" + }, + "pushame.com": { + "name": "pushame.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushbullet": { + "name": "Pushbullet", + "categoryId": 2, + "url": "https://www.pushbullet.com/", + "companyId": "pushbullet" + }, + "pushcrew": { + "name": "VWO Engage", + "categoryId": 2, + "url": "https://vwo.com/engage/", + "companyId": "wingify" + }, + "pusher.com": { + "name": "Pusher", + "categoryId": 6, + "url": "https://pusher.com/", + "companyId": null + }, + "pushnative.com": { + "name": "pushnative.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushnews": { + "name": "Pushnews", + "categoryId": 4, + "url": "https://www.pushnews.eu/", + "companyId": "pushnews" + }, + "pushno.com": { + "name": "pushno.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwhy.com": { + "name": "pushwhy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwoosh.com": { + "name": "Pushwoosh", + "categoryId": 2, + "url": "https://www.pushwoosh.com/", + "companyId": "pushwoosh" + }, + "pvclouds.com": { + "name": "pvclouds.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "q1media": { + "name": "Q1Media", + "categoryId": 4, + "url": "http://q1media.com/", + "companyId": "q1media" + }, + "q_division": { + "name": "Q-Division", + "categoryId": 4, + "url": "https://q-division.de/", + "companyId": null + }, + "qbaka": { + "name": "Qbaka", + "categoryId": 6, + "url": "https://qbaka.com/", + "companyId": "qbaka" + }, + "qcri_analytics": { + "name": "QCRI Analytics", + "categoryId": 6, + "url": "http://qcri.org/", + "companyId": "qatar_computing_research_institute" + }, + "qeado": { + "name": "Qeado", + "categoryId": 6, + "url": "https://www.qeado.com/", + "companyId": "qeado" + }, + "qihoo_360": { + "name": "Qihoo 360", + "categoryId": 6, + "url": "https://www.360totalsecurity.com/en/", + "companyId": "qihoo_360_technology" + }, + "qq.com": { + "name": "qq.com", + "categoryId": 8, + "url": "http://www.qq.com/", + "companyId": "qq.com" + }, + "qrius": { + "name": "Qrius", + "categoryId": 7, + "url": "http://www.qrius.me/", + "companyId": "mediafed" + }, + "qualaroo": { + "name": "Qualaroo", + "categoryId": 6, + "url": null, + "companyId": null + }, + "qualia": { + "name": "Qualia", + "categoryId": 4, + "url": "http://www.bluecava.com/", + "companyId": "qualia" + }, + "qualtrics": { + "name": "Qualtrics", + "categoryId": 6, + "url": "http://www.qualtrics.com/", + "companyId": "qualtrics" + }, + "quantcast": { + "name": "Quantcast", + "categoryId": 4, + "url": "http://www.quantcast.com/", + "companyId": "quantcast" + }, + "quantcount": { + "name": "Quantcount", + "categoryId": 6, + "url": "http://www.quantcast.com", + "companyId": "quantcast" + }, + "quantum_metric": { + "name": "Quantum Metric", + "categoryId": 6, + "url": "https://www.quantummetric.com/", + "companyId": "quantum_metric" + }, + "quartic.pl": { + "name": "Quartic", + "categoryId": 6, + "url": "https://www.quarticon.com/", + "companyId": "quarticon" + }, + "qubit": { + "name": "Qubit Opentag", + "categoryId": 6, + "url": "http://www.qubit.com/", + "companyId": "qubit" + }, + "questback": { + "name": "Questback", + "categoryId": 2, + "url": "http://www1.questback.com/", + "companyId": "questback" + }, + "queue-it": { + "name": "Queue-it", + "categoryId": 6, + "url": "https://queue-it.com/", + "companyId": null + }, + "quick-counter.net": { + "name": "Quick-counter.net", + "categoryId": 6, + "url": "http://www.quick-counter.net/", + "companyId": "quick-counter.net" + }, + "quigo_adsonar": { + "name": "Quigo AdSonar", + "categoryId": 4, + "url": "http://www.quigo.com", + "companyId": "verizon" + }, + "quinstreet": { + "name": "QuinStreet", + "categoryId": 4, + "url": "http://www.quinstreet.com/", + "companyId": "quinstreet" + }, + "quintelligence": { + "name": "Quintelligence", + "categoryId": 6, + "url": "http://www.quintelligence.com/", + "companyId": "quintelligence" + }, + "quisma": { + "name": "Quisma", + "categoryId": 4, + "url": "http://www.quisma.com/en/", + "companyId": "wpp" + }, + "quora.com": { + "name": "Quora", + "categoryId": 7, + "url": "https://quora.com/", + "companyId": null + }, + "r_advertising": { + "name": "R-Advertising", + "categoryId": 4, + "url": "http://www.r-advertising.com/", + "companyId": "r-advertising" + }, + "rackcdn.com": { + "name": "Rackspace", + "categoryId": 9, + "url": "https://www.rackspace.com/", + "companyId": null + }, + "radarurl": { + "name": "RadarURL", + "categoryId": 6, + "url": "http://radarurl.com/", + "companyId": "radarurl" + }, + "radial": { + "name": "Radial", + "categoryId": 4, + "url": "http://www.clearsaleing.com/", + "companyId": "radial" + }, + "radiumone": { + "name": "RadiumOne", + "categoryId": 4, + "url": "http://www.radiumone.com/index.html", + "companyId": "rythmone" + }, + "raisenow": { + "name": "RaiseNow", + "categoryId": 6, + "url": "https://www.raisenow.com/de", + "companyId": "raisenow" + }, + "rakuten_display": { + "name": "Rakuten Display", + "categoryId": 4, + "url": "https://rakutenmarketing.com/display", + "companyId": "rakuten" + }, + "rakuten_globalmarket": { + "name": "Rakuten", + "categoryId": 4, + "url": "https://www.rakuten.co.jp/", + "companyId": "rakuten" + }, + "rakuten_widget": { + "name": "Rakuten Widget", + "categoryId": 4, + "url": "http://global.rakuten.com/corp/", + "companyId": "rakuten" + }, + "rambler": { + "name": "Rambler", + "categoryId": 6, + "url": "https://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_count": { + "name": "Rambler Count", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_widget": { + "name": "Rambler Widget", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rapidspike": { + "name": "RapidSpike", + "categoryId": 6, + "url": "https://www.rapidspike.com", + "companyId": "rapidspike" + }, + "ravelin": { + "name": "Ravelin", + "categoryId": 6, + "url": "https://www.ravelin.com/", + "companyId": null + }, + "rawgit": { + "name": "RawGit", + "categoryId": 9, + "url": "http://rawgit.com/", + "companyId": null + }, + "raygun": { + "name": "Raygun", + "categoryId": 4, + "url": "https://raygun.com/", + "companyId": "raygun" + }, + "rbc_counter": { + "name": "RBC Counter", + "categoryId": 6, + "url": "http://www.rbc.ru/", + "companyId": "rbc_group" + }, + "rcs.it": { + "name": "RCS", + "categoryId": 4, + "url": "http://www.rcsmediagroup.it/", + "companyId": "rcs" + }, + "rd_station": { + "name": "RD Station", + "categoryId": 6, + "url": "http://www.rdstation.com/en/", + "companyId": "rd_station" + }, + "reachforce": { + "name": "ReachForce", + "categoryId": 6, + "url": "http://www.reachforce.com/", + "companyId": "reachforce" + }, + "reachjunction": { + "name": "ReachJunction", + "categoryId": 4, + "url": "http://www.reachjunction.com/", + "companyId": "reachjunction" + }, + "reachlocal": { + "name": "ReachLocal", + "categoryId": 4, + "url": "http://www.reachlocal.com/", + "companyId": "reachlocal" + }, + "reactful": { + "name": "Reactful", + "categoryId": 4, + "url": "http://www.reactful.com/", + "companyId": "reactful" + }, + "reactivpub": { + "name": "Reactivpub", + "categoryId": 6, + "url": "http://www.reactivpub.com/", + "companyId": "r-advertising" + }, + "reactx": { + "name": "ReactX", + "categoryId": 4, + "url": "http://home.skinected.com", + "companyId": "reactx" + }, + "readerboard": { + "name": "ReaderBoard", + "categoryId": 7, + "url": "http://www.readrboard.com", + "companyId": "centre_phi" + }, + "readme": { + "name": "ReadMe", + "categoryId": 6, + "url": "https://readme.com/", + "companyId": "readme" + }, + "readspeaker.com": { + "name": "ReadSpeaker", + "categoryId": 2, + "url": "https://www.readspeaker.com/", + "companyId": null + }, + "realclick": { + "name": "RealClick", + "categoryId": 4, + "url": "http://www.realclick.co.kr/", + "companyId": "realclick" + }, + "realperson.de": { + "name": "Realperson Chat", + "categoryId": 2, + "url": "http://www.optimise-it.de/", + "companyId": "optimise_it" + }, + "realtime": { + "name": "Realtime", + "categoryId": 2, + "url": "http://www.realtime.co/", + "companyId": "realtime" + }, + "realytics": { + "name": "Realytics", + "categoryId": 6, + "url": "https://www.realytics.io/", + "companyId": "realytics" + }, + "rebel_mouse": { + "name": "Rebel Mouse", + "categoryId": 6, + "url": "https://www.rebelmouse.com/", + "companyId": "rebelmouse" + }, + "recettes.net": { + "name": "Recettes.net", + "categoryId": 8, + "url": "http://www.recettes.net/", + "companyId": "recettes.net" + }, + "recopick": { + "name": "RecoPick", + "categoryId": 4, + "url": "https://recopick.com/", + "companyId": "recopick" + }, + "recreativ": { + "name": "Recreativ", + "categoryId": 4, + "url": "http://recreativ.ru/", + "companyId": "recreativ" + }, + "recruitics": { + "name": "Recruitics", + "categoryId": 6, + "url": "http://recruitics.com/", + "companyId": "recruitics" + }, + "red_ventures": { + "name": "Red Ventures", + "categoryId": 6, + "url": "https://www.redventures.com/", + "companyId": "red_ventures" + }, + "redblue_de": { + "name": "redblue", + "categoryId": 6, + "url": "https://www.redblue.de/", + "companyId": null + }, + "redcdn.pl": { + "name": "redGalaxy CDN", + "categoryId": 9, + "url": "http://www.atendesoftware.pl/", + "companyId": "atende_software" + }, + "reddit": { + "name": "Reddit", + "categoryId": 7, + "url": "http://reddit.com", + "companyId": "reddit" + }, + "redhelper": { + "name": "RedHelper", + "categoryId": 2, + "url": "http://redhelper.com/", + "companyId": "redhelper" + }, + "redlotus": { + "name": "RedLotus", + "categoryId": 4, + "url": "http://triggit.com/", + "companyId": "redlotus" + }, + "redtram": { + "name": "RedTram", + "categoryId": 4, + "url": "http://www.redtram.com/", + "companyId": "redtram" + }, + "redtube.com": { + "name": "redtube.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "redux_media": { + "name": "Redux Media", + "categoryId": 4, + "url": "http://reduxmedia.com/", + "companyId": "redux_media" + }, + "reed_business_information": { + "name": "Reed Business Information", + "categoryId": 6, + "url": "http://www.reedbusiness.com/", + "companyId": "andera_partners" + }, + "reembed.com": { + "name": "reEmbed", + "categoryId": 0, + "url": "https://www.reembed.com/", + "companyId": "reembed" + }, + "reevoo.com": { + "name": "Reevoo", + "categoryId": 4, + "url": "https://www.reevoo.com/en/", + "companyId": "reevoo" + }, + "refericon": { + "name": "Refericon", + "categoryId": 4, + "url": "https://refericon.pl/#", + "companyId": "refericon" + }, + "referlocal": { + "name": "ReferLocal", + "categoryId": 4, + "url": "http://referlocal.com/", + "companyId": "referlocal" + }, + "refersion": { + "name": "Refersion", + "categoryId": 4, + "url": "https://www.refersion.com/", + "companyId": "refersion" + }, + "refined_labs": { + "name": "Refined Labs", + "categoryId": 4, + "url": "http://www.refinedlabs.com", + "companyId": "refined_labs" + }, + "reflektion": { + "name": "Reflektion", + "categoryId": 4, + "url": "http://", + "companyId": "reflektion" + }, + "reformal": { + "name": "Reformal", + "categoryId": 2, + "url": "http://reformal.ru/", + "companyId": "reformal" + }, + "reinvigorate": { + "name": "Reinvigorate", + "categoryId": 6, + "url": "http://www.reinvigorate.net/", + "companyId": "media_temple" + }, + "rekko": { + "name": "Rekko", + "categoryId": 4, + "url": "http://convert.us/", + "companyId": "rekko" + }, + "reklam_store": { + "name": "Reklam Store", + "categoryId": 4, + "url": "http://www.reklamstore.com", + "companyId": "reklam_store" + }, + "reklamport": { + "name": "Reklamport", + "categoryId": 4, + "url": "http://www.reklamport.com/", + "companyId": "reklamport" + }, + "reklamz": { + "name": "ReklamZ", + "categoryId": 4, + "url": "http://www.reklamz.com/", + "companyId": "reklamz" + }, + "rekmob": { + "name": "Rekmob", + "categoryId": 4, + "url": "https://www.rekmob.com/", + "companyId": "rekmob" + }, + "relap": { + "name": "Relap", + "categoryId": 4, + "url": "https://relap.io/", + "companyId": "relap" + }, + "relay42": { + "name": "Relay42", + "categoryId": 5, + "url": "http://synovite.com", + "companyId": "relay42" + }, + "relestar": { + "name": "Relestar", + "categoryId": 6, + "url": "https://relestar.com/", + "companyId": "relestar" + }, + "relevant4.com": { + "name": "relevant4 GmbH", + "categoryId": 8, + "url": "https://www.relevant4.com/", + "companyId": null + }, + "remintrex": { + "name": "Remintrex", + "categoryId": 4, + "url": "http://www.remintrex.com/", + "companyId": null + }, + "remove.video": { + "name": "remove.video", + "categoryId": 12, + "url": null, + "companyId": null + }, + "repost.us": { + "name": "Repost.us", + "categoryId": 4, + "url": "http://www.freerangecontent.com/", + "companyId": "repost" + }, + "republer.com": { + "name": "Republer", + "categoryId": 4, + "url": "http://republer.com/", + "companyId": "republer" + }, + "res-meter": { + "name": "Res-meter", + "categoryId": 6, + "url": "http://respublica.al/res-meter", + "companyId": "respublica" + }, + "research_now": { + "name": "Research Now", + "categoryId": 4, + "url": "http://www.researchnow.com/", + "companyId": "research_now" + }, + "resonate_networks": { + "name": "Resonate Networks", + "categoryId": 4, + "url": "http://www.resonatenetworks.com/", + "companyId": "resonate" + }, + "respond": { + "name": "Respond", + "categoryId": 4, + "url": "http://respondhq.com/", + "companyId": "respond" + }, + "responsetap": { + "name": "ResponseTap", + "categoryId": 4, + "url": "http://www.adinsight.eu/", + "companyId": "responsetap" + }, + "result_links": { + "name": "Result Links", + "categoryId": 4, + "url": "http://www.resultlinks.com/", + "companyId": "result_links" + }, + "resultspage.com": { + "name": "SLI Systems", + "categoryId": 6, + "url": "https://www.sli-systems.com/", + "companyId": "sli_systems" + }, + "retailrocket.net": { + "name": "Retail Rocket", + "categoryId": 4, + "url": "https://retailrocket.net/", + "companyId": "retail_rocket" + }, + "retarget_app": { + "name": "Retarget App", + "categoryId": 4, + "url": "https://retargetapp.com/", + "companyId": "retargetapp" + }, + "retargeter_beacon": { + "name": "ReTargeter Beacon", + "categoryId": 4, + "url": "http://www.retargeter.com/", + "companyId": "retargeter" + }, + "retargeting.cl": { + "name": "Retargeting.cl", + "categoryId": 4, + "url": "http://retargeting.cl/", + "companyId": "retargeting" + }, + "retention_science": { + "name": "Retention Science", + "categoryId": 4, + "url": "http://retentionscience.com/", + "companyId": "retention_science" + }, + "reuters_media": { + "name": "Reuters media", + "categoryId": 9, + "url": "https://reuters.com", + "companyId": null + }, + "revcontent": { + "name": "RevContent", + "categoryId": 4, + "url": "https://www.revcontent.com/", + "companyId": "revcontent" + }, + "reve_marketing": { + "name": "Reve Marketing", + "categoryId": 4, + "url": "http://tellafriend.socialtwist.com/", + "companyId": "reve_marketing" + }, + "revenue": { + "name": "Revenue", + "categoryId": 4, + "url": "https://revenue.com/", + "companyId": "revenue" + }, + "revenuehits": { + "name": "RevenueHits", + "categoryId": 4, + "url": "http://www.revenuehits.com/", + "companyId": "revenuehits" + }, + "revenuemantra": { + "name": "RevenueMantra", + "categoryId": 4, + "url": "http://www.revenuemantra.com/", + "companyId": "revenuemantra" + }, + "revive_adserver": { + "name": "Revive Adserver", + "categoryId": 4, + "url": "https://www.revive-adserver.com/", + "companyId": "revive_adserver" + }, + "revolver_maps": { + "name": "Revolver Maps", + "categoryId": 6, + "url": "http://www.revolvermaps.com/", + "companyId": "revolver_maps" + }, + "revresponse": { + "name": "RevResponse", + "categoryId": 4, + "url": "http://www.netline.com/", + "companyId": "netline" + }, + "rewords": { + "name": "ReWords", + "categoryId": 4, + "url": "http://www.rewords.pl/", + "companyId": "rewords" + }, + "rhythmone": { + "name": "RhythmOne", + "categoryId": 4, + "url": "http://www.adconductor.com/", + "companyId": "rhythmone" + }, + "rhythmone_beacon": { + "name": "Rhythmone Beacon", + "categoryId": 4, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "ria.ru": { + "name": "ria.ru", + "categoryId": 8, + "url": "https://ria.ru/", + "companyId": null + }, + "rich_media_banner_network": { + "name": "Rich Media Banner Network", + "categoryId": 4, + "url": "http://rmbn.ru/", + "companyId": "rich_media_banner_network" + }, + "richrelevance": { + "name": "RichRelevance", + "categoryId": 2, + "url": "http://www.richrelevance.com/", + "companyId": "richrelevance" + }, + "ringier.ch": { + "name": "Ringier", + "categoryId": 6, + "url": "http://ringier.ch/en", + "companyId": "ringier" + }, + "rio_seo": { + "name": "Rio SEO", + "categoryId": 7, + "url": "http://www.meteorsolutions.com", + "companyId": "rio_seo" + }, + "riskfield.com": { + "name": "Riskified", + "categoryId": 2, + "url": "https://www.riskified.com/", + "companyId": "riskfield" + }, + "rncdn3.com": { + "name": "Reflected Networks", + "categoryId": 9, + "url": "http://www.rncdn3.com/", + "companyId": null + }, + "ro2.biz": { + "name": "Ro2.biz", + "categoryId": 4, + "url": "http://ro2.biz/index.php?r=adikku", + "companyId": "ro2.biz" + }, + "roblox": { + "name": "Roblox", + "categoryId": 8, + "url": "https://www.roblox.com/", + "companyId": null + }, + "rockerbox": { + "name": "Rockerbox", + "categoryId": 6, + "url": "https://www.rockerbox.com/privacy", + "companyId": "rockerbox" + }, + "rocket.ia": { + "name": "Rocket.ia", + "categoryId": 4, + "url": "https://rocket.la/", + "companyId": "rocket.la" + }, + "roi_trax": { + "name": "ROI trax", + "categoryId": 4, + "url": "http://www.oneupweb.com/", + "companyId": "oneupweb" + }, + "roistat": { + "name": "Roistat", + "categoryId": 6, + "url": "https://roistat.com", + "companyId": "roistat" + }, + "rollad": { + "name": "Rollad", + "categoryId": 4, + "url": "http://rollad.ru", + "companyId": "rollad" + }, + "rollbar": { + "name": "Rollbar", + "categoryId": 6, + "url": "http://www.rollbar.com/", + "companyId": "rollbar" + }, + "roost": { + "name": "Roost", + "categoryId": 6, + "url": "http://roost.me/", + "companyId": "roost" + }, + "rooster": { + "name": "Rooster", + "categoryId": 6, + "url": "http://www.getrooster.com/", + "companyId": "rooster" + }, + "roq.ad": { + "name": "Roq.ad", + "categoryId": 4, + "url": "https://www.roq.ad/", + "companyId": "roq.ad" + }, + "rotaban": { + "name": "RotaBan", + "categoryId": 4, + "url": "http://www.rotaban.ru/", + "companyId": "rotaban" + }, + "routenplaner-karten.com": { + "name": "Routenplaner Karten", + "categoryId": 2, + "url": "https://www.routenplaner-karten.com/", + "companyId": null + }, + "rovion": { + "name": "Rovion", + "categoryId": 4, + "url": "http://www.rovion.com/", + "companyId": "rovion" + }, + "rsspump": { + "name": "RSSPump", + "categoryId": 2, + "url": "http://www.rsspump.com", + "companyId": "rsspump" + }, + "rtb_house": { + "name": "RTB House", + "categoryId": 4, + "url": "http://en.adpilot.com/", + "companyId": "rtb_house" + }, + "rtblab": { + "name": "RTBmarkt", + "categoryId": 4, + "url": "http://www.rtbmarkt.de/en/home/", + "companyId": "rtbmarkt" + }, + "rtbsuperhub.com": { + "name": "rtbsuperhub.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "rtl_group": { + "name": "RTL Group", + "categoryId": 8, + "url": "http://www.rtlgroup.com/www/htm/home.aspx", + "companyId": "rtl_group" + }, + "rtmark.net": { + "name": "Advertising Technologies Ltd", + "categoryId": 4, + "url": "http://rtmark.net/", + "companyId": "big_wall_vision" + }, + "rubicon": { + "name": "Rubicon", + "categoryId": 4, + "url": "http://rubiconproject.com/", + "companyId": "rubicon_project" + }, + "ruhrgebiet": { + "name": "Ruhrgebiet", + "categoryId": 4, + "url": "https://www.ruhrgebiet-onlineservices.de/", + "companyId": "ruhrgebiet" + }, + "rummycircle": { + "name": "RummyCircle", + "categoryId": 4, + "url": "https://www.rummycircle.com/", + "companyId": "rummycircle" + }, + "run": { + "name": "RUN", + "categoryId": 4, + "url": "http://www.rundsp.com/", + "companyId": "run" + }, + "runative": { + "name": "Runative", + "categoryId": 4, + "url": "https://runative.com/", + "companyId": null + }, + "rune": { + "name": "Rune", + "categoryId": 6, + "url": "http://www.secretrune.com/", + "companyId": "rune_inc." + }, + "runmewivel.com": { + "name": "runmewivel.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "rythmxchange": { + "name": "Rythmxchange", + "categoryId": 0, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "s24_com": { + "name": "Shopping24 internet group", + "categoryId": 4, + "url": "https://www.s24.com/", + "companyId": null + }, + "s3xified.com": { + "name": "s3xified.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sabavision": { + "name": "SabaVision", + "categoryId": 4, + "url": "http://www.sabavision.com/en/", + "companyId": "sabavision" + }, + "sagemetrics": { + "name": "SageMetrics", + "categoryId": 4, + "url": "http://www.sagemetrics.com", + "companyId": "ipmg" + }, + "sailthru_horizon": { + "name": "Sailthru Horizon", + "categoryId": 4, + "url": "https://www.sailthru.com", + "companyId": "sailthru" + }, + "salecycle": { + "name": "SaleCycle", + "categoryId": 4, + "url": "http://www.salecycle.com/", + "companyId": "salecycle" + }, + "sales_feed": { + "name": "Sales Feed", + "categoryId": 4, + "url": "https://www.salesfeed.com/", + "companyId": "sales_feed" + }, + "sales_manago": { + "name": "SALESmanago", + "categoryId": 6, + "url": "https://www.salesmanago.com/", + "companyId": "sales_manago" + }, + "salesforce.com": { + "name": "Salesforce", + "categoryId": 4, + "url": "https://www.salesforce.com/eu/", + "companyId": "salesforce" + }, + "salesforce_live_agent": { + "name": "Salesforce Live Agent", + "categoryId": 2, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "salesfusion": { + "name": "SalesFUSION", + "categoryId": 4, + "url": "http://salesfusion.com/", + "companyId": "salesfusion" + }, + "salespider_media": { + "name": "SaleSpider Media", + "categoryId": 4, + "url": "http://salespidermedia.com/", + "companyId": "salespider_media" + }, + "salesviewer": { + "name": "SalesViewer", + "categoryId": 6, + "url": "https://www.salesviewer.com/", + "companyId": "salesviewer" + }, + "samba.tv": { + "name": "Samba TV", + "categoryId": 4, + "url": "https://samba.tv/", + "companyId": "samba_tv" + }, + "sanoma.fi": { + "name": "Sanoma", + "categoryId": 4, + "url": "https://sanoma.com/", + "companyId": "sanoma" + }, + "sap_crm": { + "name": "SAP CRM", + "categoryId": 6, + "url": "https://www.sap.com/products/crm.html", + "companyId": "sap" + }, + "sap_sales_cloud": { + "name": "SAP Sales Cloud", + "categoryId": 2, + "url": "http://leadforce1.com/", + "companyId": "sap" + }, + "sap_xm": { + "name": "SAP Exchange Media", + "categoryId": 4, + "url": "http://sapexchange.media/", + "companyId": null + }, + "sape.ru": { + "name": "Sape", + "categoryId": 6, + "url": "https://www.sape.ru/en", + "companyId": "sape" + }, + "sapo_ads": { + "name": "SAPO Ads", + "categoryId": 4, + "url": "http://www.sapo.pt/", + "companyId": "sapo" + }, + "sas": { + "name": "SAS", + "categoryId": 6, + "url": "http://www.sas.com/", + "companyId": "sas" + }, + "say.ac": { + "name": "Say.ac", + "categoryId": 4, + "url": "http://say.ac", + "companyId": "say.ac" + }, + "say_media": { + "name": "Say Media", + "categoryId": 4, + "url": "http://www.saymedia.com/", + "companyId": "say_media" + }, + "sayyac": { + "name": "Sayyac", + "categoryId": 6, + "url": "http://www.sayyac.com/", + "companyId": "sayyac" + }, + "scarabresearch": { + "name": "Scarab Research", + "categoryId": 4, + "url": "https://www.scarabresearch.com/", + "companyId": "emarsys" + }, + "schibsted": { + "name": "Schibsted Media Group", + "categoryId": 8, + "url": "http://www.schibsted.com/", + "companyId": "schibsted_asa" + }, + "schneevonmorgen.com": { + "name": "Schnee von Morgen", + "categoryId": 0, + "url": "http://www.schneevonmorgen.com/", + "companyId": null + }, + "scoota": { + "name": "Scoota", + "categoryId": 4, + "url": "http://scoota.com/", + "companyId": "rockabox" + }, + "scorecard_research_beacon": { + "name": "ScoreCard Research Beacon", + "categoryId": 6, + "url": "https://www.scorecardresearch.com/", + "companyId": "comscore" + }, + "scout_analytics": { + "name": "Scout Analytics", + "categoryId": 4, + "url": "http://scoutanalytics.com/", + "companyId": "scout_analytics" + }, + "scribblelive": { + "name": "ScribbleLive", + "categoryId": 8, + "url": null, + "companyId": null + }, + "scribol": { + "name": "Scribol", + "categoryId": 4, + "url": "http://scribol.com/", + "companyId": "scribol" + }, + "scripps_analytics": { + "name": "Scripps Analytics", + "categoryId": 6, + "url": "http://www.scrippsnetworksinteractive.com/", + "companyId": "scripps_networks" + }, + "scroll": { + "name": "Scroll", + "categoryId": 5, + "url": "https://scroll.com/", + "companyId": "scroll" + }, + "scupio": { + "name": "Scupio", + "categoryId": 4, + "url": "http://ad.scupio.com/", + "companyId": "bridgewell" + }, + "search123": { + "name": "Search123", + "categoryId": 4, + "url": "http://www.search123.com/", + "companyId": "search123" + }, + "searchforce": { + "name": "SearchForce", + "categoryId": 4, + "url": "http://www.searchforce.com/", + "companyId": "searchforce" + }, + "searchignite": { + "name": "SearchIgnite", + "categoryId": 4, + "url": "https://searchignite.com/", + "companyId": "zeta" + }, + "searchrev": { + "name": "SearchRev", + "categoryId": 4, + "url": "http://www.searchrev.com/", + "companyId": "searchrev" + }, + "second_media": { + "name": "Second Media", + "categoryId": 4, + "url": "http://www.secondmedia.com/", + "companyId": "second_media" + }, + "securedtouch": { + "name": "SecuredTouch", + "categoryId": 6, + "url": "https://www.securedtouch.com/", + "companyId": null + }, + "securedvisit": { + "name": "SecuredVisit", + "categoryId": 4, + "url": "http://securedvisit.com/", + "companyId": "securedvisit" + }, + "seeding_alliance": { + "name": "Seeding Alliance", + "categoryId": 4, + "url": "http://seeding-alliance.de", + "companyId": "stroer" + }, + "seedtag.com": { + "name": "Seedtag", + "categoryId": 4, + "url": "https://www.seedtag.com/en/", + "companyId": "seedtag" + }, + "seevolution": { + "name": "SeeVolution", + "categoryId": 6, + "url": "http://www.seevolution.com", + "companyId": "seevolution" + }, + "segment": { + "name": "Segment", + "categoryId": 6, + "url": "https://segment.io/", + "companyId": "segment" + }, + "segmento": { + "name": "Segmento", + "categoryId": 4, + "url": "https://segmento.ru/en", + "companyId": "segmento" + }, + "segmint": { + "name": "Segmint", + "categoryId": 6, + "url": "http://www.segmint.com/", + "companyId": "segmint" + }, + "sekindo": { + "name": "Sekindo", + "categoryId": 4, + "url": "http://www.sekindo.com/", + "companyId": "sekindo" + }, + "sellpoints": { + "name": "Sellpoints", + "categoryId": 4, + "url": "https://www.sellpoints.com/", + "companyId": "sellpoints" + }, + "semantiqo.com": { + "name": "Semantiqo", + "categoryId": 4, + "url": "https://semantiqo.com/", + "companyId": null + }, + "semasio": { + "name": "Semasio", + "categoryId": 4, + "url": "http://semasio.com/", + "companyId": "semasio" + }, + "semilo": { + "name": "Semilo", + "categoryId": 4, + "url": "http://www.semilo.nl/", + "companyId": "semilo" + }, + "semknox.com": { + "name": "SEMKNOX GmbH", + "categoryId": 5, + "url": "https://semknox.com/", + "companyId": null + }, + "sendinblue": { + "name": "sendinblue", + "categoryId": 4, + "url": "https://fr.sendinblue.com/", + "companyId": "sendinblue" + }, + "sendpulse.com": { + "name": "SendPulse", + "categoryId": 3, + "url": "https://sendpulse.com/", + "companyId": null + }, + "sendsay": { + "name": "Sendsay", + "categoryId": 2, + "url": "https://sendsay.ru", + "companyId": "sendsay" + }, + "sense_digital": { + "name": "Sense Digital", + "categoryId": 6, + "url": "http://sensedigital.in/", + "companyId": "sense_digital" + }, + "sensors_data": { + "name": "Sensors Data", + "categoryId": 6, + "url": "https://www.sensorsdata.cn/", + "companyId": "sensors_data" + }, + "sentifi.com": { + "name": "Sentifi", + "categoryId": 6, + "url": "https://sentifi.com/", + "companyId": "sentifi" + }, + "sentry": { + "name": "Sentry", + "categoryId": 6, + "url": "https://sentry.io/", + "companyId": "sentry" + }, + "sepyra": { + "name": "Sepyra", + "categoryId": 4, + "url": "http://sepyra.com/", + "companyId": "sepyra" + }, + "sessioncam": { + "name": "SessionCam", + "categoryId": 6, + "url": "http://www.sessioncam.com/", + "companyId": "sessioncam" + }, + "sessionly": { + "name": "Sessionly", + "categoryId": 2, + "url": "https://www.sessionly.io/", + "companyId": "sessionly" + }, + "sevenone_media": { + "name": "SevenOne Media", + "categoryId": 4, + "url": null, + "companyId": null + }, + "sexadnetwork": { + "name": "SexAdNetwork", + "categoryId": 3, + "url": "http://www.sexadnetwork.com/", + "companyId": "sexadnetwork" + }, + "sexinyourcity": { + "name": "SexInYourCity", + "categoryId": 3, + "url": "http://www.sexinyourcity.com/", + "companyId": "sexinyourcity" + }, + "sextracker": { + "name": "SexTracker", + "categoryId": 3, + "url": "http://webmasters.sextracker.com/", + "companyId": "sextracker" + }, + "sexypartners.net": { + "name": "sexypartners.net", + "categoryId": 3, + "url": null, + "companyId": null + }, + "seznam": { + "name": "Seznam", + "categoryId": 6, + "url": "https://onas.seznam.cz/cz/", + "companyId": "seznam" + }, + "shareaholic": { + "name": "Shareaholic", + "categoryId": 6, + "url": "hhttps://www.shareaholic.com/", + "companyId": "shareaholic" + }, + "shareasale": { + "name": "ShareASale", + "categoryId": 4, + "url": "http://www.shareasale.com/", + "companyId": "shareasale" + }, + "sharecompany": { + "name": "ShareCompany", + "categoryId": 2, + "url": "http://sharecompany.nl", + "companyId": "sharecompany" + }, + "sharepoint": { + "name": "Microsoft SharePoint", + "categoryId": 2, + "url": "https://products.office.com/en-us/sharepoint/sharepoint-online-collaboration-software", + "companyId": "microsoft" + }, + "sharethis": { + "name": "ShareThis", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "sharethrough": { + "name": "ShareThrough", + "categoryId": 4, + "url": "http://www.sharethrough.com/", + "companyId": "sharethrough" + }, + "sharpspring": { + "name": "Sharpspring", + "categoryId": 6, + "url": "https://sharpspring.com/", + "companyId": "sharpspring" + }, + "sheego.de": { + "name": "sheego.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "sheerid": { + "name": "SheerID", + "categoryId": 4, + "url": "http://www.sheerid.com/", + "companyId": "sheerid" + }, + "shinystat": { + "name": "ShinyStat", + "categoryId": 6, + "url": "http://www.shinystat.com/", + "companyId": "shinystat" + }, + "shop_target": { + "name": "Shop Target", + "categoryId": 4, + "url": "http://shoptarget.com.br/", + "companyId": "shopback" + }, + "shopauskunft.de": { + "name": "ShopAuskunft.de", + "categoryId": 2, + "url": "https://shopauskunft.de/", + "companyId": null + }, + "shopgate.com": { + "name": "Shopgate", + "categoryId": 2, + "url": "https://www.shopgate.com/", + "companyId": null + }, + "shopify_stats": { + "name": "Shopify Stats", + "categoryId": 4, + "url": "http://www.shopify.com/", + "companyId": "shopify" + }, + "shopifycdn.com": { + "name": "Shopify CDN", + "categoryId": 9, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopifycloud.com": { + "name": "Shopify Cloud", + "categoryId": 2, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopper_approved": { + "name": "Shopper Approved", + "categoryId": 2, + "url": "http://www.shopperapproved.com", + "companyId": "shopper_approved" + }, + "shopping_com": { + "name": "Shopping.com", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "shopping_flux": { + "name": "Shopping Flux", + "categoryId": 6, + "url": "http://www.shopping-flux.com/", + "companyId": "shopping_flux" + }, + "shoprunner": { + "name": "ShopRunner", + "categoryId": 2, + "url": "https://www.shoprunner.com", + "companyId": "shoprunner" + }, + "shopsocially": { + "name": "ShopSocially", + "categoryId": 2, + "url": "http://shopsocially.com/", + "companyId": "shopsocially" + }, + "shopzilla": { + "name": "Shopzilla", + "categoryId": 4, + "url": "http://www.shopzilla.com/", + "companyId": "shopzilla" + }, + "shortnews": { + "name": "ShortNews.de", + "categoryId": 8, + "url": "http://www.shortnews.de/#", + "companyId": null + }, + "shrink": { + "name": "Shrink", + "categoryId": 2, + "url": "http://shink.in/", + "companyId": "shrink.in" + }, + "shutterstock": { + "name": "Shutterstock", + "categoryId": 8, + "url": "https://www.shutterstock.com/", + "companyId": "shutterstock_inc" + }, + "siblesectiveal.club": { + "name": "siblesectiveal.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sidecar": { + "name": "Sidecar", + "categoryId": 6, + "url": "http://hello.getsidecar.com/", + "companyId": "sidecar" + }, + "sift_science": { + "name": "Sift Science", + "categoryId": 6, + "url": "https://siftscience.com/", + "companyId": "sift_science" + }, + "signal": { + "name": "Signal", + "categoryId": 5, + "url": "https://www.signal.co/", + "companyId": "signal_digital" + }, + "signifyd": { + "name": "Signifyd", + "categoryId": 6, + "url": "https://www.signifyd.com/", + "companyId": "signifyd" + }, + "silverpop": { + "name": "Silverpop", + "categoryId": 2, + "url": "http://www.silverpop.com/", + "companyId": "ibm" + }, + "similardeals.net": { + "name": "SimilarDeals", + "categoryId": 8, + "url": "http://www.similardeals.net/", + "companyId": null + }, + "simplereach": { + "name": "SimpleReach", + "categoryId": 6, + "url": "https://www.nativo.com/simplereach", + "companyId": "nativo" + }, + "simpli.fi": { + "name": "Simpli.fi", + "categoryId": 4, + "url": "http://www.simpli.fi", + "companyId": "simpli.fi" + }, + "sina": { + "name": "Sina", + "categoryId": 6, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "sina_cdn": { + "name": "Sina CDN", + "categoryId": 9, + "url": "https://www.sina.com.cn/", + "companyId": "sina" + }, + "singlefeed": { + "name": "SingleFeed", + "categoryId": 4, + "url": "https://www.singlefeed.com/", + "companyId": "singlefeed" + }, + "sirdata": { + "name": "Sirdata", + "categoryId": 6, + "url": "http://www.sirdata.com/home/", + "companyId": "sirdata" + }, + "site24x7": { + "name": "Site24x7", + "categoryId": 6, + "url": "https://www.site24x7.com/", + "companyId": "zoho_corp" + }, + "site_booster": { + "name": "Site Booster", + "categoryId": 7, + "url": "https://sitebooster.com/", + "companyId": "site_booster" + }, + "site_stratos": { + "name": "Site Stratos", + "categoryId": 4, + "url": "http://www.infocube.co.jp/", + "companyId": "infocube" + }, + "siteapps": { + "name": "SiteApps", + "categoryId": 2, + "url": "http://siteapps.com", + "companyId": "siteapps" + }, + "sitebro": { + "name": "SiteBro", + "categoryId": 6, + "url": "http://www.sitebro.net/", + "companyId": "sitebro" + }, + "siteheart": { + "name": "SiteHeart", + "categoryId": 2, + "url": "http://siteheart.com/", + "companyId": "siteheart" + }, + "siteimprove": { + "name": "Siteimprove", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "siteimprove_analytics": { + "name": "SiteImprove Analytics", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "sitelabweb.com": { + "name": "sitelabweb.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sitemeter": { + "name": "SiteMeter", + "categoryId": 6, + "url": "http://www.sitemeter.com/", + "companyId": "sitemeter,_inc." + }, + "sitescout": { + "name": "SiteScout by Centro", + "categoryId": 4, + "url": "http://www.sitescout.com", + "companyId": "centro" + }, + "sitetag": { + "name": "SiteTag", + "categoryId": 2, + "url": "http://www.sitetag.us/", + "companyId": "sitetag" + }, + "sitewit": { + "name": "SiteWit", + "categoryId": 4, + "url": "http://www.sitewit.com/", + "companyId": "sitewit" + }, + "six_apart_advertising": { + "name": "Six Apart Advertising", + "categoryId": 4, + "url": "http://www.sixapart.com/advertising/", + "companyId": "six_apart" + }, + "sixt-neuwagen.de": { + "name": "sixt-neuwagen.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "skadtec.com": { + "name": "GP One GmbH", + "categoryId": 6, + "url": "http://www.gp-one.com/", + "companyId": null + }, + "skimlinks": { + "name": "SkimLinks", + "categoryId": 4, + "url": "http://www.skimlinks.com/", + "companyId": "skimlinks" + }, + "skroutz": { + "name": "Skroutz", + "categoryId": 6, + "url": "https://www.skroutz.gr/", + "companyId": "skroutz" + }, + "skyglue": { + "name": "SkyGlue", + "categoryId": 6, + "url": "http://www.skyglue.com/", + "companyId": "skyglue_technology" + }, + "skype": { + "name": "Skype", + "categoryId": 2, + "url": "http://www.skype.com", + "companyId": "microsoft" + }, + "skysa": { + "name": "Skysa", + "categoryId": 2, + "url": "http://www.skysa.com/", + "companyId": "skysa" + }, + "skyscnr.com": { + "name": "Skyscanner CDN", + "categoryId": 9, + "url": "https://www.skyscanner.net/", + "companyId": null + }, + "slashdot_widget": { + "name": "Slashdot Widget", + "categoryId": 2, + "url": "http://slashdot.org", + "companyId": "slashdot" + }, + "sleeknote": { + "name": "Sleeknote", + "categoryId": 2, + "url": "https://sleeknote.com/", + "companyId": "sleeknote" + }, + "sli_systems": { + "name": "SLI Systems", + "categoryId": 2, + "url": "http://www.sli-systems.com", + "companyId": "sli_systems" + }, + "slice_factory": { + "name": "Slice Factory", + "categoryId": 2, + "url": "http://www.slicefactory.com/", + "companyId": "slice_factory" + }, + "slimcutmedia": { + "name": "SlimCutMedia", + "categoryId": 6, + "url": "http://www.slimcutmedia.com/", + "companyId": "slimcutmedia" + }, + "slingpic": { + "name": "Slingpic", + "categoryId": 4, + "url": "http://slingpic.com/", + "companyId": "affectv" + }, + "smaato": { + "name": "Smaato", + "categoryId": 4, + "url": "http://www.smaato.com/", + "companyId": "smaato" + }, + "smart4ads": { + "name": "smart4ads", + "categoryId": 4, + "url": "http://www.smart4ads.com", + "companyId": "smart4ads" + }, + "smart_adserver": { + "name": "SMART AdServer", + "categoryId": 4, + "url": "https://smartadserver.com/", + "companyId": "smart_adserver" + }, + "smart_call": { + "name": "Smart Call", + "categoryId": 2, + "url": "https://smartcall.kz/", + "companyId": "smart_call" + }, + "smart_content": { + "name": "Smart Content", + "categoryId": 4, + "url": "http://www.getsmartcontent.com", + "companyId": "get_smart_content" + }, + "smart_device_media": { + "name": "Smart Device Media", + "categoryId": 4, + "url": "http://www.smartdevicemedia.com/", + "companyId": "smart_device_media" + }, + "smart_leads": { + "name": "Smart Leads", + "categoryId": 4, + "url": "http://www.cnt.my/", + "companyId": "smart_leads" + }, + "smart_selling": { + "name": "Smart Selling", + "categoryId": 2, + "url": "https://smartselling.cz/", + "companyId": "smart_selling" + }, + "smartad": { + "name": "smartAD", + "categoryId": 4, + "url": "http://smartad.eu/", + "companyId": "smartad" + }, + "smartbn": { + "name": "SmartBN", + "categoryId": 4, + "url": "http://smartbn.ru/", + "companyId": "smartbn" + }, + "smartclick.net": { + "name": "SmartClick", + "categoryId": 4, + "url": "http://smartclick.net/", + "companyId": null + }, + "smartclip": { + "name": "SmartClip", + "categoryId": 4, + "url": "http://www.smartclip.com/", + "companyId": "smartclip" + }, + "smartcontext": { + "name": "SmartContext", + "categoryId": 4, + "url": "http://smartcontext.pl/", + "companyId": "smartcontext" + }, + "smarter_remarketer": { + "name": "SmarterHQ", + "categoryId": 4, + "url": "https://smarterhq.com", + "companyId": "smarterhq" + }, + "smarter_travel": { + "name": "Smarter Travel Media", + "categoryId": 4, + "url": "https://www.smartertravel.com/", + "companyId": "iac_apps" + }, + "smarterclick": { + "name": "Smarterclick", + "categoryId": 4, + "url": "http://www.smarterclick.co.uk/", + "companyId": "smarter_click" + }, + "smartertrack": { + "name": "SmarterTrack", + "categoryId": 4, + "url": "http://www.smartertrack.com/", + "companyId": "smartertrack" + }, + "smartlink.cool": { + "name": "smartlink.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "smartlook": { + "name": "Smartlook", + "categoryId": 2, + "url": "https://www.smartlook.com/", + "companyId": "smartlook" + }, + "smartstream.tv": { + "name": "SmartStream.TV", + "categoryId": 4, + "url": "https://www.smartstream.tv/en", + "companyId": "smartstream" + }, + "smartsupp_chat": { + "name": "Smartsupp Chat", + "categoryId": 2, + "url": "https://www.smartsupp.com/", + "companyId": "smartsuppp" + }, + "smi2.ru": { + "name": "smi2.ru", + "categoryId": 6, + "url": "https://smi2.net/", + "companyId": "media2_stat.media" + }, + "smooch": { + "name": "Smooch", + "categoryId": 2, + "url": "https://smooch.io/", + "companyId": "smooch" + }, + "smowtion": { + "name": "Smowtion", + "categoryId": 4, + "url": "http://www.smowtion.com/", + "companyId": "smowtion" + }, + "smx_ventures": { + "name": "SMX Ventures", + "categoryId": 6, + "url": "http://smxeventures.com/", + "companyId": "smx_ventures" + }, + "smyte": { + "name": "Smyte", + "categoryId": 6, + "url": "https://www.smyte.com/", + "companyId": "smyte" + }, + "snacktv": { + "name": "SnackTV", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snacktv_player": { + "name": "SnackTV-Player", + "categoryId": 0, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snap": { + "name": "Snap", + "categoryId": 2, + "url": "http://www.snap.com/", + "companyId": "snap_technologies" + }, + "snap_engage": { + "name": "Snap Engage", + "categoryId": 2, + "url": "https://snapengage.com/", + "companyId": "snap_engage" + }, + "snapchat": { + "name": "Snapchat For Business", + "categoryId": 4, + "url": "https://www.snapchat.com/", + "companyId": "snap_technologies" + }, + "snigelweb": { + "name": "SnigelWeb, Inc.", + "categoryId": 4, + "url": "http://www.snigelweb.com/", + "companyId": "snigelweb_inc" + }, + "snoobi": { + "name": "Snoobi", + "categoryId": 6, + "url": "http://www.snoobi.eu/", + "companyId": "snoobi" + }, + "snoobi_analytics": { + "name": "Snoobi Analytics", + "categoryId": 6, + "url": "http://www.snoobi.com/", + "companyId": "snoobi_oy" + }, + "snowplow": { + "name": "Snowplow", + "categoryId": 6, + "url": "http://snowplowanalytics.com/", + "companyId": "snowplow" + }, + "soasta_mpulse": { + "name": "SOASTA mPulse", + "categoryId": 6, + "url": "http://www.soasta.com/", + "companyId": "akamai" + }, + "sociable_labs": { + "name": "Sociable Labs", + "categoryId": 4, + "url": "http://www.sociablelabs.com/", + "companyId": "sociable_labs" + }, + "social_amp": { + "name": "Social Amp", + "categoryId": 4, + "url": "http://www.merkleinc.com/", + "companyId": "dentsu_aegis_network" + }, + "social_annex": { + "name": "Social Annex", + "categoryId": 4, + "url": "http://www.socialannex.com", + "companyId": "social_annex" + }, + "social_miner": { + "name": "Social Miner", + "categoryId": 7, + "url": "https://socialminer.com/", + "companyId": "social_miner" + }, + "socialbeat": { + "name": "socialbeat", + "categoryId": 4, + "url": "http://www.socialbeat.it/", + "companyId": "socialbeat" + }, + "socialrms": { + "name": "SocialRMS", + "categoryId": 7, + "url": "http://socialinterface.com/socialrms/", + "companyId": "socialinterface" + }, + "sociaplus.com": { + "name": "SociaPlus", + "categoryId": 6, + "url": "https://sociaplus.com/", + "companyId": null + }, + "sociomantic": { + "name": "Sociomantic", + "categoryId": 4, + "url": "http://www.sociomantic.com/", + "companyId": "sociomantic_labs_gmbh" + }, + "sohu": { + "name": "Sohu", + "categoryId": 7, + "url": "http://www.sohu.com", + "companyId": "sohu" + }, + "sojern": { + "name": "Sojern", + "categoryId": 4, + "url": "http://www.sojern.com/", + "companyId": "sojern" + }, + "sokrati": { + "name": "Sokrati", + "categoryId": 4, + "url": "http://sokrati.com/", + "companyId": "sokrati" + }, + "solads.media": { + "name": "solads.media", + "categoryId": 4, + "url": "http://solads.media/", + "companyId": null + }, + "solidopinion": { + "name": "SolidOpinion", + "categoryId": 2, + "url": "https://solidopinion.com/", + "companyId": "solidopinion" + }, + "solve_media": { + "name": "Solve Media", + "categoryId": 4, + "url": "http://solvemedia.com/", + "companyId": "solve_media" + }, + "soma_2": { + "name": "SOMA 2", + "categoryId": 4, + "url": "http://www.webcombi.de/", + "companyId": "soma_2_gmbh" + }, + "somoaudience": { + "name": "SoMo Audience", + "categoryId": 4, + "url": "https://somoaudience.com/", + "companyId": "somoaudience" + }, + "sonobi": { + "name": "Sonobi", + "categoryId": 4, + "url": "http://sonobi.com/", + "companyId": "sonobi" + }, + "sophus3": { + "name": "Sophus3", + "categoryId": 4, + "url": "http://www.sophus3.com/", + "companyId": "sophus3" + }, + "sortable": { + "name": "Sortable", + "categoryId": 4, + "url": "https://sortable.com/", + "companyId": "sortable" + }, + "soundcloud": { + "name": "SoundCloud", + "categoryId": 0, + "url": "http://soundcloud.com/", + "companyId": "soundcloud" + }, + "sourceknowledge_pixel": { + "name": "SourceKnowledge Pixel", + "categoryId": 4, + "url": "http://www.provenpixel.com/", + "companyId": "sourceknowledge" + }, + "sourcepoint": { + "name": "Sourcepoint", + "categoryId": 4, + "url": "https://www.sourcepoint.com/", + "companyId": "sourcepoint" + }, + "sovrn": { + "name": "sovrn", + "categoryId": 4, + "url": "https://www.sovrn.com/", + "companyId": "sovrn" + }, + "sovrn_viewability_solutions": { + "name": "Sovrn Signal", + "categoryId": 4, + "url": "https://www.sovrn.com/publishers/signal/", + "companyId": "sovrn" + }, + "spark_studios": { + "name": "Spark Studios", + "categoryId": 0, + "url": "http://www.sparkstudios.com/", + "companyId": "spark_studios" + }, + "sparkasse.de": { + "name": "sparkasse.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "speakpipe": { + "name": "SpeakPipe", + "categoryId": 2, + "url": "http://www.speakpipe.com/", + "companyId": "speakpipe" + }, + "specific_media": { + "name": "Specific Media", + "categoryId": 4, + "url": "http://www.specificmedia.com", + "companyId": "specific_media" + }, + "spectate": { + "name": "Spectate", + "categoryId": 6, + "url": "http://spectate.com/", + "companyId": "spectate" + }, + "speed_shift_media": { + "name": "Speed Shift Media", + "categoryId": 4, + "url": "http://www.speedshiftmedia.com/", + "companyId": "speed_shift_media" + }, + "speedcurve": { + "name": "SpeedCurve", + "categoryId": 6, + "url": "https://speedcurve.com/", + "companyId": null + }, + "speedyads": { + "name": "SpeedyAds", + "categoryId": 4, + "url": "http://www.entireweb.com/speedyads/", + "companyId": "entireweb" + }, + "speee": { + "name": "Speee", + "categoryId": 4, + "url": "https://speee.jp", + "companyId": "speee" + }, + "sphere": { + "name": "Sphere", + "categoryId": 4, + "url": "http://www.sphere.com/", + "companyId": "verizon" + }, + "spheremall": { + "name": "SphereMall", + "categoryId": 6, + "url": "https://spheremall.com", + "companyId": "spheremall" + }, + "sphereup": { + "name": "SphereUp", + "categoryId": 2, + "url": "http://zoomd.com/", + "companyId": "zoomd" + }, + "spicy": { + "name": "Spicy", + "categoryId": 4, + "url": "http://sspicy.ru/#main", + "companyId": "spicy_ssp" + }, + "spider.ad": { + "name": "Spider.Ad", + "categoryId": 4, + "url": "http://spider.ad/", + "companyId": "spider.ad" + }, + "spider_ads": { + "name": "Spider Ads", + "categoryId": 4, + "url": "http://www.spiderads.eu/", + "companyId": "spiderads" + }, + "spinnakr": { + "name": "Spinnakr", + "categoryId": 6, + "url": "http://spinnakr.com/", + "companyId": "spinnakr" + }, + "spokenlayer": { + "name": "SpokenLayer", + "categoryId": 0, + "url": "http://www.spokenlayer.com", + "companyId": "spokenlayer" + }, + "spongecell": { + "name": "Spongecell", + "categoryId": 4, + "url": "http://www.spongecell.com/", + "companyId": "spongecell" + }, + "sponsorads.de": { + "name": "SponsorAds.de", + "categoryId": 4, + "url": "http://sponsorads.de", + "companyId": "sponsorads.de" + }, + "sportsbet_affiliates": { + "name": "Sportsbet Affiliates", + "categoryId": 4, + "url": "http://www.sportsbetaffiliates.com.au/", + "companyId": "sportsbet_affiliates" + }, + "spot.im": { + "name": "Spot.IM", + "categoryId": 7, + "url": "https://www.spot.im/", + "companyId": "spot.im" + }, + "spoteffect": { + "name": "Spoteffect", + "categoryId": 6, + "url": "http://www.spoteffects.com/home/", + "companyId": "spoteffect" + }, + "spotify": { + "name": "Spotify", + "categoryId": 0, + "url": "https://www.spotify.com/", + "companyId": "spotify" + }, + "spotify_embed": { + "name": "Spotify Embed", + "categoryId": 0, + "url": "https://www.spotify.com", + "companyId": "spotify" + }, + "spotscenered.info": { + "name": "spotscenered.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "spotxchange": { + "name": "SpotX", + "categoryId": 4, + "url": "https://www.spotx.tv/", + "companyId": "rtl_group" + }, + "spoutable": { + "name": "Spoutable", + "categoryId": 4, + "url": "http://spoutable.com/", + "companyId": "spoutable" + }, + "springboard": { + "name": "SpringBoard", + "categoryId": 4, + "url": "http://home.springboardplatform.com/", + "companyId": "springboard" + }, + "springserve": { + "name": "SpringServe", + "categoryId": 4, + "url": "http://springserve.com/", + "companyId": "springserve" + }, + "sprinklr": { + "name": "Sprinklr", + "categoryId": 4, + "url": "https://www.sprinklr.com/", + "companyId": "sprinklr" + }, + "sputnik": { + "name": "Sputnik", + "categoryId": 6, + "url": "https://cnt.sputnik.ru/", + "companyId": "sputnik" + }, + "squadata": { + "name": "Squadata", + "categoryId": 4, + "url": "http://www.email-match.net/", + "companyId": "squadata" + }, + "squarespace.com": { + "name": "Squarespace", + "categoryId": 6, + "url": "https://www.squarespace.com/", + "companyId": null + }, + "srvtrck.com": { + "name": "srvtrck.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "srvvtrk.com": { + "name": "srvvtrk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sstatic.net": { + "name": "Stack Exchange", + "categoryId": 9, + "url": "https://sstatic.net/", + "companyId": null + }, + "st-hatena": { + "name": "Hatena", + "categoryId": 7, + "url": "http://www.hatena.ne.jp/", + "companyId": "hatena_jp" + }, + "stackadapt": { + "name": "StackAdapt", + "categoryId": 4, + "url": "http://www.stackadapt.com/", + "companyId": "stackadapt" + }, + "stackpathdns.com": { + "name": "StackPath", + "categoryId": 9, + "url": "https://www.stackpath.com/", + "companyId": null + }, + "stailamedia_com": { + "name": "stailamedia.com", + "categoryId": 4, + "url": "http://stailamedia.com/", + "companyId": null + }, + "stalluva.pro": { + "name": "stalluva.pro", + "categoryId": 11, + "url": null, + "companyId": null + }, + "startapp": { + "name": "StartApp", + "categoryId": 4, + "url": "https://www.startapp.com/", + "companyId": null + }, + "stat24": { + "name": "Stat24", + "categoryId": 6, + "url": "http://www.stat24.com/en/", + "companyId": "stat24" + }, + "stat4u": { + "name": "stat4u", + "categoryId": 6, + "url": "http://stat.4u.pl/", + "companyId": "stat4u" + }, + "statcounter": { + "name": "Statcounter", + "categoryId": 6, + "url": "http://www.statcounter.com/", + "companyId": "statcounter" + }, + "stathat": { + "name": "StatHat", + "categoryId": 6, + "url": "http://www.stathat.com/", + "companyId": "stathat" + }, + "statisfy": { + "name": "Statisfy", + "categoryId": 6, + "url": "http://www.statisfy.com/", + "companyId": "statisfy" + }, + "statsy.net": { + "name": "statsy.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "statuscake": { + "name": "StatusCake", + "categoryId": 6, + "url": "https://www.statuscake.com/", + "companyId": "statuscake" + }, + "statuspage.io": { + "name": "Statuspage", + "categoryId": 2, + "url": "https://www.statuspage.io/", + "companyId": "atlassian" + }, + "stayfriends.de": { + "name": "stayfriends.de", + "categoryId": 8, + "url": "https://www.stayfriends.de/", + "companyId": null + }, + "steelhouse": { + "name": "Steel House Media", + "categoryId": 4, + "url": "https://steelhouse.com/", + "companyId": "steelhouse" + }, + "steepto.com": { + "name": "Steepto", + "categoryId": 4, + "url": "https://www.steepto.com/", + "companyId": null + }, + "stepstone.com": { + "name": "StepStone", + "categoryId": 8, + "url": "https://www.stepstone.com/", + "companyId": null + }, + "stetic": { + "name": "Stetic", + "categoryId": 6, + "url": "https://www.stetic.com/", + "companyId": "stetic" + }, + "stickyads": { + "name": "StickyAds", + "categoryId": 4, + "url": "http://corporate.comcast.com/", + "companyId": "comcast" + }, + "stocktwits": { + "name": "StockTwits", + "categoryId": 2, + "url": "http://stocktwits.com", + "companyId": "stocktwits" + }, + "storify": { + "name": "Storify", + "categoryId": 4, + "url": "https://storify.com/", + "companyId": "adobe" + }, + "storygize": { + "name": "Storygize", + "categoryId": 4, + "url": "http://www.storygize.com/", + "companyId": null + }, + "strands_recommender": { + "name": "Strands Recommender", + "categoryId": 4, + "url": "http://recommender.strands.com", + "companyId": "strands" + }, + "strava": { + "name": "Strava", + "categoryId": 6, + "url": "https://strava.com", + "companyId": "strava" + }, + "streak": { + "name": "Streak", + "categoryId": 2, + "url": "http://www.streak.com/", + "companyId": "streak" + }, + "streamrail.com": { + "name": "StreamRail", + "categoryId": 4, + "url": "https://www.streamrail.com/", + "companyId": "ironsource" + }, + "stride": { + "name": "Stride", + "categoryId": 6, + "url": "https://www.getstride.com/", + "companyId": "stride_software" + }, + "stripchat.com": { + "name": "stripchat.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stripe.com": { + "name": "Stripe", + "categoryId": 2, + "url": "https://stripe.com/", + "companyId": null + }, + "stripst.com": { + "name": "stripst.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stroer_digital_media": { + "name": "Stroer Digital Media", + "categoryId": 4, + "url": "http://www.stroeer.de/", + "companyId": "stroer" + }, + "strossle": { + "name": "Strossle", + "categoryId": 4, + "url": "https://strossle.com/", + "companyId": "strossle" + }, + "struq": { + "name": "Struq", + "categoryId": 4, + "url": "http://www.struq.com/", + "companyId": "quantcast" + }, + "stumbleupon_widgets": { + "name": "StumbleUpon Widgets", + "categoryId": 7, + "url": "http://www.stumbleupon.com/", + "companyId": "stumbleupon" + }, + "sub2": { + "name": "Sub2", + "categoryId": 4, + "url": "http://www.sub2tech.com/", + "companyId": "sub2" + }, + "sublime_skinz": { + "name": "Sublime", + "categoryId": 4, + "url": "https://sublimeskinz.com/home", + "companyId": "sublime_skinz" + }, + "suggest.io": { + "name": "Suggest.io", + "categoryId": 4, + "url": "https://suggest.io/", + "companyId": "suggest.io" + }, + "sumologic.com": { + "name": "Sumologic", + "categoryId": 6, + "url": "https://www.sumologic.com/", + "companyId": null + }, + "sumome": { + "name": "Sumo", + "categoryId": 6, + "url": "https://sumo.com/", + "companyId": "sumome" + }, + "sundaysky": { + "name": "SundaySky", + "categoryId": 4, + "url": "http://www.sundaysky.com/", + "companyId": "sundaysky" + }, + "supercounters": { + "name": "SuperCounters", + "categoryId": 6, + "url": "http://www.supercounters.com/", + "companyId": "supercounters" + }, + "superfastcdn.com": { + "name": "superfastcdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "supership": { + "name": "Supership", + "categoryId": 4, + "url": "https://supership.jp/en/", + "companyId": "supership" + }, + "supplyframe": { + "name": "SupplyFrame", + "categoryId": 4, + "url": "https://supplyframe.com/", + "companyId": "supplyframe" + }, + "surf_by_surfingbird": { + "name": "Surf by Surfingbird", + "categoryId": 2, + "url": "http://surfingbird.ru/", + "companyId": "surfingbird" + }, + "survata": { + "name": "Survata", + "categoryId": 4, + "url": "https://www.survata.com/", + "companyId": "survata" + }, + "sweettooth": { + "name": "Sweettooth", + "categoryId": 2, + "url": "https://www.sweettoothrewards.com/", + "companyId": "sweet_tooth_rewards" + }, + "swiftype": { + "name": "Swiftype", + "categoryId": 9, + "url": "https://swiftype.com/", + "companyId": "elastic" + }, + "swisscom": { + "name": "Swisscom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "switch_concepts": { + "name": "Switch Concepts", + "categoryId": 4, + "url": "http://www.switchconcepts.co.uk/", + "companyId": "switch_concepts" + }, + "swoop": { + "name": "Swoop", + "categoryId": 4, + "url": "http://swoop.com/", + "companyId": "swoop" + }, + "sykes": { + "name": "Sykes", + "categoryId": 6, + "url": "http://www.sykescottages.co.uk/", + "companyId": "sykes_cottages" + }, + "symantec": { + "name": "Symantec (Norton Secured Seal)", + "categoryId": 5, + "url": "https://www.symantec.com/page.jsp?id=ssl-resources&tabID=3#", + "companyId": "symantec" + }, + "symphony_talent": { + "name": "Symphony Talent", + "categoryId": 2, + "url": "http://www.symphonytalent.com/", + "companyId": "symphony_talent" + }, + "synacor": { + "name": "Synacor", + "categoryId": 4, + "url": "https://www.synacor.com/", + "companyId": "synacor" + }, + "syncapse": { + "name": "Syncapse", + "categoryId": 4, + "url": "http://www.clickable.com/", + "companyId": "syncapse" + }, + "synergy-e": { + "name": "Synergy-E", + "categoryId": 4, + "url": "http://synergy-e.com/", + "companyId": "synergy-e" + }, + "t-mobile": { + "name": "Deutsche Telekom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "t8cdn.com": { + "name": "t8cdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "tableteducation.com": { + "name": "tableteducation.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "taboola": { + "name": "Taboola", + "categoryId": 4, + "url": "http://www.taboola.com", + "companyId": "taboola" + }, + "tacoda": { + "name": "Tacoda", + "categoryId": 4, + "url": "http://www.tacoda.com/", + "companyId": "verizon" + }, + "tag_commander": { + "name": "Commanders Act", + "categoryId": 5, + "url": "https://www.commandersact.com/en/", + "companyId": "tag_commander" + }, + "tagcade": { + "name": "Tagcade", + "categoryId": 4, + "url": "https://www.pubvantage.com/", + "companyId": "pubvantage" + }, + "taggify": { + "name": "Taggify", + "categoryId": 4, + "url": "http://new.taggify.net/", + "companyId": "taggify" + }, + "taggy": { + "name": "TAGGY", + "categoryId": 4, + "url": "http://taggy.jp/", + "companyId": "taggy" + }, + "tagman": { + "name": "TagMan", + "categoryId": 5, + "url": "http://www.tagman.com/", + "companyId": "ensighten" + }, + "tail_target": { + "name": "Tail", + "categoryId": 6, + "url": "https://www.tail.digital/", + "companyId": "tail.digital" + }, + "tailsweep": { + "name": "Tailsweep", + "categoryId": 4, + "url": "http://www.tailsweep.se/", + "companyId": "tailsweep" + }, + "tamedia.ch": { + "name": "Tamedia", + "categoryId": 4, + "url": "https://www.tamedia.ch/", + "companyId": null + }, + "tanx": { + "name": "Tanx", + "categoryId": 4, + "url": "http://tanx.com/", + "companyId": "tanx" + }, + "taobao": { + "name": "Taobao", + "categoryId": 4, + "url": "https://world.taobao.com/", + "companyId": "alibaba" + }, + "tapad": { + "name": "Tapad", + "categoryId": 4, + "url": "http://www.tapad.com/", + "companyId": "telenor" + }, + "tapinfluence": { + "name": "TapInfluence", + "categoryId": 4, + "url": "http://theblogfrog.com/", + "companyId": "tapinfluence" + }, + "tarafdari": { + "name": "Tarafdari", + "categoryId": 4, + "url": "https://www.tarafdari.com/", + "companyId": "tarafdari" + }, + "target_2_sell": { + "name": "Target 2 Sell", + "categoryId": 4, + "url": "http://www.target2sell.com/en/", + "companyId": "target_2_sell" + }, + "target_circle": { + "name": "Target Circle", + "categoryId": 6, + "url": "http://targetcircle.com", + "companyId": "target_circle" + }, + "target_fuel": { + "name": "Target Fuel", + "categoryId": 6, + "url": "http://targetfuel.com/", + "companyId": "target_fuel" + }, + "tawk": { + "name": "Tawk", + "categoryId": 2, + "url": "https://www.tawk.to/", + "companyId": "tawk" + }, + "tbn.ru": { + "name": "TBN.ru", + "categoryId": 4, + "url": "http://www.agava.ru", + "companyId": "agava" + }, + "tchibo_de": { + "name": "tchibo.de", + "categoryId": 8, + "url": "http://tchibo.de/", + "companyId": null + }, + "tdsrmbl_net": { + "name": "tdsrmbl.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "teads": { + "name": "Teads", + "categoryId": 4, + "url": "http://teads.tv/", + "companyId": "teads" + }, + "tealeaf": { + "name": "Tealeaf", + "categoryId": 6, + "url": "https://www.ibm.com/digital-marketing", + "companyId": "ibm" + }, + "tealium": { + "name": "Tealium", + "categoryId": 5, + "url": "http://www.tealium.com/", + "companyId": "tealium" + }, + "teaser.cc": { + "name": "Teaser.cc", + "categoryId": 4, + "url": "http://www.teaser.cc/", + "companyId": "teaser.cc" + }, + "tedemis": { + "name": "Tedemis", + "categoryId": 4, + "url": "http://www.tedemis.com", + "companyId": "tedemis" + }, + "teletech": { + "name": "TeleTech", + "categoryId": 4, + "url": "http://www.webmetro.com/whoweare/technology.aspx", + "companyId": "teletech" + }, + "tender": { + "name": "Tender", + "categoryId": 2, + "url": "http://www.tenderapp.com/", + "companyId": "tender" + }, + "tensitionschoo.club": { + "name": "tensitionschoo.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "teroti": { + "name": "Teroti", + "categoryId": 4, + "url": "http://www.teroti.com/", + "companyId": "teroti" + }, + "terren": { + "name": "Terren", + "categoryId": 4, + "url": "http://www.webterren.com/", + "companyId": "terren" + }, + "teufel.de": { + "name": "teufel.de", + "categoryId": 8, + "url": "https://www.teufel.de/", + "companyId": null + }, + "the_adex": { + "name": "The ADEX", + "categoryId": 4, + "url": "http://www.theadex.com/", + "companyId": "prosieben_sat1" + }, + "the_deck": { + "name": "The DECK", + "categoryId": 4, + "url": "http://decknetwork.net/", + "companyId": "the_deck" + }, + "the_guardian": { + "name": "The Guardian", + "categoryId": 8, + "url": "https://www.theguardian.com/", + "companyId": "the_guardian" + }, + "the_reach_group": { + "name": "The Reach Group", + "categoryId": 4, + "url": "http://www.redvertisment.com", + "companyId": "the_reach_group" + }, + "the_search_agency": { + "name": "The Search Agency", + "categoryId": 4, + "url": "http://www.thesearchagency.com/", + "companyId": "the_search_agency" + }, + "the_sun": { + "name": "The Sun", + "categoryId": 8, + "url": "https://www.thesun.co.uk/", + "companyId": "the_sun" + }, + "the_weather_company": { + "name": "The Weather Company", + "categoryId": 4, + "url": "http://www.theweathercompany.com/", + "companyId": "ibm" + }, + "themoviedb": { + "name": "The Movie DB", + "categoryId": 8, + "url": "https://www.themoviedb.org/", + "companyId": "themoviedb" + }, + "thinglink": { + "name": "ThingLink", + "categoryId": 4, + "url": "http://www.thinglink.com/", + "companyId": "thinglink" + }, + "threatmetrix": { + "name": "ThreatMetrix", + "categoryId": 6, + "url": "http://threatmetrix.com/", + "companyId": "threatmetrix" + }, + "tidbit": { + "name": "Tidbit", + "categoryId": 2, + "url": "http://tidbit.co.in/", + "companyId": "tidbit" + }, + "tidio": { + "name": "Tidio", + "categoryId": 2, + "url": "https://www.tidio.com/", + "companyId": "tidio_chat" + }, + "tiktok_analytics": { + "name": "TikTok Analytics", + "categoryId": 6, + "url": "https://analytics.tiktok.com", + "companyId": "bytedance_inc" + }, + "tiller": { + "name": "Tiller", + "categoryId": 4, + "url": "https://www.tiller.com/", + "companyId": "tiller" + }, + "timezondb": { + "name": "TimezonDB", + "categoryId": 4, + "url": "https://timezonedb.com/", + "companyId": "timezonedb" + }, + "tinypass": { + "name": "Piano", + "categoryId": 5, + "url": "https://piano.io/", + "companyId": "piano" + }, + "tisoomi": { + "name": "Tisoomi", + "categoryId": 4, + "url": "https://tisoomi-services.com/", + "companyId": null + }, + "tlv_media": { + "name": "TLV Media", + "categoryId": 4, + "url": "http://www.tlvmedia.com", + "companyId": "tlvmedia" + }, + "tns": { + "name": "TNS", + "categoryId": 6, + "url": "http://www.tnsglobal.com/", + "companyId": "wpp" + }, + "tomnewsupdate.info": { + "name": "tomnewsupdate.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "tomorrow_focus": { + "name": "Tomorrow Focus", + "categoryId": 4, + "url": "http://www.tomorrow-focus.com", + "companyId": "hubert_burda_media" + }, + "tonefuse": { + "name": "ToneFuse", + "categoryId": 4, + "url": "http://www.tonefuse.com/", + "companyId": "tonefuse" + }, + "top_mail": { + "name": "Top Mail", + "categoryId": 6, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "toplist.cz": { + "name": "toplist.cz", + "categoryId": 11, + "url": null, + "companyId": null + }, + "toponclick_com": { + "name": "toponclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "topsy": { + "name": "Topsy", + "categoryId": 4, + "url": "http://topsy.com/", + "companyId": "topsy" + }, + "torbit": { + "name": "Torbit", + "categoryId": 6, + "url": "http://torbit.com/", + "companyId": "torbit" + }, + "toro": { + "name": "TORO", + "categoryId": 4, + "url": "http://toroadvertising.com/", + "companyId": "toro_advertising" + }, + "tororango.com": { + "name": "tororango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "total_media": { + "name": "Total Media", + "categoryId": 4, + "url": "http://www.totalmedia.co.il/eng/", + "companyId": "total_media" + }, + "touchcommerce": { + "name": "Nuance", + "categoryId": 2, + "url": "https://www.nuance.com/omni-channel-customer-engagement/digital.html", + "companyId": "touchcommerce" + }, + "tovarro.com": { + "name": "Tovarro", + "categoryId": 4, + "url": "https://www.tovarro.com/", + "companyId": null + }, + "tp-cdn.com": { + "name": "TrialPay", + "categoryId": 4, + "url": "https://www.trialpay.com/", + "companyId": null + }, + "tracc.it": { + "name": "Kiwe.io", + "categoryId": 6, + "url": "https://www.kiwe.io/", + "companyId": null + }, + "tracemyip": { + "name": "TraceMyIP", + "categoryId": 4, + "url": "http://www.tracemyip.org/", + "companyId": "tracemyip" + }, + "traceview": { + "name": "TraceView", + "categoryId": 6, + "url": "http://www.appneta.com/", + "companyId": "appneta" + }, + "track_duck": { + "name": "Track Duck", + "categoryId": 6, + "url": "https://trackduck.com/", + "companyId": "track_duck" + }, + "trackjs": { + "name": "TrackJS", + "categoryId": 6, + "url": "http://www.trackjs.com/", + "companyId": "trackjs" + }, + "trackset_conversionlab": { + "name": "Trackset ConversionLab", + "categoryId": 4, + "url": "http://www.trackset.com/", + "companyId": "trackset" + }, + "trackuity": { + "name": "Trackuity", + "categoryId": 2, + "url": "http://www.trackuity.com/", + "companyId": "trackuity" + }, + "tradedesk": { + "name": "TradeDesk", + "categoryId": 4, + "url": "http://www.thetradedesk.com/", + "companyId": "the_trade_desk" + }, + "tradedoubler": { + "name": "TradeDoubler", + "categoryId": 4, + "url": "http://www.tradedoubler.com/", + "companyId": "tradedoubler" + }, + "tradelab": { + "name": "Tradelab", + "categoryId": 4, + "url": "http://www.tradelab.fr/", + "companyId": "tradelab" + }, + "tradetracker": { + "name": "TradeTracker", + "categoryId": 4, + "url": "http://www.tradetracker.com", + "companyId": "tradetracker" + }, + "traffective": { + "name": "Traffective", + "categoryId": 4, + "url": "https://traffective.com/", + "companyId": null + }, + "traffic_fuel": { + "name": "Traffic Fuel", + "categoryId": 4, + "url": "https://trafficfuel.com/", + "companyId": "traffic_fuel" + }, + "traffic_revenue": { + "name": "Traffic Revenue", + "categoryId": 4, + "url": "http://www.trafficrevenue.net/", + "companyId": "traffic_revenue" + }, + "traffic_stars": { + "name": "Traffic Stars", + "categoryId": 3, + "url": "https://trafficstars.com/#index_page", + "companyId": "traffic_stars" + }, + "trafficbroker": { + "name": "TrafficBroker", + "categoryId": 4, + "url": "http://trafficbroker.com/", + "companyId": "trafficbroker" + }, + "trafficfabrik.com": { + "name": "Traffic Fabrik", + "categoryId": 3, + "url": "https://www.trafficfabrik.com/", + "companyId": null + }, + "trafficfactory": { + "name": "Traffic Factory", + "categoryId": 4, + "url": "https://www.trafficfactory.biz/", + "companyId": null + }, + "trafficforce": { + "name": "TrafficForce", + "categoryId": 4, + "url": "http://www.trafficforce.com/", + "companyId": "trafficforce" + }, + "traffichaus": { + "name": "TrafficHaus", + "categoryId": 3, + "url": "http://www.traffichaus.com", + "companyId": "traffichaus" + }, + "trafficjunky": { + "name": "TrafficJunky", + "categoryId": 3, + "url": "http://www.trafficjunky.net/", + "companyId": "trafficjunky" + }, + "traffiliate": { + "name": "Traffiliate", + "categoryId": 4, + "url": "http://www.traffiliate.com/", + "companyId": "dsnr_media_group" + }, + "trafic": { + "name": "Trafic", + "categoryId": 6, + "url": "http://www.trafic.ro/", + "companyId": "trafic" + }, + "trafmag.com": { + "name": "TrafMag", + "categoryId": 4, + "url": "https://trafmag.com/", + "companyId": "trafmag" + }, + "transcend": { + "name": "Transcend Consent", + "categoryId": 14, + "url": "https://transcend.io/consent/", + "companyId": "transcend" + }, + "transcend_telemetry": { + "name": "Transcend Telemetry", + "categoryId": 6, + "url": "https://transcend.io", + "companyId": "transcend" + }, + "transmatic": { + "name": "Transmatic", + "categoryId": 6, + "url": "http://www.transmatico.com/en/", + "companyId": "transmatico" + }, + "travel_audience": { + "name": "Travel Audience", + "categoryId": 6, + "url": "https://travelaudience.com/", + "companyId": "travel_audience" + }, + "trbo": { + "name": "trbo", + "categoryId": 4, + "url": "http://www.trbo.com/", + "companyId": "trbo" + }, + "treasuredata": { + "name": "Treasure Data", + "categoryId": 6, + "url": "https://www.treasuredata.com/", + "companyId": "arm" + }, + "tremor_video": { + "name": "Tremor Video", + "categoryId": 0, + "url": "http://www.tremormedia.com/", + "companyId": "tremor_video" + }, + "trendcounter": { + "name": "trendcounter", + "categoryId": 6, + "url": "http://www.trendcounter.com/", + "companyId": "trendcounter" + }, + "trendemon": { + "name": "TrenDemon", + "categoryId": 6, + "url": "http://trendemon.com", + "companyId": "trendemon" + }, + "tribal_fusion": { + "name": "Tribal Fusion", + "categoryId": 4, + "url": "http://www.tribalfusion.com/", + "companyId": "exponential_interactive" + }, + "tribal_fusion_notice": { + "name": "Tribal Fusion Notice", + "categoryId": 4, + "url": "http://www.tribalfusion.com", + "companyId": "exponential_interactive" + }, + "triblio": { + "name": "Triblio", + "categoryId": 6, + "url": "https://triblio.com/", + "companyId": "triblio" + }, + "trigger_mail_marketing": { + "name": "Trigger Mail Marketing", + "categoryId": 4, + "url": "http://www.triggeremailmarketing.com/", + "companyId": "trigger_mail_marketing" + }, + "triggerbee": { + "name": "Triggerbee", + "categoryId": 2, + "url": "https://triggerbee.com/", + "companyId": "triggerbee" + }, + "tripadvisor": { + "name": "TripAdvisor", + "categoryId": 8, + "url": "http://iac.com/", + "companyId": "iac_apps" + }, + "triplelift": { + "name": "TripleLift", + "categoryId": 4, + "url": "http://triplelift.com/", + "companyId": "triplelift" + }, + "triptease": { + "name": "Triptease", + "categoryId": 2, + "url": "https://www.triptease.com", + "companyId": "triptease" + }, + "triton_digital": { + "name": "Triton Digital", + "categoryId": 0, + "url": "http://www.tritondigital.com/", + "companyId": "triton_digital" + }, + "trovus_revelations": { + "name": "Trovus Revelations", + "categoryId": 4, + "url": "http://www.trovus.co.uk/", + "companyId": "trovus_revelations" + }, + "trsv3.com": { + "name": "trsv3.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "true_fit": { + "name": "True Fit", + "categoryId": 4, + "url": "https://www.truefit.com/", + "companyId": "true_fit" + }, + "trueanthem": { + "name": "True Anthem", + "categoryId": 4, + "url": "https://www.trueanthem.com/", + "companyId": "trueanthem" + }, + "trueffect": { + "name": "TruEffect", + "categoryId": 4, + "url": "http://www.trueffect.com/", + "companyId": "trueffect" + }, + "truehits.net": { + "name": "Truehits.net", + "categoryId": 6, + "url": "http://truehits.net/", + "companyId": "truehits.net" + }, + "trumba": { + "name": "Trumba", + "categoryId": 4, + "url": "http://www.trumba.com", + "companyId": "trumba" + }, + "truoptik": { + "name": "Tru Optik", + "categoryId": 6, + "url": "http://truoptik.com/", + "companyId": null + }, + "trustarc": { + "name": "TrustArc", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_consent": { + "name": "Truste Consent", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_notice": { + "name": "TRUSTe Notice", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "truste_seal": { + "name": "TRUSTe Seal", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "trusted_shops": { + "name": "Trusted Shops", + "categoryId": 5, + "url": "http://www.trustedshops.com/", + "companyId": "trusted_shops" + }, + "trustev": { + "name": "Trustev", + "categoryId": 6, + "url": "http://www.trustev.com/", + "companyId": "trustev" + }, + "trustlogo": { + "name": "TrustLogo", + "categoryId": 5, + "url": "http://www.comodo.com/", + "companyId": "comodo" + }, + "trustpilot": { + "name": "Trustpilot", + "categoryId": 2, + "url": "http://www.trustpilot.com", + "companyId": "trustpilot" + }, + "trustwave.com": { + "name": "Trustwave", + "categoryId": 8, + "url": "https://www.trustwave.com/home/", + "companyId": null + }, + "tubecorporate": { + "name": "Tube Corporate", + "categoryId": 3, + "url": "https://tubecorporate.com/", + "companyId": null + }, + "tubecup.org": { + "name": "tubecup.org", + "categoryId": 3, + "url": null, + "companyId": null + }, + "tubemogul": { + "name": "TubeMogul", + "categoryId": 4, + "url": "http://tubemogul.com/", + "companyId": "tubemogul" + }, + "tumblr_analytics": { + "name": "Tumblr Analytics", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "tumblr_buttons": { + "name": "Tumblr Buttons", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tumblr_dashboard": { + "name": "Tumblr Dashboard", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tune_in": { + "name": "Tune In", + "categoryId": 0, + "url": "http://tunein.com/", + "companyId": "tunein" + }, + "turbo": { + "name": "Turbo", + "categoryId": 4, + "url": "http://www.turboadv.com/", + "companyId": "turbo" + }, + "turn_inc.": { + "name": "Turn Inc.", + "categoryId": 4, + "url": "https://www.amobee.com/company/", + "companyId": "singtel" + }, + "turner": { + "name": "Warner Media", + "categoryId": 6, + "url": "https://www.warnermedia.com/", + "companyId": "turner" + }, + "turnsocial": { + "name": "TurnSocial", + "categoryId": 7, + "url": "http://turnsocial.com/", + "companyId": "turnsocial" + }, + "turnto": { + "name": "TurnTo", + "categoryId": 2, + "url": "http://www.turntonetworks.com/", + "companyId": "turnto_networks" + }, + "tvsquared.com": { + "name": "TVSquared", + "categoryId": 4, + "url": "http://tvsquared.com/", + "companyId": "tvsquared" + }, + "tweetboard": { + "name": "Tweetboard", + "categoryId": 7, + "url": "http://tweetboard.com/alpha/", + "companyId": "tweetboard" + }, + "tweetmeme": { + "name": "TweetMeme", + "categoryId": 7, + "url": "http://tweetmeme.com/", + "companyId": "tweetmeme" + }, + "twenga": { + "name": "Twenga Solutions", + "categoryId": 4, + "url": "https://www.twenga-solutions.com/", + "companyId": null + }, + "twiago": { + "name": "Twiago", + "categoryId": 4, + "url": "https://www.twiago.com/", + "companyId": "twiago" + }, + "twine": { + "name": "Twine", + "categoryId": 6, + "url": "http://twinedigital.com/", + "companyId": "twine_digital" + }, + "twitch.tv": { + "name": "Twitch", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitch_cdn": { + "name": "Twitch CDN", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitter": { + "name": "Twitter", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twitter_ads": { + "name": "Twitter Advertising", + "categoryId": 4, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_analytics": { + "name": "Twitter Analytics", + "categoryId": 6, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twitter_badge": { + "name": "Twitter Badge", + "categoryId": 7, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_button": { + "name": "Twitter Button", + "categoryId": 7, + "url": "http://twitter.com", + "companyId": "twitter" + }, + "twitter_conversion_tracking": { + "name": "Twitter Conversion Tracking", + "categoryId": 4, + "url": "https://twitter.com/", + "companyId": "twitter" + }, + "twitter_for_business": { + "name": "Twitter for Business", + "categoryId": 4, + "url": "https://business.twitter.com/", + "companyId": "twitter" + }, + "twitter_syndication": { + "name": "Twitter Syndication", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twittercounter": { + "name": "TwitterCounter", + "categoryId": 6, + "url": "http://twittercounter.com/", + "companyId": "twitter_counter" + }, + "twyn": { + "name": "Twyn", + "categoryId": 4, + "url": "http://www.twyn.com", + "companyId": "twyn" + }, + "txxx.com": { + "name": "txxx.com", + "categoryId": 8, + "url": "https://txxx.com", + "companyId": null + }, + "tynt": { + "name": "33Across", + "categoryId": 4, + "url": "http://www.tynt.com/", + "companyId": "33across" + }, + "typeform": { + "name": "Typeform", + "categoryId": 2, + "url": "https://www.typeform.com/", + "companyId": null + }, + "typepad_stats": { + "name": "Typepad Stats", + "categoryId": 6, + "url": "http://www.typepad.com/features/statistics.ht", + "companyId": "typepad" + }, + "typography.com": { + "name": "Webfonts by Hoefler&Co", + "categoryId": 9, + "url": "https://www.typography.com/", + "companyId": null + }, + "tyroo": { + "name": "Tyroo", + "categoryId": 7, + "url": "http://www.tyroo.com/", + "companyId": "tyroo" + }, + "tzetze": { + "name": "TzeTze", + "categoryId": 2, + "url": "http://www.tzetze.it/", + "companyId": "tzetze" + }, + "ubersetzung-app.com": { + "name": "ubersetzung-app.com", + "categoryId": 12, + "url": "https://www.ubersetzung-app.com/", + "companyId": null + }, + "ucfunnel": { + "name": "ucfunnel", + "categoryId": 4, + "url": "https://www.ucfunnel.com/", + "companyId": "ucfunnel" + }, + "ucoz": { + "name": "uCoz", + "categoryId": 6, + "url": "http://www.ucoz.net/", + "companyId": "ucoz" + }, + "uliza": { + "name": "Uliza", + "categoryId": 4, + "url": "http://uliza.jp/index.html", + "companyId": "uliza" + }, + "umbel": { + "name": "Umbel", + "categoryId": 6, + "url": "http://umbel.com", + "companyId": "umbel" + }, + "umebiggestern.club": { + "name": "umebiggestern.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "unanimis": { + "name": "Unanimis", + "categoryId": 4, + "url": "http://www.unanimis.co.uk/", + "companyId": "switch_concepts" + }, + "unbounce": { + "name": "Unbounce", + "categoryId": 6, + "url": "http://unbounce.com/", + "companyId": "unbounce" + }, + "unbxd": { + "name": "UNBXD", + "categoryId": 6, + "url": "http://unbxd.com/", + "companyId": "unbxd" + }, + "under-box.com": { + "name": "under-box.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "undercomputer.com": { + "name": "undercomputer.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "underdog_media": { + "name": "Underdog Media", + "categoryId": 4, + "url": "http://www.underdogmedia.com", + "companyId": "underdog_media" + }, + "undertone": { + "name": "Undertone", + "categoryId": 4, + "url": "https://www.undertone.com/", + "companyId": "perion" + }, + "unica": { + "name": "Unica", + "categoryId": 2, + "url": "http://www.unica.com/", + "companyId": "ibm" + }, + "unister": { + "name": "Unister", + "categoryId": 6, + "url": "http://www.unister.de/", + "companyId": "unister" + }, + "unite": { + "name": "Unite", + "categoryId": 4, + "url": "http://unite.me/#", + "companyId": "unite" + }, + "united_digital_group": { + "name": "United Digital Group", + "categoryId": 4, + "url": "https://www.udg.de/", + "companyId": "united_digital_group" + }, + "united_internet_media_gmbh": { + "name": "United Internet Media GmbH", + "categoryId": 4, + "url": "https://www.united-internet.de/", + "companyId": "united_internet" + }, + "univide": { + "name": "Univide", + "categoryId": 4, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "unpkg.com": { + "name": "unpkg", + "categoryId": 9, + "url": "https://unpkg.com/#/", + "companyId": null + }, + "unruly_media": { + "name": "Unruly Media", + "categoryId": 4, + "url": "http://www.unrulymedia.com/", + "companyId": "unruly" + }, + "untriel_finger_printing": { + "name": "Untriel Finger Printing", + "categoryId": 6, + "url": "https://www.untriel.nl/", + "companyId": "untriel" + }, + "upland_clickability_beacon": { + "name": "Upland Clickability Beacon", + "categoryId": 4, + "url": "http://www.clickability.com/", + "companyId": "upland_software" + }, + "uppr.de": { + "name": "uppr GmbH", + "categoryId": 4, + "url": "https://uppr.de/", + "companyId": null + }, + "upravel.com": { + "name": "upravel.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "upsellit": { + "name": "UpSellit", + "categoryId": 2, + "url": "http://www.upsellit.com", + "companyId": "upsellit" + }, + "upsight": { + "name": "Upsight", + "categoryId": 6, + "url": "http://www.upsight.com/", + "companyId": "upsight" + }, + "uptain": { + "name": "Uptain", + "categoryId": 6, + "url": "http://www.uptain.de/en/regaining-lost-customers/", + "companyId": "uptain" + }, + "uptolike.com": { + "name": "Uptolike", + "categoryId": 7, + "url": "https://www.uptolike.com/", + "companyId": "uptolike" + }, + "uptrends": { + "name": "Uptrends", + "categoryId": 6, + "url": "http://www.uptrends.com/", + "companyId": "uptrends" + }, + "urban-media.com": { + "name": "Urban Media GmbH", + "categoryId": 4, + "url": "https://www.urban-media.com/", + "companyId": null + }, + "urban_airship": { + "name": "Urban Airship", + "categoryId": 6, + "url": "https://www.urbanairship.com/", + "companyId": "urban_airship" + }, + "usability_tools": { + "name": "Usability Tools", + "categoryId": 6, + "url": "http://usabilitytools.com/", + "companyId": "usability_tools" + }, + "usabilla": { + "name": "Usabilla", + "categoryId": 2, + "url": "https://usabilla.com/", + "companyId": "usabilla" + }, + "usemax": { + "name": "Usemax", + "categoryId": 4, + "url": "http://www.usemax.de", + "companyId": "usemax" + }, + "usemessages.com": { + "name": "usemessages.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "usercycle": { + "name": "USERcycle", + "categoryId": 6, + "url": "http://usercycle.com/", + "companyId": "usercycle" + }, + "userdive": { + "name": "USERDIVE", + "categoryId": 6, + "url": "http://userdive.com/", + "companyId": "userdive" + }, + "userecho": { + "name": "UserEcho", + "categoryId": 2, + "url": "http://userecho.com", + "companyId": "userecho" + }, + "userlike.com": { + "name": "Userlike", + "categoryId": 2, + "url": "https://www.userlike.com/", + "companyId": "userlike" + }, + "userpulse": { + "name": "UserPulse", + "categoryId": 2, + "url": "http://www.userpulse.com/", + "companyId": "userpulse" + }, + "userreplay": { + "name": "UserReplay", + "categoryId": 6, + "url": "https://www.userreplay.com/", + "companyId": "userreplay" + }, + "userreport": { + "name": "UserReport", + "categoryId": 2, + "url": "http://www.userreport.com/", + "companyId": "userreport" + }, + "userrules": { + "name": "UserRules", + "categoryId": 2, + "url": "http://www.userrules.com/", + "companyId": "userrules_software" + }, + "usersnap": { + "name": "Usersnap", + "categoryId": 2, + "url": "http://usersnap.com/", + "companyId": "usersnap" + }, + "uservoice": { + "name": "UserVoice", + "categoryId": 2, + "url": "http://uservoice.com/", + "companyId": "uservoice" + }, + "userzoom.com": { + "name": "UserZoom", + "categoryId": 2, + "url": "https://www.userzoom.com/", + "companyId": "userzoom" + }, + "usocial": { + "name": "Usocial", + "categoryId": 7, + "url": "https://usocial.pro/en", + "companyId": "usocial" + }, + "utarget": { + "name": "uTarget", + "categoryId": 4, + "url": "http://utarget.ru/", + "companyId": "utarget" + }, + "uuidksinc.net": { + "name": "uuidksinc.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "v12_group": { + "name": "V12 Group", + "categoryId": 6, + "url": null, + "companyId": null + }, + "vacaneedasap.com": { + "name": "vacaneedasap.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "valassis": { + "name": "Valassis", + "categoryId": 4, + "url": "http://www.brand.net/", + "companyId": "valassis" + }, + "validclick": { + "name": "ValidClick", + "categoryId": 4, + "url": "http://inuvo.com/", + "companyId": "inuvo" + }, + "valiton": { + "name": "Valiton", + "categoryId": 4, + "url": "https://www.valiton.com/", + "companyId": "hubert_burda_media" + }, + "valueclick_media": { + "name": "ValueClick Media", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "valuecommerce": { + "name": "ValueCommerce", + "categoryId": 4, + "url": "https://www.valuecommerce.ne.jp", + "companyId": "valuecommerce" + }, + "valued_opinions": { + "name": "Valued Opinions", + "categoryId": 4, + "url": "http://valuedopinions.com", + "companyId": "valued_opinions" + }, + "vanksen": { + "name": "Vanksen", + "categoryId": 4, + "url": "http://www.buzzparadise.com/", + "companyId": "vanksen" + }, + "varick_media_management": { + "name": "Varick Media Management", + "categoryId": 4, + "url": "http://www.varickmm.com/", + "companyId": "varick_media_management" + }, + "vcita": { + "name": "Vcita", + "categoryId": 6, + "url": "https://www.vcita.com/", + "companyId": "vcita" + }, + "vcommission": { + "name": "vCommission", + "categoryId": 4, + "url": "http://www.vcommission.com/", + "companyId": "vcommission" + }, + "vdopia": { + "name": "Vdopia", + "categoryId": 4, + "url": "http://mobile.vdopia.com/", + "companyId": "vdopia" + }, + "ve_interactive": { + "name": "Ve Interactive", + "categoryId": 4, + "url": "https://www.veinteractive.com", + "companyId": "ve_interactive" + }, + "vee24": { + "name": "VEE24", + "categoryId": 0, + "url": "https://www.vee24.com/", + "companyId": "vee24" + }, + "velocecdn.com": { + "name": "velocecdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "velti_mgage_visualize": { + "name": "Velti mGage Visualize", + "categoryId": 4, + "url": "http://www.velti.com/", + "companyId": "velti" + }, + "vendemore": { + "name": "Vendemore", + "categoryId": 1, + "url": "https://vendemore.com/", + "companyId": "ratos" + }, + "venturead.com": { + "name": "venturead.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "venyoo": { + "name": "Venyoo", + "categoryId": 2, + "url": "http://venyoo.ru/", + "companyId": "venyoo" + }, + "veoxa": { + "name": "Veoxa", + "categoryId": 4, + "url": "http://www.veoxa.com/", + "companyId": "veoxa" + }, + "vergic.com": { + "name": "Vergic", + "categoryId": 1, + "url": "https://www.vergic.com/", + "companyId": null + }, + "vero": { + "name": "Vero", + "categoryId": 4, + "url": "http://www.getvero.com/", + "companyId": "vero" + }, + "vertical_acuity": { + "name": "Vertical Acuity", + "categoryId": 4, + "url": "http://www.verticalacuity.com/", + "companyId": "outbrain" + }, + "vertical_leap": { + "name": "Vertical Leap", + "categoryId": 4, + "url": "http://www.vertical-leap.co.uk/", + "companyId": "vertical_leap" + }, + "verticalresponse": { + "name": "VerticalResponse", + "categoryId": 4, + "url": "http://www.verticalresponse.com", + "companyId": "verticalresponse" + }, + "verticalscope": { + "name": "VerticalScope", + "categoryId": 4, + "url": "http://www.verticalscope.com", + "companyId": "verticalscope" + }, + "vertoz": { + "name": "Vertoz", + "categoryId": 4, + "url": "http://www.vertoz.com/", + "companyId": "vertoz" + }, + "veruta": { + "name": "Veruta", + "categoryId": 4, + "url": "http://www.veruta.com/", + "companyId": "veruta" + }, + "verve_mobile": { + "name": "Verve Mobile", + "categoryId": 4, + "url": "http://www.vervemobile.com/", + "companyId": "verve_mobile" + }, + "vg_wort": { + "name": "VG Wort", + "categoryId": 6, + "url": "https://tom.vgwort.de/portal/showHelp", + "companyId": "vg_wort" + }, + "vi": { + "name": "Vi", + "categoryId": 4, + "url": "http://www.vi.ru/", + "companyId": "vi" + }, + "viacom_tag_container": { + "name": "Viacom Tag Container", + "categoryId": 4, + "url": "http://www.viacom.com/", + "companyId": "viacom" + }, + "viafoura": { + "name": "Viafoura", + "categoryId": 4, + "url": "http://www.viafoura.com/", + "companyId": "viafoura" + }, + "vibrant_ads": { + "name": "Vibrant Ads", + "categoryId": 4, + "url": "http://www.vibrantmedia.com/", + "companyId": "vibrant_media" + }, + "vicomi.com": { + "name": "Vicomi", + "categoryId": 6, + "url": "http://www.vicomi.com/", + "companyId": "vicomi" + }, + "vidazoo.com": { + "name": "Vidazoo", + "categoryId": 4, + "url": "https://www.vidazoo.com/", + "companyId": null + }, + "video_desk": { + "name": "Video Desk", + "categoryId": 0, + "url": "https://www.videodesk.com/", + "companyId": "video_desk" + }, + "video_potok": { + "name": "Video Potok", + "categoryId": 0, + "url": "http://videopotok.pro/", + "companyId": "videopotok" + }, + "videoadex.com": { + "name": "VideoAdX", + "categoryId": 4, + "url": "https://www.videoadex.com/", + "companyId": "digiteka" + }, + "videology": { + "name": "Videology", + "categoryId": 4, + "url": "https://videologygroup.com/", + "companyId": "singtel" + }, + "videonow": { + "name": "VideoNow", + "categoryId": 4, + "url": "https://videonow.ru/", + "companyId": "videonow" + }, + "videoplayerhub.com": { + "name": "videoplayerhub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "videoplaza": { + "name": "Videoplaza", + "categoryId": 4, + "url": "http://www.videoplaza.com/", + "companyId": "videoplaza" + }, + "videostep": { + "name": "VideoStep", + "categoryId": 4, + "url": "https://www.videostep.com/", + "companyId": "videostep" + }, + "vidgyor": { + "name": "Vidgyor", + "categoryId": 0, + "url": "http://vidgyor.com/", + "companyId": "vidgyor" + }, + "vidible": { + "name": "Vidible", + "categoryId": 4, + "url": "http://vidible.tv/", + "companyId": "verizon" + }, + "vidora": { + "name": "Vidora", + "categoryId": 0, + "url": "https://www.vidora.com/", + "companyId": "vidora" + }, + "vietad": { + "name": "VietAd", + "categoryId": 4, + "url": "http://vietad.vn/", + "companyId": "vietad" + }, + "viglink": { + "name": "VigLink", + "categoryId": 4, + "url": "http://www.viglink.com", + "companyId": "viglink" + }, + "vigo": { + "name": "Vigo", + "categoryId": 6, + "url": "https://vigo.one/", + "companyId": "vigo" + }, + "vimeo": { + "name": "Vimeo", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "vindico_group": { + "name": "Vindico Group", + "categoryId": 4, + "url": "http://www.vindicogroup.com/", + "companyId": "vindico_group" + }, + "vinted": { + "name": "Vinted", + "categoryId": 8, + "url": "https://www.vinted.com/", + "companyId": null + }, + "viral_ad_network": { + "name": "Viral Ad Network", + "categoryId": 4, + "url": "http://viraladnetwork.joinvan.com/", + "companyId": "viral_ad_network" + }, + "viral_loops": { + "name": "Viral Loops", + "categoryId": 2, + "url": "https://viral-loops.com/", + "companyId": "viral-loops" + }, + "viralgains": { + "name": "ViralGains", + "categoryId": 4, + "url": "https://www.viralgains.com/", + "companyId": null + }, + "viralmint": { + "name": "ViralMint", + "categoryId": 7, + "url": "http://www.viralmint.com", + "companyId": "viralmint" + }, + "virgul": { + "name": "Virgul", + "categoryId": 4, + "url": "http://www.virgul.com/", + "companyId": "virgul" + }, + "virool_player": { + "name": "Virool Player", + "categoryId": 4, + "url": "https://www.virool.com/", + "companyId": "virool" + }, + "virtusize": { + "name": "Virtusize", + "categoryId": 5, + "url": "http://www.virtusize.com/", + "companyId": "virtusize" + }, + "visible_measures": { + "name": "Visible Measures", + "categoryId": 4, + "url": "http://www.visiblemeasures.com/", + "companyId": "visible_measures" + }, + "vision_critical": { + "name": "Vision Critical", + "categoryId": 6, + "url": "http://visioncritical.com/", + "companyId": "vision_critical" + }, + "visit_streamer": { + "name": "Visit Streamer", + "categoryId": 6, + "url": "http://www.visitstreamer.com/", + "companyId": "visit_streamer" + }, + "visitortrack": { + "name": "VisitorTrack", + "categoryId": 4, + "url": "http://www.netfactor.com/", + "companyId": "netfactor" + }, + "visitorville": { + "name": "VisitorVille", + "categoryId": 6, + "url": "http://www.visitorville.com", + "companyId": "visitorville" + }, + "visscore": { + "name": "VisScore", + "categoryId": 4, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "visual_iq": { + "name": "Visual IQ", + "categoryId": 6, + "url": "http://visualiq.com/", + "companyId": "visualiq" + }, + "visual_revenue": { + "name": "Visual Revenue", + "categoryId": 6, + "url": "http://visualrevenue.com/", + "companyId": "outbrain" + }, + "visual_website_optimizer": { + "name": "VWO", + "categoryId": 6, + "url": "https://vwo.com/", + "companyId": "wingify" + }, + "visualdna": { + "name": "VisualDNA", + "categoryId": 4, + "url": "http://www.visualdna.com/", + "companyId": "nielsen" + }, + "visualstudio.com": { + "name": "Visualstudio.com", + "categoryId": 8, + "url": "https://www.visualstudio.com/", + "companyId": "microsoft" + }, + "visualvisitor": { + "name": "VisualVisitor", + "categoryId": 6, + "url": "http://www.visualvisitor.com/", + "companyId": "visualvisitor" + }, + "vivalu": { + "name": "VIVALU", + "categoryId": 4, + "url": "https://www.vivalu.com/", + "companyId": "vivalu" + }, + "vivistats": { + "name": "ViviStats", + "categoryId": 6, + "url": "http://en.vivistats.com/", + "companyId": "vivistats" + }, + "vizury": { + "name": "Vizury", + "categoryId": 4, + "url": "http://www.vizury.com/website/", + "companyId": "vizury" + }, + "vizzit": { + "name": "Vizzit", + "categoryId": 4, + "url": "http://www.vizzit.se/h/en/", + "companyId": "vizzit" + }, + "vk.com": { + "name": "Vk.com", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte": { + "name": "VKontakte", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte_widgets": { + "name": "VKontakte Widgets", + "categoryId": 7, + "url": "https://dev.vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vntsm.com": { + "name": "Venatus Media", + "categoryId": 4, + "url": "https://www.venatusmedia.com/", + "companyId": "venatus" + }, + "vodafone.de": { + "name": "vodafone.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "voicefive": { + "name": "VoiceFive", + "categoryId": 6, + "url": "https://www.voicefive.com", + "companyId": "comscore" + }, + "volusion_chat": { + "name": "Volusion Chat", + "categoryId": 2, + "url": "https://www.volusion.com/", + "companyId": "volusion" + }, + "voluum": { + "name": "Voluum", + "categoryId": 4, + "url": "https://voluum.com/", + "companyId": "codewise" + }, + "vooxe.com": { + "name": "vooxe.com", + "categoryId": 8, + "url": "http://www.vooxe.com/", + "companyId": null + }, + "vorwerk.de": { + "name": "vorwerk.de", + "categoryId": 8, + "url": "https://corporate.vorwerk.de/home/", + "companyId": null + }, + "vox": { + "name": "Vox", + "categoryId": 2, + "url": "https://www.voxmedia.com/", + "companyId": "vox" + }, + "voxus": { + "name": "Voxus", + "categoryId": 4, + "url": "http://www.voxus.tv/", + "companyId": "voxus" + }, + "vpon": { + "name": "VPON", + "categoryId": 4, + "url": "http://www.vpon.com/en/", + "companyId": "vpon" + }, + "vpscash": { + "name": "VPSCash", + "categoryId": 4, + "url": "http://vpscash.nl/home", + "companyId": "vps_cash" + }, + "vtracy.de": { + "name": "vtracy.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "vuukle": { + "name": "Vuukle", + "categoryId": 6, + "url": "http://vuukle.com/", + "companyId": "vuukle" + }, + "vzaar": { + "name": "Vzaar", + "categoryId": 0, + "url": "http://vzaar.com/", + "companyId": "vzaar" + }, + "w3counter": { + "name": "W3Counter", + "categoryId": 6, + "url": "http://www.w3counter.com/", + "companyId": "awio_web_services" + }, + "w3roi": { + "name": "w3roi", + "categoryId": 6, + "url": "http://www.w3roi.com/", + "companyId": "w3roi" + }, + "wahoha": { + "name": "Wahoha", + "categoryId": 2, + "url": "http://wahoha.com/", + "companyId": "wahoha" + }, + "walkme.com": { + "name": "WalkMe", + "categoryId": 2, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "wall_street_on_demand": { + "name": "Wall Street on Demand", + "categoryId": 4, + "url": "http://www.wallst.com", + "companyId": "markit_on_demand" + }, + "walmart": { + "name": "Walmart", + "categoryId": 8, + "url": null, + "companyId": null + }, + "wamcash": { + "name": "Wamcash", + "categoryId": 3, + "url": "http://wamcash.com/", + "companyId": "wamcash" + }, + "wanelo": { + "name": "Wanelo", + "categoryId": 2, + "url": "https://wanelo.com/", + "companyId": "wanelo" + }, + "warp.ly": { + "name": "Warp.ly", + "categoryId": 6, + "url": "https://warp.ly/", + "companyId": "warp.ly" + }, + "way2traffic": { + "name": "Way2traffic", + "categoryId": 4, + "url": "http://www.way2traffic.com/", + "companyId": "way2traffic" + }, + "wayfair_com": { + "name": "Wayfair", + "categoryId": 8, + "url": "https://www.wayfair.com/", + "companyId": null + }, + "wdr.de": { + "name": "wdr.de", + "categoryId": 8, + "url": "https://www1.wdr.de/index.html", + "companyId": null + }, + "web-stat": { + "name": "Web-Stat", + "categoryId": 6, + "url": "http://www.web-stat.net/", + "companyId": "web-stat" + }, + "web.de": { + "name": "web.de", + "categoryId": 8, + "url": "https://web.de/", + "companyId": null + }, + "web.stat": { + "name": "Web.STAT", + "categoryId": 6, + "url": "http://webstat.net/", + "companyId": "web.stat" + }, + "web_service_award": { + "name": "Web Service Award", + "categoryId": 6, + "url": "http://webserviceaward.com/english/", + "companyId": "web_service_award" + }, + "web_traxs": { + "name": "Web Traxs", + "categoryId": 6, + "url": "http://websolutions.thomasnet.com/web-traxs-analytics.php", + "companyId": "thomasnet_websolutions" + }, + "web_wipe_analytics": { + "name": "Web Wipe Analytics", + "categoryId": 6, + "url": "http://tensquare.de", + "companyId": "tensquare" + }, + "webads": { + "name": "WebAds", + "categoryId": 4, + "url": "http://www.webads.co.uk/", + "companyId": "webads" + }, + "webantenna": { + "name": "WebAntenna", + "categoryId": 6, + "url": "http://www.bebit.co.jp/webantenna/", + "companyId": "webantenna" + }, + "webclicks24_com": { + "name": "webclicks24.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "webclose.net": { + "name": "webclose.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "webcollage": { + "name": "Webcollage", + "categoryId": 2, + "url": "http://www.webcollage.com/", + "companyId": "webcollage" + }, + "webedia": { + "name": "Webedia", + "categoryId": 4, + "url": "http://fr.webedia-group.com/", + "companyId": "fimalac_group" + }, + "webeffective": { + "name": "WebEffective", + "categoryId": 6, + "url": "http://www.keynote.com/", + "companyId": "keynote_systems" + }, + "webengage": { + "name": "WebEngage", + "categoryId": 2, + "url": "http://webengage.com/", + "companyId": "webengage" + }, + "webgains": { + "name": "Webgains", + "categoryId": 8, + "url": null, + "companyId": null + }, + "webgozar": { + "name": "WebGozar", + "categoryId": 6, + "url": "http://webgozar.com/", + "companyId": "webgozar" + }, + "webhelpje": { + "name": "Webhelpje", + "categoryId": 2, + "url": "http://www.webhelpje.nl/", + "companyId": "webhelpje" + }, + "webleads_tracker": { + "name": "Webleads Tracker", + "categoryId": 6, + "url": "http://www.webleads-tracker.fr/", + "companyId": "webleads_tracker" + }, + "webmecanik": { + "name": "Webmecanik", + "categoryId": 6, + "url": "http://www.webmecanik.com/en/", + "companyId": "webmecanik" + }, + "weborama": { + "name": "Weborama", + "categoryId": 4, + "url": "https://weborama.com/", + "companyId": "weborama" + }, + "webprospector": { + "name": "WebProspector", + "categoryId": 6, + "url": "http://www.webprospector.de/", + "companyId": "webprospector" + }, + "webstat": { + "name": "WebSTAT", + "categoryId": 6, + "url": "http://www.webstat.com/", + "companyId": "webstat" + }, + "webstat.se": { + "name": "Webstat.se", + "categoryId": 6, + "url": "http://www.webstat.se/", + "companyId": "webstat.se" + }, + "webtrack": { + "name": "webtrack", + "categoryId": 6, + "url": "http://www.webtrack.biz/", + "companyId": "webtrack" + }, + "webtraffic": { + "name": "Webtraffic", + "categoryId": 6, + "url": "http://www.webtraffic.se/", + "companyId": "schibsted_asa" + }, + "webtrekk": { + "name": "Webtrekk", + "categoryId": 6, + "url": "http://www.webtrekk.com/", + "companyId": "webtrekk" + }, + "webtrekk_cc": { + "name": "Webtrek Control Cookie", + "categoryId": 6, + "url": "https://www.webtrekk.com/en/home/", + "companyId": "webtrekk" + }, + "webtrends": { + "name": "Webtrends", + "categoryId": 6, + "url": "http://www.webtrends.com/", + "companyId": "webtrends" + }, + "webtrends_ads": { + "name": "Webtrends Ads", + "categoryId": 4, + "url": "http://www.webtrends.com", + "companyId": "webtrends" + }, + "webvisor": { + "name": "WebVisor", + "categoryId": 6, + "url": "http://webvisor.ru", + "companyId": "yandex" + }, + "wedcs": { + "name": "WEDCS", + "categoryId": 4, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "weebly_ads": { + "name": "Weebly Ads", + "categoryId": 4, + "url": "http://www.weebly.com", + "companyId": "weebly" + }, + "weibo_widget": { + "name": "Weibo Widget", + "categoryId": 4, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "westlotto_com": { + "name": "westlotto.com", + "categoryId": 8, + "url": "http://westlotto.com/", + "companyId": null + }, + "wetter_com": { + "name": "Wetter.com", + "categoryId": 8, + "url": "http://www.wetter.com/", + "companyId": null + }, + "whatbroadcast": { + "name": "Whatbroadcast", + "categoryId": 2, + "url": "https://www.whatsbroadcast.com/", + "companyId": "whatsbroadcast" + }, + "whos.amung.us": { + "name": "Whos.amung.us", + "categoryId": 6, + "url": "http://whos.amung.us/", + "companyId": "whos.amung.us" + }, + "whoson": { + "name": "WhosOn", + "categoryId": 6, + "url": "http://www.whoson.com/", + "companyId": "whoson" + }, + "wibbitz": { + "name": "Wibbitz", + "categoryId": 0, + "url": "http://www.wibbitz.com/", + "companyId": "wibbitz" + }, + "wibiya_toolbar": { + "name": "Wibiya Toolbar", + "categoryId": 7, + "url": "http://www.wibiya.com/", + "companyId": "wibiya" + }, + "widdit": { + "name": "Widdit", + "categoryId": 2, + "url": "http://www.predictad.com/", + "companyId": "widdit" + }, + "widerplanet": { + "name": "WiderPlanet", + "categoryId": 4, + "url": "http://widerplanet.com/", + "companyId": "wider_planet" + }, + "widespace": { + "name": "Widespace", + "categoryId": 4, + "url": "https://www.widespace.com/", + "companyId": "widespace" + }, + "widgetbox": { + "name": "WidgetBox", + "categoryId": 2, + "url": "http://www.widgetbox.com/", + "companyId": "widgetbox" + }, + "wiget_media": { + "name": "Wiget Media", + "categoryId": 4, + "url": "http://wigetmedia.com", + "companyId": "wiget_media" + }, + "wigzo": { + "name": "Wigzo", + "categoryId": 4, + "url": "https://www.wigzo.com/", + "companyId": "wigzo" + }, + "wikia-services.com": { + "name": "Wikia Services", + "categoryId": 8, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikia_beacon": { + "name": "Wikia Beacon", + "categoryId": 6, + "url": "http://www.wikia.com/", + "companyId": "wikia" + }, + "wikia_cdn": { + "name": "Wikia CDN", + "categoryId": 9, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikimedia.org": { + "name": "WikiMedia", + "categoryId": 9, + "url": "https://wikimediafoundation.org/", + "companyId": "wikimedia_foundation" + }, + "winaffiliates": { + "name": "Winaffiliates", + "categoryId": 6, + "url": "http://www.winaffiliates.com/", + "companyId": "winaffiliates" + }, + "wipmania": { + "name": "WIPmania", + "categoryId": 6, + "url": "http://www.wipmania.com/", + "companyId": "wipmania" + }, + "wiqhit": { + "name": "WiQhit", + "categoryId": 6, + "url": "https://wiqhit.com/nl/", + "companyId": "wiqhit" + }, + "wirecard": { + "name": "Wirecard", + "categoryId": 2, + "url": "https://www.wirecard.com/", + "companyId": null + }, + "wiredminds": { + "name": "WiredMinds", + "categoryId": 6, + "url": "http://www.wiredminds.de/", + "companyId": "wiredminds" + }, + "wirtualna_polska": { + "name": "Wirtualna Polska", + "categoryId": 4, + "url": "http://reklama.wp.pl/", + "companyId": "wirtualna_polska" + }, + "wisepops": { + "name": "WisePops", + "categoryId": 4, + "url": "http://wisepops.com/", + "companyId": "wisepops" + }, + "wishpond": { + "name": "Wishpond", + "categoryId": 2, + "url": "http://wishpond.com", + "companyId": "wishpond" + }, + "wistia": { + "name": "Wistia", + "categoryId": 6, + "url": "http://wistia.com/", + "companyId": "wistia" + }, + "wix.com": { + "name": "Wix", + "categoryId": 8, + "url": "https://www.wix.com/", + "companyId": "wix" + }, + "wixab": { + "name": "Wixab", + "categoryId": 6, + "url": "http://wixab.com/en/", + "companyId": "wixab" + }, + "wixmp": { + "name": "Wix Media Platform", + "categoryId": 9, + "url": "https://www.wixmp.com/", + "companyId": "wix" + }, + "wnzmauurgol.com": { + "name": "wnzmauurgol.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "wonderpush": { + "name": "WonderPush", + "categoryId": 2, + "url": "https://www.wonderpush.com/", + "companyId": "wonderpush" + }, + "woopic.com": { + "name": "woopic.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "woopra": { + "name": "Woopra", + "categoryId": 6, + "url": "http://www.woopra.com/", + "companyId": "woopra" + }, + "wordpress_ads": { + "name": "Wordpress Ads", + "categoryId": 4, + "url": "https://wordpress.com/", + "companyId": "automattic" + }, + "wordpress_stats": { + "name": "WordPress Stats", + "categoryId": 6, + "url": "http://wordpress.org/extend/plugins/stats/", + "companyId": "automattic" + }, + "wordstream": { + "name": "WordStream", + "categoryId": 6, + "url": "http://www.wordstream.com/", + "companyId": "wordstream" + }, + "worldnaturenet_xyz": { + "name": "worldnaturenet.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "wp.pl": { + "name": "Wirtualna Polska ", + "categoryId": 4, + "url": "https://www.wp.pl/", + "companyId": "wp" + }, + "wp_engine": { + "name": "WP Engine", + "categoryId": 5, + "url": "https://wpengine.com/", + "companyId": "wp_engine" + }, + "writeup_clickanalyzer": { + "name": "WriteUp ClickAnalyzer", + "categoryId": 6, + "url": "http://www.writeup.co.jp/", + "companyId": "writeup" + }, + "wurfl": { + "name": "WURFL", + "categoryId": 6, + "url": "https://web.wurfl.io/", + "companyId": "scientiamobile" + }, + "wwwpromoter": { + "name": "WWWPromoter", + "categoryId": 4, + "url": "http://wwwpromoter.com/", + "companyId": "wwwpromoter" + }, + "wykop": { + "name": "Wykop", + "categoryId": 7, + "url": "http://www.wykop.pl", + "companyId": "wykop" + }, + "wysistat.com": { + "name": "WysiStat", + "categoryId": 6, + "url": "https://www.wysistat.net/", + "companyId": "wysistat" + }, + "wywy.com": { + "name": "wywy", + "categoryId": 4, + "url": "http://wywy.com/", + "companyId": "tvsquared" + }, + "x-lift": { + "name": "X-lift", + "categoryId": 4, + "url": "https://www.x-lift.jp/", + "companyId": "x-lift" + }, + "xapads": { + "name": "Xapads", + "categoryId": 4, + "url": "http://www.xapads.com/", + "companyId": "xapads" + }, + "xen-media.com": { + "name": "xen-media.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "xfreeservice.com": { + "name": "xfreeservice.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "xhamster": { + "name": "xHamster", + "categoryId": 3, + "url": null, + "companyId": null + }, + "xing": { + "name": "Xing", + "categoryId": 6, + "url": "http://www.xing.com/", + "companyId": "xing" + }, + "xmediaclicks": { + "name": "XmediaClicks", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "xnxx_cdn": { + "name": "xnxx CDN", + "categoryId": 9, + "url": "https://www.xnxx.com", + "companyId": null + }, + "xplosion": { + "name": "xplosion", + "categoryId": 4, + "url": "http://www.xplosion.de/", + "companyId": "xplosion_interactive" + }, + "xtend": { + "name": "XTEND", + "categoryId": 4, + "url": "http://www.xtendmedia.com/", + "companyId": "matomy_media" + }, + "xvideos_com": { + "name": "xvideos.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "xxxlshop.de": { + "name": "xxxlshop.de", + "categoryId": 8, + "url": "https://www.xxxlshop.de/", + "companyId": null + }, + "xxxlutz": { + "name": "XXXLutz", + "categoryId": 8, + "url": "https://www.xxxlutz.de/", + "companyId": "xxxlutz" + }, + "yabbi": { + "name": "Yabbi", + "categoryId": 4, + "url": "https://yabbi.me/", + "companyId": null + }, + "yabuka": { + "name": "Yabuka", + "categoryId": 4, + "url": "http://www.yabuka.com/", + "companyId": "yabuka" + }, + "yahoo": { + "name": "Yahoo!", + "categoryId": 6, + "url": "https://yahoo.com", + "companyId": "verizon" + }, + "yahoo_ad_exchange": { + "name": "Yahoo! Ad Exchange", + "categoryId": 4, + "url": "https://www.verizonmedia.com/advertising", + "companyId": "verizon" + }, + "yahoo_ad_manager": { + "name": "Yahoo! Ad Manager Plus", + "categoryId": 4, + "url": "https://developer.yahoo.com/analytics/", + "companyId": "verizon" + }, + "yahoo_analytics": { + "name": "Yahoo! Analytics", + "categoryId": 6, + "url": "http://web.analytics.yahoo.com/", + "companyId": "verizon" + }, + "yahoo_commerce_central": { + "name": "Yahoo! Commerce Central", + "categoryId": 4, + "url": "http://lexity.com/", + "companyId": "verizon" + }, + "yahoo_dot_tag": { + "name": "Yahoo! DOT tag", + "categoryId": 4, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "yahoo_japan_retargeting": { + "name": "Yahoo! Japan Retargeting", + "categoryId": 4, + "url": "http://www.yahoo.com/", + "companyId": "yahoo_japan" + }, + "yahoo_overture": { + "name": "Yahoo! Overture", + "categoryId": 4, + "url": "http://searchmarketing.yahoo.com", + "companyId": "verizon" + }, + "yahoo_small_business": { + "name": "Yahoo! Small Business", + "categoryId": 4, + "url": "http://www.pixazza.com/", + "companyId": "verizon" + }, + "yandex": { + "name": "Yandex", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex.api": { + "name": "Yandex.API", + "categoryId": 2, + "url": "http://api.yandex.ru/", + "companyId": "yandex" + }, + "yandex_adexchange": { + "name": "Yandex AdExchange", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex_advisor": { + "name": "Yandex.Advisor", + "categoryId": 12, + "url": "https://sovetnik.yandex.ru/", + "companyId": "yandex" + }, + "yandex_direct": { + "name": "Yandex.Direct", + "categoryId": 6, + "url": "https://direct.yandex.com/", + "companyId": "yandex" + }, + "yandex_metrika": { + "name": "Yandex Metrika", + "categoryId": 6, + "url": "https://metrica.yandex.com/", + "companyId": "yandex" + }, + "yandex_passport": { + "name": "Yandex Passport", + "categoryId": 2, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yapfiles.ru": { + "name": "yapfiles.ru", + "categoryId": 8, + "url": "https://www.yapfiles.ru/", + "companyId": null + }, + "yashi": { + "name": "Yashi", + "categoryId": 4, + "url": "http://www.yashi.com/", + "companyId": "mass2" + }, + "ybrant_media": { + "name": "Ybrant Media", + "categoryId": 4, + "url": "http://www.addynamix.com/index.html", + "companyId": "ybrant_media" + }, + "ycontent": { + "name": "Ycontent", + "categoryId": 0, + "url": "http://ycontent.com.br/", + "companyId": "ycontent" + }, + "yektanet": { + "name": "Yektanet", + "categoryId": 4, + "url": "https://yektanet.com/", + "companyId": "yektanet" + }, + "yengo": { + "name": "Yengo", + "categoryId": 4, + "url": "http://www.yengo.com/", + "companyId": "yengo" + }, + "yesmail": { + "name": "Yesmail", + "categoryId": 4, + "url": "http://www.yesmail.com/", + "companyId": "yes_mail" + }, + "yesup_advertising": { + "name": "YesUp Advertising", + "categoryId": 4, + "url": "http://yesup.net/", + "companyId": "yesup" + }, + "yesware": { + "name": "Yesware", + "categoryId": 2, + "url": "http://www.yesware.com/", + "companyId": "yesware" + }, + "yieldbot": { + "name": "Yieldbot", + "categoryId": 6, + "url": "https://www.yieldbot.com/", + "companyId": "yieldbot" + }, + "yieldify": { + "name": "Yieldify", + "categoryId": 4, + "url": "http://www.yieldify.com/", + "companyId": "yieldify" + }, + "yieldlab": { + "name": "Yieldlab", + "categoryId": 4, + "url": "http://www.yieldlab.de/", + "companyId": "prosieben_sat1" + }, + "yieldlove": { + "name": "Yieldlove", + "categoryId": 4, + "url": "https://www.yieldlove.com/", + "companyId": "yieldlove" + }, + "yieldmo": { + "name": "Yieldmo", + "categoryId": 4, + "url": "https://www.yieldmo.com/", + "companyId": "yieldmo" + }, + "yieldr": { + "name": "Yieldr Ads", + "categoryId": 4, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldr_air": { + "name": "Yieldr Air", + "categoryId": 6, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldsquare": { + "name": "YieldSquare", + "categoryId": 4, + "url": "http://www.yieldsquare.com/", + "companyId": "yieldsquare" + }, + "yle": { + "name": "YLE", + "categoryId": 6, + "url": "http://yle.fi/", + "companyId": "yle" + }, + "yllixmedia": { + "name": "YllixMedia", + "categoryId": 4, + "url": "http://yllix.com/", + "companyId": "yllixmedia" + }, + "ymetrica1.com": { + "name": "ymetrica1.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ymzrrizntbhde.com": { + "name": "ymzrrizntbhde.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "yo_button": { + "name": "Yo Button", + "categoryId": 2, + "url": "http://www.justyo.co/", + "companyId": "yo" + }, + "yodle": { + "name": "Yodle", + "categoryId": 4, + "url": "http://www.yodle.com/", + "companyId": "yodle" + }, + "yola_analytics": { + "name": "Yola Analytics", + "categoryId": 6, + "url": "https://www.yola.com/", + "companyId": "yola" + }, + "yomedia": { + "name": "Yomedia", + "categoryId": 4, + "url": "http://www.pinetech.vn/", + "companyId": "yomedia" + }, + "yoochoose.net": { + "name": "YOOCHOOSE", + "categoryId": 4, + "url": "https://yoochoose.com/", + "companyId": null + }, + "yotpo": { + "name": "Yotpo", + "categoryId": 1, + "url": "https://www.yotpo.com/", + "companyId": "yotpo" + }, + "yottaa": { + "name": "Yottaa", + "categoryId": 6, + "url": "https://www.yottaa.com/", + "companyId": "yottaa" + }, + "yottly": { + "name": "Yottly", + "categoryId": 4, + "url": "https://yottly.com/", + "companyId": "yottly" + }, + "youcanbookme": { + "name": "YouCanBookMe", + "categoryId": 2, + "url": "https://youcanbook.me/", + "companyId": "youcanbookme" + }, + "youku": { + "name": "Youku", + "categoryId": 0, + "url": "http://www.youku.com/", + "companyId": "youku" + }, + "youporn": { + "name": "YouPorn", + "categoryId": 3, + "url": null, + "companyId": null + }, + "youtube": { + "name": "YouTube", + "categoryId": 0, + "url": "https://www.youtube.com/", + "companyId": "google" + }, + "youtube_subscription": { + "name": "YouTube Subscription", + "categoryId": 2, + "url": "http://www.youtube.com/", + "companyId": "google" + }, + "yp": { + "name": "YellowPages", + "categoryId": 4, + "url": "https://www.yellowpages.com/", + "companyId": "thryv" + }, + "ysance": { + "name": "YSance", + "categoryId": 4, + "url": "http://www.ysance.com/en/index.html", + "companyId": "ysance" + }, + "yume": { + "name": "YuMe", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yume,_inc.": { + "name": "YuMe, Inc.", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yusp": { + "name": "Yusp", + "categoryId": 6, + "url": "https://www.yusp.com/", + "companyId": "yusp" + }, + "zadarma": { + "name": "Zadarma", + "categoryId": 2, + "url": "https://zadarma.com/", + "companyId": "zadarma" + }, + "zalando_de": { + "name": "zalando.de", + "categoryId": 8, + "url": "https://zalando.de/", + "companyId": "zalando" + }, + "zalo": { + "name": "Zalo", + "categoryId": 2, + "url": "https://zaloapp.com/", + "companyId": "zalo" + }, + "zanox": { + "name": "Zanox", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "zaparena": { + "name": "zaparena", + "categoryId": 4, + "url": "http://www.zaparena.com/", + "companyId": "zapunited" + }, + "zappos": { + "name": "Zappos", + "categoryId": 4, + "url": "http://www.zappos.com/", + "companyId": "zappos" + }, + "zdassets.com": { + "name": "Zendesk CDN", + "categoryId": 8, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zebestof.com": { + "name": "Zebestof", + "categoryId": 4, + "url": "http://www.zebestof.com/en/home/", + "companyId": "zebestof" + }, + "zedo": { + "name": "Zedo", + "categoryId": 4, + "url": "http://www.zedo.com/", + "companyId": "zedo" + }, + "zemanta": { + "name": "Zemanta", + "categoryId": 2, + "url": "http://www.zemanta.com/", + "companyId": "zemanta" + }, + "zencoder": { + "name": "Zencoder", + "categoryId": 0, + "url": "https://zencoder.com/en/", + "companyId": "zencoder" + }, + "zendesk": { + "name": "Zendesk", + "categoryId": 2, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zergnet": { + "name": "ZergNet", + "categoryId": 2, + "url": "http://www.zergnet.com/info", + "companyId": "zergnet" + }, + "zero.kz": { + "name": "ZERO.kz", + "categoryId": 6, + "url": "http://zero.kz/", + "companyId": "neolabs_zero" + }, + "zeta": { + "name": "Zeta", + "categoryId": 2, + "url": "https://zetaglobal.com/", + "companyId": "zeta" + }, + "zeusclicks": { + "name": "ZeusClicks", + "categoryId": 4, + "url": "http://zeusclicks.com/", + "companyId": null + }, + "ziff_davis": { + "name": "Ziff Davis", + "categoryId": 4, + "url": "https://www.ziffdavis.com/", + "companyId": "ziff_davis" + }, + "zift_solutions": { + "name": "Zift Solutions", + "categoryId": 6, + "url": "https://ziftsolutions.com/", + "companyId": "zift_solutions" + }, + "zimbio.com": { + "name": "Zimbio", + "categoryId": 8, + "url": "http://www.zimbio.com/", + "companyId": null + }, + "zippyshare_widget": { + "name": "Zippyshare Widget", + "categoryId": 2, + "url": "http://www.zippyshare.com", + "companyId": "zippyshare" + }, + "zmags": { + "name": "Zmags", + "categoryId": 6, + "url": "https://zmags.com/", + "companyId": "zmags" + }, + "zmctrack.net": { + "name": "zmctrack.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zog.link": { + "name": "zog.link", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zoho": { + "name": "Zoho", + "categoryId": 6, + "url": "https://www.zohocorp.com/index.html", + "companyId": "zoho_corp" + }, + "zononi.com": { + "name": "zononi.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "zopim": { + "name": "Zopim", + "categoryId": 2, + "url": "http://www.zopim.com/", + "companyId": "zendesk" + }, + "zukxd6fkxqn.com": { + "name": "zukxd6fkxqn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zwaar": { + "name": "Zwaar", + "categoryId": 4, + "url": "http://www.zwaar.org", + "companyId": "zwaar" + }, + "zypmedia": { + "name": "ZypMedia", + "categoryId": 4, + "url": "http://www.zypmedia.com/", + "companyId": "zypmedia" + }, + "slack": { + "name": "Slack", + "categoryId": 8, + "url": "https://www.slack.com/", + "companyId": "salesforce", + "source": "AdGuard" + }, + "apple": { + "name": "Apple", + "categoryId": 8, + "url": "https://www.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "apple_ads": { + "name": "Apple Search Ads", + "categoryId": 4, + "url": "https://searchads.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "facebook_audience": { + "name": "Facebook Audience Network", + "categoryId": 4, + "url": "https://www.facebook.com/business/products/audience-network", + "companyId": "facebook", + "source": "AdGuard" + }, + "crashlytics": { + "name": "Crashlytics", + "categoryId": 101, + "url": "https://crashlytics.com/", + "companyId": null, + "source": "AdGuard" + }, + "showrss": { + "name": "showRSS", + "categoryId": 8, + "url": "https://showrss.info/", + "companyId": "showrss", + "source": "AdGuard" + }, + "hockeyapp": { + "name": "HockeyApp", + "categoryId": 101, + "url": "https://hockeyapp.net/", + "companyId": null, + "source": "AdGuard" + }, + "google_trust_services": { + "name": "Google Trust Services", + "categoryId": 5, + "url": "https://pki.goog/", + "companyId": "google", + "source": "AdGuard" + }, + "firebase": { + "name": "Firebase", + "categoryId": 101, + "url": "https://firebase.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "yandex_appmetrica": { + "name": "Yandex AppMetrica", + "categoryId": 101, + "url": "https://appmetrica.yandex.com/", + "companyId": "yandex", + "source": "AdGuard" + }, + "branch": { + "name": "Branch.io", + "categoryId": 101, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc", + "source": "AdGuard" + }, + "qualcomm": { + "name": "Qualcomm", + "categoryId": 8, + "url": "https://www.qualcomm.com/", + "companyId": "qualcomm", + "source": "AdGuard" + }, + "solaredge": { + "name": "SolarEdge Technologies, Inc.", + "categoryId": 8, + "url": "https://www.solaredge.com/", + "companyId": "solaredge", + "source": "AdGuard" + }, + "element": { + "name": "Element", + "categoryId": 7, + "url": "https://element.io/", + "companyId": "element", + "source": "AdGuard" + }, + "outlook": { + "name": "Microsoft Outlook", + "categoryId": 13, + "url": "https://outlook.live.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "appcenter": { + "name": "Microsoft App Center", + "categoryId": 5, + "url": "https://appcenter.ms/", + "companyId": null, + "source": "AdGuard" + }, + "unity_ads": { + "name": "Unity Ads", + "categoryId": 4, + "url": "https://unity.com/solutions/mobile-business/monetize-your-game", + "companyId": null, + "source": "AdGuard" + }, + "azure": { + "name": "Microsoft Azure", + "categoryId": 10, + "url": "https://azure.microsoft.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "button": { + "name": "Button", + "categoryId": 4, + "url": "https://www.usebutton.com/", + "companyId": null, + "source": "AdGuard" + }, + "lets_encrypt": { + "name": "Let's Encrypt", + "categoryId": 5, + "url": "https://letsencrypt.org/", + "companyId": "lets_encrypt", + "source": "AdGuard" + }, + "plex": { + "name": "Plex", + "categoryId": 0, + "url": "https://www.plex.tv/", + "companyId": "plex", + "source": "AdGuard" + }, + "matrix": { + "name": "Matrix", + "categoryId": 5, + "url": "https://matrix.org/", + "companyId": "matrix", + "source": "AdGuard" + } + }, + "trackerDomains": { + "mmtro.com": "1000mercis", + "creative-serving.com": "161media", + "p161.net": "161media", + "analytics.163.com": "163", + "1822direkt.de": "1822direkt.de", + "1dmp.io": "1dmp.io", + "opecloud.com": "1plusx", + "1sponsor.com": "1sponsor", + "tm.dentsu.de": "1tag", + "1and1.com": "1und1", + "1und1.de": "1und1", + "uicdn.com": "1und1", + "website-start.de": "1und1", + "24-ads.com": "24-ads.com", + "247-inc.net": "24_7", + "d1af033869koo7.cloudfront.net": "24_7", + "counter.24log.ru": "24log", + "24smi.net": "24smi", + "24smi.org": "24smi", + "2leep.com": "2leep", + "33across.com": "33across", + "3dstats.com": "3dstats", + "4cdn.org": "4chan", + "4finance.com": "4finance_com", + "4wnet.com": "4w_marketplace", + "d3aa0ztdn3oibi.cloudfront.net": "500friends", + "51.la": "51.la", + "5min.com": "5min_media", + "d1lm7kd3bd3yo9.cloudfront.net": "6sense", + "grepdata.com": "6sense", + "77tracking.com": "77tracking", + "7tv.de": "7tv.de", + "888media.net": "888media", + "hit.8digits.com": "8digits", + "94j7afz2nr.xyz": "94j7afz2nr.xyz", + "statsanalytics.com": "99stats", + "a3cloud.net": "a3cloud_net", + "a8.net": "a8", + "aaxads.com": "aaxads.com", + "abtasty.com": "ab_tasty", + "d1447tq2m68ekg.cloudfront.net": "ab_tasty", + "ablida.de": "ablida", + "ablida.net": "ablida", + "durasite.net": "accelia", + "accengage.net": "accengage", + "ax.xrea.com": "accessanalyzer", + "accesstrade.net": "accesstrade", + "agcdn.com": "accord_group", + "accmgr.com": "accordant_media", + "p-td.com": "accuen_media", + "acestream.net": "acestream.net", + "acint.net": "acint.net", + "acloudimages.com": "acloudimages", + "acpm.fr": "acpm.fr", + "acquia.com": "acquia.com", + "ziyu.net": "acrweb", + "actionpay.ru": "actionpay", + "adnwb.ru": "actionpay", + "adonweb.ru": "actionpay", + "active-agent.com": "active_agent", + "trackcmp.net": "active_campaign", + "active-srv02.de": "active_performance", + "active-tracking.de": "active_performance", + "activeconversion.com": "activeconversion", + "a-cast.jp": "activecore", + "activemeter.com": "activemeter", + "go.activengage.com": "activengage", + "actonsoftware.com": "acton", + "acuityplatform.com": "acuity_ads", + "acxiom-online.com": "acxiom", + "acxiom.com": "acxiom", + "ad-blocker.org": "ad-blocker.org", + "ads.ad-center.com": "ad-center", + "ad-delivery.net": "ad-delivery.net", + "ad-sys.com": "ad-sys", + "adagionet.com": "ad.agio", + "ad2click.go2cloud.org": "ad2click", + "ad2games.com": "ad2games", + "ad360.vn": "ad360", + "ads.ad4game.com": "ad4game", + "ad4mat.ar": "ad4mat", + "ad4mat.at": "ad4mat", + "ad4mat.be": "ad4mat", + "ad4mat.bg": "ad4mat", + "ad4mat.br": "ad4mat", + "ad4mat.ch": "ad4mat", + "ad4mat.co.uk": "ad4mat", + "ad4mat.cz": "ad4mat", + "ad4mat.de": "ad4mat", + "ad4mat.dk": "ad4mat", + "ad4mat.es": "ad4mat", + "ad4mat.fi": "ad4mat", + "ad4mat.fr": "ad4mat", + "ad4mat.gr": "ad4mat", + "ad4mat.hu": "ad4mat", + "ad4mat.it": "ad4mat", + "ad4mat.mx": "ad4mat", + "ad4mat.net": "ad4mat", + "ad4mat.nl": "ad4mat", + "ad4mat.no": "ad4mat", + "ad4mat.pl": "ad4mat", + "ad4mat.ro": "ad4mat", + "ad4mat.ru": "ad4mat", + "ad4mat.se": "ad4mat", + "ad4mat.tr": "ad4mat", + "ad6.fr": "ad6media", + "ad6media.co.uk": "ad6media", + "ad6media.com": "ad6media", + "ad6media.es": "ad6media", + "ad6media.fr": "ad6media", + "a2dfp.net": "ad_decisive", + "addynamo.net": "ad_dynamo", + "ebis.ne.jp": "ad_ebis", + "adlightning.com": "ad_lightning", + "admagnet.net": "ad_magnet", + "amimg.net": "ad_magnet", + "adspirit.de": "ad_spirit", + "adspirit.net": "ad_spirit", + "adac.de": "adac_de", + "adacado.com": "adacado", + "ozonemedia.com": "adadyn", + "adrtx.net": "adality_gmbh", + "adalliance.io": "adalliance.io", + "adalyser.com": "adalyser.com", + "adaos-ads.net": "adaos", + "adap.tv": "adap.tv", + "smrtlnks.com": "adaptiveblue_smartlinks", + "yieldoptimizer.com": "adara_analytics", + "adnetwork.adasiaholdings.com": "adasia_holdings", + "adbetclickin.pink": "adbetclickin.pink", + "adbetnet.com": "adbetnet.com", + "adblade.com": "adblade.com", + "adbooth.com": "adbooth", + "adbooth.net": "adbooth", + "adbox.lv": "adbox", + "adbrn.com": "adbrain", + "adbrite.com": "adbrite", + "adbull.com": "adbull", + "adbutler.com": "adbutler", + "adc-serv.net": "adc_media", + "adc-srv.net": "adc_media", + "adcash.com": "adcash", + "vuroll.in": "adchakra", + "acs86.com": "adchina", + "csbew.com": "adchina", + "irs09.com": "adchina", + "adcito.com": "adcito", + "adcitomedia.com": "adcito", + "adclear.net": "adclear", + "swift.adclerks.com": "adclerks", + "adclickmedia.com": "adclickmedia", + "adclickzone.go2cloud.org": "adclickzone", + "ad-cloud.jp": "adcloud", + "admarvel.s3.amazonaws.com": "adcolony", + "ads.admarvel.com": "adcolony", + "adrdgt.com": "adconion", + "amgdgt.com": "adconion", + "adcrowd.com": "adcrowd", + "shop2market.com": "adcurve", + "addtocalendar.com": "add_to_calendar", + "dpmsrv.com": "addaptive", + "yagiay.com": "addefend", + "addfreestats.com": "addfreestats", + "addinto.com": "addinto", + "addshoppers.com": "addshoppers", + "shop.pe": "addshoppers", + "addthis.com": "addthis", + "addthiscdn.com": "addthis", + "addthisedge.com": "addthis", + "b2btracking.addvalue.de": "addvalue", + "addyon.com": "addyon", + "adeasy.ru": "adeasy", + "ipredictive.com": "adelphic", + "adengage.com": "adengage", + "adespresso.com": "adespresso", + "adexcite.com": "adexcite", + "adextent.com": "adextent", + "adf.ly": "adf.ly", + "adfalcon.com": "adfalcon", + "adfoc.us": "adfocus", + "js.adforgames.com": "adforgames", + "adform.net": "adform", + "adformdsp.net": "adform", + "seadform.net": "adform", + "adfox.ru": "adfox", + "adwolf.ru": "adfox", + "adfreestyle.pl": "adfreestyle", + "adfront.org": "adfront", + "adfrontiers.com": "adfrontiers", + "adgear.com": "adgear", + "adgrx.com": "adgear", + "adgebra.co.in": "adgebra", + "adgenie.co.uk": "adgenie", + "ad.adgile.com": "adgile", + "ad.antventure.com": "adgile", + "adglare.net": "adglare.net", + "adsafety.net": "adglue", + "smartadcheck.de": "adgoal", + "smartredirect.de": "adgoal", + "adgorithms.com": "adgorithms", + "adgoto.com": "adgoto", + "adguard.com": "adguard", + "adhands.ru": "adhands", + "adhese.be": "adhese", + "adhese.com": "adhese", + "adhese.net": "adhese", + "adhitzads.com": "adhitz", + "adhood.com": "adhood", + "afy11.net": "adify", + "cdn.adikteev.com": "adikteev", + "adimpact.com": "adimpact", + "adinch.com": "adinch", + "adition.com": "adition", + "adjal.com": "adjal", + "cdn.adjs.net": "adjs", + "adjug.com": "adjug", + "adjust.com": "adjust", + "adk2.com": "adk2", + "cdn.adsrvmedia.com": "adk2", + "cdn.cdnrl.com": "adk2", + "adklip.com": "adklip", + "adkengage.com": "adknowledge", + "adknowledge.com": "adknowledge", + "bidsystem.com": "adknowledge", + "blogads.com": "adknowledge", + "cubics.com": "adknowledge", + "yarpp.org": "adknowledge", + "adsearch.adkontekst.pl": "adkontekst", + "netsprint.eu": "adkontekst.pl", + "adlabs.ru": "adlabs", + "clickiocdn.com": "adlabs", + "luxup.ru": "adlabs", + "mixmarket.biz": "adlabs", + "ad-serverparc.nl": "adlantic", + "adimg.net": "adlantis", + "adlantis.jp": "adlantis", + "cdn.adless.io": "adless", + "api.publishers.adlive.io": "adlive_header_bidding", + "adlooxtracking.com": "adloox", + "adx1.com": "admachine", + "adman.gr": "adman", + "adman.in.gr": "adman", + "admanmedia.com": "adman_media", + "admantx.com": "admantx.com", + "admaster.net": "admaster", + "cdnmaster.com": "admaster", + "admaster.com.cn": "admaster.cn", + "admasterapi.com": "admaster.cn", + "admatic.com.tr": "admatic", + "ads5.admatic.com.tr": "admatic", + "cdn2.admatic.com.tr": "admatic", + "lib-3pas.admatrix.jp": "admatrix", + "admaxserver.com": "admax", + "admaxim.com": "admaxim", + "admaya.in": "admaya", + "admedia.com": "admedia", + "adizio.com": "admedo_com", + "admedo.com": "admedo_com", + "admeira.ch": "admeira.ch", + "admeld.com": "admeld", + "admeo.ru": "admeo", + "admaym.com": "admeta", + "atemda.com": "admeta", + "admicro.vn": "admicro", + "vcmedia.vn": "admicro", + "admitad.com": "admitad.com", + "admixer.net": "admixer.net", + "admized.com": "admized", + "admo.tv": "admo.tv", + "a.admob.com": "admob", + "mm.admob.com": "admob", + "mmv.admob.com": "admob", + "p.admob.com": "admob", + "run.admost.com": "admost", + "dmmotion.com": "admotion", + "nspmotion.com": "admotion", + "admulti.com": "admulti", + "adnegah.net": "adnegah", + "adnet.vn": "adnet", + "adnet.biz": "adnet.de", + "adnet.de": "adnet.de", + "adclick.lt": "adnet_media", + "adnet.lt": "adnet_media", + "ad.adnetwork.net": "adnetwork.net", + "adnetworkperformance.com": "adnetworkperformance.com", + "adserver.adnexio.com": "adnexio", + "adnium.com": "adnium.com", + "heias.com": "adnologies", + "smaclick.com": "adnow", + "st-n.ads3-adnow.com": "adnow", + "adnymics.com": "adnymics", + "adobe.com": "adobe_audience_manager", + "demdex.net": "adobe_audience_manager", + "everestjs.net": "adobe_audience_manager", + "everesttech.net": "adobe_audience_manager", + "scene7.com": "adobe_dynamic_media", + "adobedtm.com": "adobe_dynamic_tag_management", + "2o7.net": "adobe_experience_cloud", + "du8783wkf05yr.cloudfront.net": "adobe_experience_cloud", + "hitbox.com": "adobe_experience_cloud", + "imageg.net": "adobe_experience_cloud", + "nedstat.com": "adobe_experience_cloud", + "omtrdc.net": "adobe_experience_cloud", + "sitestat.com": "adobe_experience_cloud", + "adobelogin.com": "adobe_login", + "adobetag.com": "adobe_tagmanager", + "typekit.com": "adobe_typekit", + "typekit.net": "adobe_typekit", + "adocean.pl": "adocean", + "dmtry.com": "adometry", + "adomik.com": "adomik", + "adcde.com": "adon_network", + "addlvr.com": "adon_network", + "adfeedstrk.com": "adon_network", + "adtrgt.com": "adon_network", + "bannertgt.com": "adon_network", + "cptgt.com": "adon_network", + "cpvfeed.com": "adon_network", + "cpvtgt.com": "adon_network", + "mygeek.com": "adon_network", + "popcde.com": "adon_network", + "sdfje.com": "adon_network", + "urtbk.com": "adon_network", + "adonion.com": "adonion", + "t.adonly.com": "adonly", + "adoperator.com": "adoperator", + "adoric.com": "adoric", + "adorika.com": "adorika", + "adorika.net": "adorika", + "adosia.com": "adosia", + "adotmob.com": "adotmob.com", + "adotube.com": "adotube", + "adparlor.com": "adparlor", + "adparlour.com": "adparlor", + "a4p.adpartner.pro": "adpartner", + "adpeepshosted.com": "adpeeps", + "adperfect.com": "adperfect", + "adperium.com": "adperium", + "adpilot.at": "adpilot", + "erne.co": "adpilot", + "adplan-ds.com": "adplan", + "advg.jp": "adplan", + "c.p-advg.com": "adplan", + "adplus.co.id": "adplus", + "adframesrc.com": "adprofy", + "adserve.adpulse.ir": "adpulse", + "ads.adpv.com": "adpv", + "adreactor.com": "adreactor", + "adrecord.com": "adrecord", + "adrecover.com": "adrecover", + "ad.vcm.jp": "adresult", + "adresult.jp": "adresult", + "adriver.ru": "adriver", + "adroll.com": "adroll", + "adrom.net": "adrom", + "txt.eu": "adrom", + "adru.net": "adru.net", + "adrunnr.com": "adrunnr", + "adsame.com": "adsame", + "adsbookie.com": "adsbookie", + "adscale.de": "adscale", + "adscience.nl": "adscience", + "adsco.re": "adsco.re", + "adsensecamp.com": "adsensecamp", + "adserverpub.com": "adserverpub", + "online.adservicemedia.dk": "adservice_media", + "adsfactor.net": "adsfactor", + "ads.doclix.com": "adside", + "adskeeper.co.uk": "adskeeper", + "ssp.adskom.com": "adskom", + "adslot.com": "adslot", + "adsnative.com": "adsnative", + "adsniper.ru": "adsniper.ru", + "adspeed.com": "adspeed", + "adspeed.net": "adspeed", + "o333o.com": "adspyglass", + "adstage-analytics.herokuapp.com": "adstage", + "code.adstanding.com": "adstanding", + "adstars.co.id": "adstars", + "ad-stir.com": "adstir", + "4dsply.com": "adsupply", + "cdn.engine.adsupply.com": "adsupply", + "trklnks.com": "adsupply", + "adswizz.com": "adswizz", + "adtaily.com": "adtaily", + "adtaily.pl": "adtaily", + "adtarget.me": "adtarget.me", + "adtech.de": "adtech", + "adtechus.com": "adtech", + "adtegrity.net": "adtegrity", + "adtpix.com": "adtegrity", + "adtelligence.de": "adtelligence.de", + "adentifi.com": "adtheorent", + "adthink.com": "adthink", + "advertstream.com": "adthink", + "audienceinsights.net": "adthink", + "adtiger.de": "adtiger", + "adtimaserver.vn": "adtima", + "adtng.com": "adtng.com", + "adtoma.com": "adtoma", + "adtomafusion.com": "adtoma", + "adtr02.com": "adtr02.com", + "track.adtraction.com": "adtraction", + "adtraxx.de": "adtraxx", + "adtriba.com": "adtriba.com", + "adtrue.com": "adtrue", + "adtrustmedia.com": "adtrustmedia", + "ad.adtube.ir": "adtube", + "awempire.com": "adult_webmaster_empire", + "dditscdn.com": "adult_webmaster_empire", + "livejasmin.com": "adult_webmaster_empire", + "adultadworld.com": "adultadworld", + "adworldmedia.com": "adultadworld", + "adup-tech.com": "adup-tech.com", + "advaction.ru": "advaction", + "aucourant.info": "advaction", + "schetu.net": "advaction", + "dqfw2hlp4tfww.cloudfront.net": "advalo", + "ahcdn.com": "advanced_hosters", + "pix-cdn.org": "advanced_hosters", + "s3.advarkads.com": "advark", + "adventori.com": "adventori", + "adnext.fr": "adverline", + "adverline.com": "adverline", + "surinter.net": "adverline", + "adversaldisplay.com": "adversal", + "adversalservers.com": "adversal", + "go.adversal.com": "adversal", + "adverserve.net": "adverserve", + "ad.adverteerdirect.nl": "adverteerdirect", + "adverticum.net": "adverticum", + "advertise.com": "advertise.com", + "advertisespace.com": "advertisespace", + "adsdk.com": "advertising.com", + "advertising.com": "advertising.com", + "aol.com": "advertising.com", + "atwola.com": "advertising.com", + "pictela.net": "advertising.com", + "verizonmedia.com": "advertising.com", + "advertlets.com": "advertlets", + "advertserve.com": "advertserve", + "advidi.com": "advidi", + "am10.ru": "advmaker.ru", + "am15.net": "advmaker.ru", + "advolution.de": "advolution", + "adwebster.com": "adwebster", + "ads.adwitserver.com": "adwit", + "adworx.at": "adworx.at", + "adworxs.net": "adworxs.net", + "adxion.com": "adxion", + "adxpansion.com": "adxpansion", + "ads.adxpose.com": "adxpose", + "event.adxpose.com": "adxpose", + "servedby.adxpose.com": "adxpose", + "adxprtz.com": "adxprtz.com", + "adyoulike.com": "adyoulike", + "omnitagjs.com": "adyoulike", + "adzerk.net": "adzerk", + "adzly.com": "adzly", + "aemediatraffic.com": "aemediatraffic", + "hprofits.com": "aemediatraffic", + "amxdt.com": "aerify_media", + "aerisapi.com": "aeris_weather", + "aerisweather.com": "aeris_weather", + "affectv.com": "affectv", + "go.affec.tv": "affectv", + "hybridtheory.com": "affectv", + "track.affiliate-b.com": "affiliate-b", + "affiliate4you.nl": "affiliate4you", + "ads.affbuzzads.com": "affiliatebuzz", + "affiliatefuture.com": "affiliatefuture", + "affiliatelounge.com": "affiliatelounge", + "affiliation-france.com": "affiliation_france", + "affiliator.com": "affiliator", + "affiliaweb.fr": "affiliaweb", + "banner-rotation.com": "affilinet", + "webmasterplan.com": "affilinet", + "affimax.de": "affimax", + "affinity.com": "affinity", + "countby.com": "affinity.by", + "affiz.net": "affiz_cpm", + "pml.afftrack.com": "afftrack", + "afgr2.com": "afgr2.com", + "v2.afilio.com.br": "afilio", + "afsanalytics.com": "afs_analystics", + "ads.aftonbladet.se": "aftonbladet_ads", + "aftv-serving.bid": "aftv-serving.bid", + "agkn.com": "aggregate_knowledge", + "agilone.com": "agilone", + "adview.pl": "agora", + "pingagenow.com": "ahalogy", + "aimediagroup.com": "ai_media_group", + "advombat.ru": "aidata", + "aidata.io": "aidata", + "aim4media.com": "aim4media", + "muscache.com": "airbnb", + "musthird.com": "airbnb", + "airbrake.io": "airbrake", + "airpr.com": "airpr.com", + "ab.airpush.com": "airpush", + "abmr.net": "akamai_technologies", + "akamai.net": "akamai_technologies", + "akamaihd.net": "akamai_technologies", + "akamaized.net": "akamai_technologies", + "akstat.io": "akamai_technologies", + "edgekey.net": "akamai_technologies", + "edgesuite.net": "akamai_technologies", + "imiclk.com": "akamai_technologies", + "akamoihd.net": "akamoihd.net", + "adn-d.sp.gmossp-sp.jp": "akane", + "akanoo.com": "akanoo", + "akavita.com": "akavita", + "ads.albawaba.com": "al_bawaba_advertising", + "serve.albacross.com": "albacross", + "aldi-international.com": "aldi-international.com", + "alenty.com": "alenty", + "alephd.com": "alephd.com", + "alexametrics.com": "alexa_metrics", + "d31qbv1cthcecs.cloudfront.net": "alexa_metrics", + "d5nxst8fruw4z.cloudfront.net": "alexa_metrics", + "alexa.com": "alexa_traffic_rank", + "algolia.com": "algolia.net", + "algolia.net": "algolia.net", + "algovid.com": "algovid.com", + "alibaba.com": "alibaba.com", + "alicdn.com": "alibaba.com", + "alipay.com": "alipay.com", + "websitealive.com": "alivechat", + "allegroimg.com": "allegro.pl", + "allegrostatic.com": "allegro.pl", + "allegrostatic.pl": "allegro.pl", + "ngacm.com": "allegro.pl", + "ngastatic.com": "allegro.pl", + "i.btg360.com.br": "allin", + "allo-pages.fr": "allo-pages.fr", + "allotraffic.com": "allotraffic", + "edge.alluremedia.com.au": "allure_media", + "allyes.com": "allyes", + "inputs.alooma.com": "alooma", + "arena.altitude-arena.com": "altitude_digital", + "amadesa.com": "amadesa", + "amazon.ca": "amazon", + "amazon.co.jp": "amazon", + "amazon.co.uk": "amazon", + "amazon.com": "amazon", + "amazon.de": "amazon", + "amazon.es": "amazon", + "amazon.fr": "amazon", + "amazon.it": "amazon", + "d3io1k5o0zdpqr.cloudfront.net": "amazon", + "amazon-adsystem.com": "amazon_adsystem", + "serving-sys.com": "amazon_adsystem", + "sizmek.com": "amazon_adsystem", + "assoc-amazon.ca": "amazon_associates", + "assoc-amazon.co.uk": "amazon_associates", + "assoc-amazon.com": "amazon_associates", + "assoc-amazon.de": "amazon_associates", + "assoc-amazon.fr": "amazon_associates", + "assoc-amazon.jp": "amazon_associates", + "images-amazon.com": "amazon_cdn", + "media-amazon.com": "amazon_cdn", + "ssl-images-amazon.com": "amazon_cdn", + "cloudfront.net": "amazon_cloudfront", + "axx-eu.amazon-adsystem.com": "amazon_mobile_ads", + "amazonpay.com": "amazon_payments", + "payments-amazon.com": "amazon_payments", + "aiv-cdn.net": "amazon_video", + "amazonaws.com": "amazon_web_services", + "amazonwebservices.com": "amazon_web_services", + "awsstatic.com": "amazon_web_services", + "adnetwork.net.vn": "ambient_digital", + "adnetwork.vn": "ambient_digital", + "ambientplatform.vn": "ambient_digital", + "amgload.net": "amgload.net", + "amoad.com": "amoad", + "ad.amgdgt.com": "amobee", + "ads.amgdgt.com": "amobee", + "amobee.com": "amobee", + "collective-media.net": "amp_platform", + "amplitude.com": "amplitude", + "d24n15hnbwhuhn.cloudfront.net": "amplitude", + "ampproject.org": "ampproject.org", + "anametrix.net": "anametrix", + "ancestrycdn.com": "ancestry_cdn", + "ancoraplatform.com": "ancora", + "anetwork.ir": "anetwork", + "aniview.com": "aniview.com", + "a-ads.com": "anonymousads", + "anormal-tracker.de": "anormal_tracker", + "answerscloud.com": "answers_cloud_service", + "anthill.vn": "ants", + "ants.vn": "ants", + "rt.analytics.anvato.net": "anvato", + "tkx2-prod.anvato.net": "anvato", + "w3.cdn.anvato.net": "anvato", + "player.anyclip.com": "anyclip", + "video-loader.com": "aol_be_on", + "aolcdn.com": "aol_cdn", + "isp.netscape.com": "aol_cdn", + "apa.at": "apa.at", + "apester.com": "apester", + "apicit.net": "apicit.net", + "carrierzone.com": "aplus_analytics", + "appcues.com": "appcues", + "appdynamics.com": "appdynamics", + "de8of677fyt0b.cloudfront.net": "appdynamics", + "eum-appdynamics.com": "appdynamics", + "jscdn.appier.net": "appier", + "applifier.com": "applifier", + "assets.applovin.com": "applovin", + "appmetrx.com": "appmetrx", + "adnxs.com": "appnexus", + "adnxs.net": "appnexus", + "appsflyer.com": "appsflyer", + "adne.tv": "apptv", + "readserver.net": "apptv", + "www.apture.com": "apture", + "arcpublishing.com": "arcpublishing", + "ard.de": "ard.de", + "areyouahuman.com": "are_you_a_human", + "arkoselabs.com": "arkoselabs.com", + "art19.com": "art19", + "banners.advsnx.net": "artimedia", + "artlebedev.ru": "artlebedev.ru", + "ammadv.it": "aruba_media_marketing", + "arubamediamarketing.it": "aruba_media_marketing", + "cya2.net": "arvato_canvas_fp", + "asambeauty.com": "asambeauty.com", + "ask.com": "ask.com", + "aspnetcdn.com": "aspnetcdn", + "cdn.astronomer.io": "astronomer", + "ati-host.net": "at_internet", + "aticdn.net": "at_internet", + "xiti.com": "at_internet", + "atedra.com": "atedra", + "oadts.com": "atg_group", + "as00.estara.com": "atg_optimization", + "atgsvcs.com": "atg_recommendations", + "adbureau.net": "atlas", + "atdmt.com": "atlas", + "atlassbx.com": "atlas", + "track.roiservice.com": "atlas_profitbuilder", + "atl-paas.net": "atlassian.net", + "atlassian.com": "atlassian.net", + "atlassian.net": "atlassian.net", + "d12ramskps3070.cloudfront.net": "atlassian.net", + "d1xfq2052q7thw.cloudfront.net": "atlassian_marketplace", + "marketplace.atlassian.com": "atlassian_marketplace", + "atomz.com": "atomz_search", + "atsfi.de": "atsfi_de", + "cdn.attracta.com": "attracta", + "locayta.com": "attraqt", + "ads.audience2media.com": "audience2media", + "qwobl.net": "audience_ad_network", + "revsci.net": "audience_science", + "wunderloop.net": "audience_science", + "12mlbe.com": "audiencerate", + "audiencesquare.com": "audiencesquare.com", + "auditude.com": "auditude", + "audtd.com": "audtd.com", + "cdn.augur.io": "augur", + "aumago.com": "aumago", + "clicktracks.com": "aurea_clicktracks", + "ausgezeichnet.org": "ausgezeichnet_org", + "advertising.gov.au": "australia.gov", + "auth0.com": "auth0", + "ai.autoid.com": "autoid", + "optimost.com": "autonomy", + "oc-track.autonomycloud.com": "autonomy_campaign", + "track.yieldsoftware.com": "autonomy_campaign", + "api.autopilothq.com": "autopilothq", + "autoscout24.com": "autoscout24.com", + "autoscout24.net": "autoscout24.com", + "avail.net": "avail", + "analytics.avanser.com.au": "avanser", + "avmws.com": "avant_metrics", + "avantlink.com": "avantlink", + "ads.avazu.net": "avazu_network", + "avenseo.com": "avenseo", + "adspdbl.com": "avid_media", + "avocet.io": "avocet", + "aweber.com": "aweber", + "awin.com": "awin", + "awin1.com": "awin", + "perfb.com": "awin", + "ad.globe7.com": "axill", + "azadify.com": "azadify", + "azureedge.net": "azureedge.net", + "b2bcontext.ru": "b2bcontext", + "b2bvideo.ru": "b2bvideo", + "babator.com": "babator.com", + "backbeatmedia.com": "back_beat_media", + "widgets.backtype.com": "backtype_widgets", + "bahn.de": "bahn_de", + "img-bahn.de": "bahn_de", + "baidu.com": "baidu_ads", + "baidustatic.com": "baidu_ads", + "bdimg.com": "baidu_static", + "bdstatic.com": "baidu_static", + "baletingo.com": "baletingo.com", + "bangdom.com": "bangdom.com", + "widgets.bankrate.com": "bankrate", + "bannerconnect.net": "banner_connect", + "bannerflow.com": "bannerflow.com", + "bannerplay.com": "bannerplay", + "cdn.bannersnack.com": "bannersnack", + "dn3y71tq7jf07.cloudfront.net": "barilliance", + "getbarometer.s3.amazonaws.com": "barometer", + "basilic.io": "basilic.io", + "batanga.com": "batanga_network", + "t4ft.de": "batch_media", + "bauernative.com": "bauer_media", + "baur.de": "baur.de", + "baynote.net": "baynote_observer", + "bazaarvoice.com": "bazaarvoice", + "bbci.co.uk": "bbci", + "tracking.bd4travel.com": "bd4travel", + "beopinion.com": "be_opinion", + "bfmio.com": "beachfront", + "beaconads.com": "beacon_ad_network", + "beampulse.com": "beampulse.com", + "beanstalkdata.com": "beanstalk_data", + "bebi.com": "bebi", + "beeketing.com": "beeketing.com", + "beeline.ru": "beeline.ru", + "bidr.io": "beeswax", + "tracker.beezup.com": "beezup", + "begun.ru": "begun", + "behavioralengine.com": "behavioralengine", + "belboon.de": "belboon_gmbh", + "cdn.belco.io": "belco", + "belstat.be": "belstat", + "belstat.com": "belstat", + "belstat.de": "belstat", + "belstat.fr": "belstat", + "belstat.nl": "belstat", + "bemobile.ua": "bemobile.ua", + "tag.benchplatform.com": "bench_platform", + "betterttv.net": "betterttv", + "betweendigital.com": "betweendigital.com", + "intencysrv.com": "betweendigital.com", + "bid.run": "bid.run", + "bidgear.com": "bidgear", + "bidswitch.net": "bidswitch", + "exe.bid": "bidswitch", + "bttrack.com": "bidtellect", + "bidtheatre.com": "bidtheatre", + "bidvertiser.com": "bidvertiser", + "bigmobileads.com": "big_mobile", + "bigcommerce.com": "bigcommerce.com", + "bigmir.net": "bigmir.net", + "bigpoint-payment.com": "bigpoint", + "bigpoint.com": "bigpoint", + "bigpoint.net": "bigpoint", + "bpcdn.net": "bigpoint", + "bpsecure.com": "bigpoint", + "bildstatic.de": "bild", + "ad-cdn.bilgin.pro": "bilgin_pro", + "pixel.bilinmedia.net": "bilin", + "bat.r.msn.com": "bing_ads", + "bing.com": "bing_ads", + "bing.net": "bing_ads", + "virtualearth.net": "bing_maps", + "view.binlayer.com": "binlayer", + "widgets.binotel.com": "binotel", + "esendra.fi": "bisnode", + "bitcoinplus.com": "bitcoin_miner", + "bit.ly": "bitly", + "bitrix.de": "bitrix", + "bitrix.info": "bitrix", + "bitrix.ru": "bitrix", + "bitrix24.com": "bitrix", + "bitrix24.com.br": "bitrix", + "traffic.adxprts.com": "bizcn", + "jssr.jd.com": "blackdragon", + "blau.de": "blau.de", + "bnmla.com": "blink_new_media", + "blismedia.com": "blis", + "blogad.com.tw": "blogad", + "blogbang.com": "blogbang", + "www.blogcatalog.com": "blogcatalog", + "track.blogcounter.de": "blogcounter", + "blogfoster.com": "blogfoster.com", + "bloggerads.net": "bloggerads", + "blogher.com": "blogher", + "blogherads.com": "blogher", + "blogimg.jp": "blogimg.jp", + "blogsmithmedia.com": "blogsmithmedia.com", + "blogblog.com": "blogspot_com", + "blogger.com": "blogspot_com", + "blogspot.com": "blogspot_com", + "brcdn.com": "bloomreach", + "brsrvr.com": "bloomreach", + "brtstats.com": "bloomreach", + "offerpoint.net": "blue_cherry_group", + "blueserving.com": "blue_seed", + "blueconic.net": "blueconic.net", + "bluecore.com": "bluecore", + "triggeredmail.appspot.com": "bluecore", + "bkrtx.com": "bluekai", + "bluekai.com": "bluekai", + "adrevolver.com": "bluelithium", + "bluelithium.com": "bluelithium", + "bmmetrix.com": "bluemetrix", + "japanmetrix.jp": "bluemetrix", + "bluenewsupdate.info": "bluenewsupdate.info", + "bluestreak.com": "bluestreak", + "bluetriangletech.com": "bluetriangle", + "btttag.com": "bluetriangle", + "bodelen.com": "bodelen.com", + "tracking.bol.com": "bol_affiliate_program", + "qb.boldapps.net": "bold", + "secure.apps.shappify.com": "bold", + "boldchat.com": "boldchat", + "boltdns.net": "boltdns.net", + "ml314.com": "bombora", + "bongacams.com": "bongacams.com", + "bonial.com": "bonial", + "bonialconnect.com": "bonial", + "bonialserviceswidget.de": "bonial", + "boo-box.com": "boo-box", + "booking.com": "booking.com", + "bstatic.com": "booking.com", + "boostbox.com.br": "boost_box", + "boostervideo.ru": "booster_video", + "bootstrapcdn.com": "bootstrap", + "borrango.com": "borrango.com", + "scan.botscanner.com": "botscanner", + "boudja.com": "boudja.com", + "bounceexchange.com": "bounce_exchange", + "bouncex.com": "bouncex", + "bouncex.net": "bouncex", + "j.clickdensity.com": "box_uk", + "boxever.com": "boxever", + "brainient.com": "brainient", + "brainsins.com": "brainsins", + "d2xkqxdy6ewr93.cloudfront.net": "brainsins", + "app.link": "branch_metrics", + "branch.io": "branch_metrics", + "brandaffinity.net": "brand_affinity", + "go.cpmadvisors.com": "brand_networks", + "optorb.com": "brand_networks", + "brandmetrics.com": "brandmetrics.com", + "brandreachsys.com": "brandreach", + "rtbidder.net": "brandscreen", + "brandwire.tv": "brandwire.tv", + "branica.com": "branica", + "appboycdn.com": "braze", + "brealtime.com": "brealtime", + "bridgetrack.com": "bridgetrack", + "brightcove.com": "brightcove", + "brightcove.net": "brightcove_player", + "analytics.brightedge.com": "brightedge", + "munchkin.brightfunnel.com": "brightfunnel", + "brightonclick.com": "brightonclick.com", + "btrll.com": "brightroll", + "p.brilig.com": "brilig", + "brillen.de": "brillen.de", + "broadstreetads.com": "broadstreet", + "bm23.com": "bronto", + "brow.si": "brow.si", + "browser-statistik.de": "browser-statistik", + "browser-update.org": "browser_update", + "btncdn.com": "btncdn.com", + "in.bubblestat.com": "bubblestat", + "brighteroption.com": "buddy_media", + "bufferapp.com": "buffer_button", + "bugherd.com": "bugherd.com", + "bugsnag.com": "bugsnag", + "d2wy8f7a9ursnm.cloudfront.net": "bugsnag", + "bulkhentai.com": "bulkhentai.com", + "bumlam.com": "bumlam.com", + "bunchbox.co": "bunchbox", + "bf-ad.net": "burda", + "bf-tools.net": "burda", + "bstatic.de": "burda_digital_systems", + "burstbeacon.com": "burst_media", + "burstnet.com": "burst_media", + "burt.io": "burt", + "d3q6px0y2suh5n.cloudfront.net": "burt", + "rich-agent.s3.amazonaws.com": "burt", + "richmetrics.com": "burt", + "stats.businessol.com": "businessonline_analytics", + "buysellads.com": "buysellads", + "servedby-buysellads.com": "buysellads", + "buzzadexchange.com": "buzzadexchange.com", + "buzzador.com": "buzzador", + "buzzfed.com": "buzzfeed", + "bwbx.io": "bwbx.io", + "bypass.jp": "bypass", + "c1exchange.com": "c1_exchange", + "c3metrics.com": "c3_metrics", + "c3tag.com": "c3_metrics", + "c8.net.ua": "c8_network", + "cackle.me": "cackle.me", + "d1cerpgff739r9.cloudfront.net": "cadreon", + "d1qpxk1wfeh8v1.cloudfront.net": "cadreon", + "callpage.io": "call_page", + "callbackhunter.com": "callbackhunter", + "callmeasurement.com": "callbox", + "callibri.ru": "callibri", + "callrail.com": "callrail", + "calltracking.ru": "calltracking", + "caltat.com": "caltat.com", + "cam-content.com": "cam-content.com", + "camakaroda.com": "camakaroda.com", + "s.edkay.com": "campus_explorer", + "canddi.com": "canddi", + "canvas.net": "canvas", + "canvasnetwork.com": "canvas", + "du11hjcvx0uqb.cloudfront.net": "canvas", + "kdata.fr": "capitaldata", + "captora.com": "captora", + "edge.capturemedia.network": "capture_media", + "cdn.capturly.com": "capturly", + "route.carambo.la": "carambola", + "carbonads.com": "carbonads", + "carbonads.net": "carbonads", + "fusionads.net": "carbonads", + "cardinalcommerce.com": "cardinal", + "cardlytics.com": "cardlytics", + "cdn.carrotquest.io": "carrot_quest", + "api.cartstack.com": "cartstack", + "caspion.com": "caspion", + "t.castle.io": "castle", + "3gl.net": "catchpoint", + "cbox.ws": "cbox", + "adlog.com.com": "cbs_interactive", + "cbsinteractive.com": "cbs_interactive", + "dw.com.com": "cbs_interactive", + "ccmbg.com": "ccm_benchmark", + "admission.net": "cdk_digital_marketing", + "cdn-net.com": "cdn-net.com", + "cdn13.com": "cdn13.com", + "cdn77.com": "cdn77", + "cdn77.org": "cdn77", + "cdnetworks.com": "cdnetworks.net", + "cdnetworks.net": "cdnetworks.net", + "cdnnetwok.xyz": "cdnnetwok_xyz", + "cdnondemand.org": "cdnondemand.org", + "cdnsure.com": "cdnsure.com", + "cdnvideo.com": "cdnvideo.com", + "cdnwidget.com": "cdnwidget.com", + "cedexis-radar.net": "cedexis_radar", + "cedexis-test.com": "cedexis_radar", + "cedexis.com": "cedexis_radar", + "cedexis.fastlylb.net": "cedexis_radar", + "cedexis.net": "cedexis_radar", + "celebrus.com": "celebrus", + "celtra.com": "celtra", + "cendyn.adtrack.calls.net": "cendyn", + "centraltag.com": "centraltag", + "brand-server.com": "centro", + "speed-trap.nl": "cerberus_speed-trap", + "link.ixs1.net": "certainsource", + "hits.e.cl": "certifica_metric", + "certona.net": "certona", + "res-x.com": "certona", + "gsn.chameleon.ad": "chameleon", + "chango.ca": "chango", + "chango.com": "chango", + "channelintelligence.com": "channel_intelligence", + "cptrack.de": "channel_pilot_solutions", + "channeladvisor.com": "channeladvisor", + "searchmarketing.com": "channeladvisor", + "channelfinder.net": "channelfinder", + "chaordicsystems.com": "chaordic", + "chartbeat.com": "chartbeat", + "chartbeat.net": "chartbeat", + "chaser.ru": "chaser", + "cloud.chatbeacon.io": "chat_beacon", + "chatango.com": "chatango", + "call.chatra.io": "chatra", + "chaturbate.com": "chaturbate.com", + "chatwing.com": "chatwing", + "checkmystats.com.au": "checkmystats", + "chefkoch-cdn.de": "chefkoch_de", + "chefkoch.de": "chefkoch_de", + "tracker.chinmedia.vn": "chin_media", + "chinesean.com": "chinesean", + "chitika.net": "chitika", + "choicestream.com": "choicestream", + "api.getchute.com": "chute", + "media.chute.io": "chute", + "iqcontentplatform.de": "circit", + "data.circulate.com": "circulate", + "p.cityspark.com": "city_spark", + "cityads.ru": "cityads", + "gameleads.ru": "cityads", + "ciuvo.com": "ciuvo.com", + "widget.civey.com": "civey_widgets", + "civicscience.com": "civicscience.com", + "ciweb.ciwebgroup.com": "ciwebgroup", + "clcknads.pro": "clcknads.pro", + "pulseradius.com": "clear_pier", + "clearbit.com": "clearbit.com", + "clearsale.com.br": "clearsale", + "tag.clrstm.com": "clearstream.tv", + "api.clerk.io": "clerk.io", + "cleverpush.com": "clever_push", + "wzrkt.com": "clever_tap", + "cleversite.ru": "cleversite", + "script.click360.io": "click360", + "clickandchat.com": "click_and_chat", + "software.clickback.com": "click_back", + "hit.clickaider.com": "clickaider", + "clickbank.net": "clickbank", + "cbproads.com": "clickbank_proads", + "adtoll.com": "clickbooth", + "clickbooth.com": "clickbooth", + "clickboothlnk.com": "clickbooth", + "clickcease.com": "clickcease", + "clickcertain.com": "clickcertain", + "remarketstats.com": "clickcertain", + "clickdesk.com": "clickdesk", + "analytics.clickdimensions.com": "clickdimensions", + "clickequations.net": "clickequations", + "clickexperts.net": "clickexperts", + "doublemax.net": "clickforce", + "clickinc.com": "clickinc", + "clickintext.net": "clickintext", + "clickky.biz": "clickky", + "9nl.be": "clickmeter", + "9nl.com": "clickmeter", + "9nl.eu": "clickmeter", + "9nl.it": "clickmeter", + "9nl.me": "clickmeter", + "clickmeter.com": "clickmeter", + "clickonometrics.pl": "clickonometrics", + "clickpoint.com": "clickpoint", + "clickpoint.it": "clickpoint", + "clickprotector.com": "clickprotector", + "clickreport.com": "clickreport", + "doogleonduty.com": "clickreport", + "ctn.go2cloud.org": "clicks_thru_networks", + "clicksor.com": "clicksor", + "hatid.com": "clicksor", + "lzjl.com": "clicksor", + "myroitracking.com": "clicksor", + "clicktale.com": "clicktale", + "clicktale.net": "clicktale", + "clicktale.pantherssl.com": "clicktale", + "clicktalecdn.sslcs.cdngc.net": "clicktale", + "clicktripz.com": "clicktripz", + "clickwinks.com": "clickwinks", + "getclicky.com": "clicky", + "staticstuff.net": "clicky", + "clickyab.com": "clickyab", + "clicmanager.fr": "clicmanager", + "eplayer.clipsyndicate.com": "clip_syndicate", + "www.is1.clixgalore.com": "clixgalore", + "clixmetrix.com": "clixmetrix", + "clixsense.com": "clixsense", + "cloud-media.fr": "cloud-media.fr", + "cloudflare.com": "cloudflare", + "cloudflare.net": "cloudflare", + "cloudimg.io": "cloudimage.io", + "cloudinary.com": "cloudinary", + "clovenetwork.com": "clove_network", + "clustrmaps.com": "clustrmaps", + "cnbc.com": "cnbc", + "cnetcontent.com": "cnetcontent.com", + "cnstats.ru": "cnstats", + "cnzz.com": "cnzz.com", + "umeng.com": "cnzz.com", + "acc-hd.de": "coadvertise", + "client.cobrowser.net": "cobrowser", + "codeonclick.com": "codeonclick.com", + "cogocast.net": "cogocast", + "coin-have.com": "coin_have", + "appsha1.cointraffic.io": "coin_traffic", + "authedmine.com": "coinhive", + "coin-hive.com": "coinhive", + "coinhive.com": "coinhive", + "coinurl.com": "coinurl", + "coll1onf.com": "coll1onf.com", + "coll2onf.com": "coll2onf.com", + "service.collarity.com": "collarity", + "static.clmbtech.com": "columbia_online", + "combotag.com": "combotag", + "pdk.theplatform.com": "comcast_technology_solutions", + "comm100.cn": "comm100", + "comm100.com": "comm100", + "cdn-cs.com": "commerce_sciences", + "cdn.mercent.com": "commercehub", + "link.mercent.com": "commercehub", + "commercialvalue.org": "commercialvalue.org", + "afcyhf.com": "commission_junction", + "anrdoezrs.net": "commission_junction", + "apmebf.com": "commission_junction", + "awltovhc.com": "commission_junction", + "emjcd.com": "commission_junction", + "ftjcfx.com": "commission_junction", + "lduhtrp.net": "commission_junction", + "qksz.net": "commission_junction", + "tkqlhce.com": "commission_junction", + "tqlkg.com": "commission_junction", + "yceml.net": "commission_junction", + "communicatorcorp.com": "communicator_corp", + "wowanalytics.co.uk": "communigator", + "c-col.com": "competexl", + "c.compete.com": "competexl", + "complex.com": "complex_media_network", + "complexmedianetwork.com": "complex_media_network", + "comprigo.com": "comprigo", + "comscore.com": "comscore", + "zqtk.net": "comscore", + "conative.de": "conative.de", + "condenast.com": "condenastdigital.com", + "conduit-banners.com": "conduit", + "conduit-data.com": "conduit", + "conduit.com": "conduit", + "confirmit.com": "confirmit", + "congstar.de": "congstar.de", + "connatix.com": "connatix.com", + "connected-by.connectad.io": "connectad", + "cdn.connecto.io": "connecto", + "connexity.net": "connexity", + "cxt.ms": "connexity", + "connextra.com": "connextra", + "rs6.net": "constant_contact", + "serverbid.com": "consumable", + "contactatonce.com": "contact_at_once", + "adrolays.de": "contact_impact", + "c-i.as": "contact_impact", + "df-srv.de": "contact_impact", + "d1uwd25yvxu96k.cloudfront.net": "contactme", + "static.contactme.com": "contactme", + "contaxe.com": "contaxe", + "content.ad": "content.ad", + "ingestion.contentinsights.com": "content_insights", + "contentexchange.me": "contentexchange.me", + "ctfassets.net": "contentful_gmbh", + "contentpass.de": "contentpass", + "contentpass.net": "contentpass", + "contentsquare.net": "contentsquare.net", + "d1aug3dv5magti.cloudfront.net": "contentwrx", + "d39se0h2uvfakd.cloudfront.net": "contentwrx", + "c-on-text.com": "context", + "intext.contextad.pl": "context.ad", + "continum.net": "continum_net", + "s2.contribusourcesyndication.com": "contribusource", + "hits.convergetrack.com": "convergetrack", + "fastclick.net": "conversant", + "mediaplex.com": "conversant", + "mplxtms.com": "conversant", + "cm-commerce.com": "conversio", + "media.conversio.com": "conversio", + "c.conversionlogic.net": "conversion_logic", + "conversionruler.com": "conversionruler", + "conversionsbox.com": "conversions_box", + "conversionsondemand.com": "conversions_on_demand", + "ant.conversive.nl": "conversive", + "convertexperiments.com": "convert", + "d3sjgucddk68ji.cloudfront.net": "convertfox", + "convertro.com": "convertro", + "d1ivexoxmp59q7.cloudfront.net": "convertro", + "conviva.com": "conviva", + "cookieconsent.silktide.com": "cookie_consent", + "cookie-script.com": "cookie_script", + "cookiebot.com": "cookiebot", + "cookieq.com": "cookieq", + "lite.piclens.com": "cooliris", + "copacet.com": "copacet", + "raasnet.com": "coreaudience", + "coremotives.com": "coremotives", + "coull.com": "coull", + "cpmrocket.com": "cpm_rocket", + "cpmprofit.com": "cpmprofit", + "cpmstar.com": "cpmstar", + "captifymedia.com": "cpx.to", + "cpx.to": "cpx.to", + "cqcounter.com": "cq_counter", + "cqq5id8n.com": "cqq5id8n.com", + "cquotient.com": "cquotient.com", + "craftkeys.com": "craftkeys", + "ads.crakmedia.com": "crakmedia_network", + "craktraffic.com": "crakmedia_network", + "crankyads.com": "crankyads", + "cetrk.com": "crazy_egg", + "crazyegg.com": "crazy_egg", + "dnn506yrbagrg.cloudfront.net": "crazy_egg", + "creafi-online-media.com": "creafi", + "createjs.com": "createjs", + "creativecommons.org": "creative_commons", + "brandwatch.com": "crimsonhexagon_com", + "crimsonhexagon.com": "crimsonhexagon_com", + "hexagon-analytics.com": "crimsonhexagon_com", + "ctnsnet.com": "crimtan", + "crisp.chat": "crisp", + "crisp.im": "crisp", + "criteo.com": "criteo", + "criteo.net": "criteo", + "p.crm4d.com": "crm4d", + "crossengage.io": "crossengage", + "crosspixel.net": "crosspixel", + "crsspxl.com": "crosspixel", + "crosssell.info": "crosssell.info", + "crossss.com": "crossss", + "widget.crowdignite.com": "crowd_ignite", + "static.crowdscience.com": "crowd_science", + "ss.crowdprocess.com": "crowdprocess", + "our.glossip.nl": "crowdynews", + "widget.breakingburner.com": "crowdynews", + "widget.crowdynews.com": "crowdynews", + "searchg2.crownpeak.net": "crownpeak", + "snippet.omm.crownpeak.com": "crownpeak", + "cryptoloot.pro": "cryptoloot_miner", + "ctnetwork.hu": "ctnetwork", + "adzhub.com": "ctrlshift", + "data.withcubed.com": "cubed", + "cuelinks.com": "cuelinks", + "cdn.cupinteractive.com": "cup_interactive", + "curse.com": "curse.com", + "cursecdn.com": "cursecdn.com", + "assets.customer.io": "customer.io", + "widget.customerly.io": "customerly", + "cxense.com": "cxense", + "cxo.name": "cxo.name", + "cyberwing.co.jp": "cyber_wing", + "cybersource.com": "cybersource", + "cygnus.com": "cygnus", + "da-ads.com": "da-ads.com", + "dailymail.co.uk": "dailymail.co.uk", + "dailymotion.com": "dailymotion", + "dailymotionbus.com": "dailymotion", + "dm-event.net": "dailymotion", + "dmcdn.net": "dailymotion", + "dmxleo.com": "dailymotion_advertising", + "ds1.nl": "daisycon", + "dantrack.net": "dantrack.net", + "dmclick.cn": "darwin_marketing", + "tags.dashboardad.net": "dashboard_ad", + "datacaciques.com": "datacaciques.com", + "datacoral.com": "datacoral", + "abandonaid.com": "datacrushers", + "datacrushers.com": "datacrushers", + "datadome.co": "datadome", + "optimahub.com": "datalicious_datacollector", + "supert.ag": "datalicious_supertag", + "inextaction.net": "datalogix", + "nexac.com": "datalogix", + "datamind.ru": "datamind.ru", + "datatables.net": "datatables", + "adunits.datawrkz.com": "datawrkz", + "dataxpand.script.ag": "dataxpand", + "tc.dataxpand.com": "dataxpand", + "w55c.net": "dataxu", + "datds.net": "datds.net", + "pro-market.net": "datonics", + "displaymarketplace.com": "datran", + "davebestdeals.com": "davebestdeals.com", + "dawandastatic.com": "dawandastatic.com", + "dc-storm.com": "dc_stormiq", + "h4k5.com": "dc_stormiq", + "stormcontainertag.com": "dc_stormiq", + "stormiq.com": "dc_stormiq", + "dcbap.com": "dcbap.com", + "dcmn.com": "dcmn.com", + "statslogger.rocket.persgroep.cloud": "de_persgroep", + "deadlinefunnel.com": "deadline_funnel", + "cc2.dealer.com": "dealer.com", + "d9lq0o81skkdj.cloudfront.net": "dealer.com", + "esm1.net": "dealer.com", + "static.dealer.com": "dealer.com", + "decibelinsight.net": "decibel_insight", + "ads.dedicatedmedia.com": "dedicated_media", + "api.deep.bi": "deep.bi", + "deepintent.com": "deepintent.com", + "defpush.com": "defpush.com", + "deichmann.com": "deichmann.com", + "vxml4.delacon.com.au": "delacon", + "tracking.percentmobile.com": "delivr", + "adaction.se": "delta_projects", + "de17a.com": "delta_projects", + "deluxe.script.ag": "deluxe", + "delvenetworks.com": "delve_networks", + "company-target.com": "demandbase", + "demandbase.com": "demandbase", + "dmd53.com": "demandmedia", + "dmtracker.com": "demandmedia", + "deqwas.net": "deqwas", + "devatics.com": "devatics", + "developermedia.com": "developer_media", + "dapxl.com": "deviantart.net", + "deviantart.net": "deviantart.net", + "my.blueadvertise.com": "dex_platform", + "dgm-au.com": "dgm", + "s2d6.com": "dgm", + "d31y97ze264gaa.cloudfront.net": "dialogtech", + "d3von6il1wr7wo.cloudfront.net": "dianomi", + "dianomi.com": "dianomi", + "dianomioffers.co.uk": "dianomi", + "tag.didit.com": "didit_blizzard", + "track.did-it.com": "didit_maestro", + "privacy-center.org": "didomi", + "digg.com": "digg_widget", + "digicert.com": "digicert_trust_seal", + "digidip.net": "digidip", + "digiglitzmarketing.go2cloud.org": "digiglitz", + "wtp101.com": "digilant", + "digioh.com": "digioh", + "lightboxcdn.com": "digioh", + "digitalgov.gov": "digital.gov", + "cookiereports.com": "digital_control_room", + "adtag.cc": "digital_nomads", + "adready.com": "digital_remedy", + "adreadytractions.com": "digital_remedy", + "cpxinteractive.com": "digital_remedy", + "directtrack.com": "digital_river", + "onenetworkdirect.net": "digital_river", + "track.digitalriver.com": "digital_river", + "dwin1.com": "digital_window", + "digiteka.net": "digiteka", + "ultimedia.com": "digiteka", + "digitru.st": "digitrust", + "widget.dihitt.com.br": "dihitt_badge", + "dimml.io": "dimml", + "keywordsconnect.com": "direct_keyword_link", + "directadvert.ru": "directadvert", + "directrev.com": "directrev", + "discordapp.com": "discord", + "d81mfvml8p5ml.cloudfront.net": "display_block", + "disqus.com": "disqus", + "disquscdn.com": "disqus", + "disqusads.com": "disqus_ads", + "distiltag.com": "distil_tag", + "districtm.ca": "districtm.io", + "districtm.io": "districtm.io", + "jsrdn.com": "distroscale", + "div.show": "div.show", + "stats.vertriebsassistent.de": "diva", + "tag.divvit.com": "divvit", + "d-msquared.com": "dm2", + "and.co.uk": "dmg_media", + "dmm.co.jp": "dmm", + "ctret.de": "dmwd", + "toolbar.dockvine.com": "dockvine", + "awecr.com": "docler", + "fwbntw.com": "docler", + "s.dogannet.tv": "dogannet", + "www.domodomain.com": "domodomain", + "donation-tools.org": "donationtools", + "doofinder.com": "doofinder.com", + "embed.doorbell.io": "doorbell.io", + "dotandad.com": "dotandmedia", + "trackedlink.net": "dotmailer", + "dotmetrics.net": "dotmetrics.net", + "dotomi.com": "dotomi", + "dtmc.com": "dotomi", + "dtmpub.com": "dotomi", + "double.net": "double.net", + "2mdn.net": "doubleclick", + "doubleclick.net": "doubleclick", + "invitemedia.com": "doubleclick", + "doublepimp.com": "doublepimp", + "doublepimpssl.com": "doublepimp", + "redcourtside.com": "doublepimp", + "xeontopa.com": "doublepimp", + "zerezas.com": "doublepimp", + "doubleverify.com": "doubleverify", + "wrating.com": "dratio", + "adsymptotic.com": "drawbridge", + "dreamlab.pl": "dreamlab.pl", + "drift.com": "drift", + "js.driftt.com": "drift", + "getdrip.com": "drip", + "dropbox.com": "dropbox.com", + "dropboxstatic.com": "dropbox.com", + "z5x.net": "dsnr_media_group", + "dsp-rambler.ru": "dsp_rambler", + "m6d.com": "dstillery", + "media6degrees.com": "dstillery", + "dtscout.com": "dtscout.com", + "dd-cdn.multiscreensite.com": "dudamobile", + "px.multiscreensite.com": "dudamobile", + "cdn-0.d41.co": "dun_and_bradstreet", + "cn01.dwstat.cn": "dwstat.cn", + "dynad.net": "dynad", + "dyntrk.com": "dynadmic", + "dyntracker.de": "dynamic_1001_gmbh", + "media01.eu": "dynamic_1001_gmbh", + "content.dl-rms.com": "dynamic_logic", + "dlqm.net": "dynamic_logic", + "questionmarket.com": "dynamic_logic", + "dynamicyield.com": "dynamic_yield", + "beacons.hottraffic.nl": "dynata", + "dynatrace.com": "dynatrace.com", + "dyncdn.me": "dyncdn.me", + "e-planning.net": "e-planning", + "eadv.it": "eadv", + "eanalyzer.de": "eanalyzer.de", + "early-birds.fr": "early_birds", + "cdn.earnify.com": "earnify", + "earnify.com": "earnify_tracker", + "easyads.bg": "easyads", + "easylist.club": "easylist_club", + "classistatic.de": "ebay", + "ebay-us.com": "ebay", + "ebay.com": "ebay", + "ebay.de": "ebay", + "ebayclassifiedsgroup.com": "ebay", + "ebaycommercenetwork.com": "ebay", + "ebaydesc.com": "ebay", + "ebayimg.com": "ebay", + "ebayrtm.com": "ebay", + "ebaystatic.com": "ebay", + "ad.about.co.kr": "ebay_korea", + "adcheck.about.co.kr": "ebay_korea", + "adn.ebay.com": "ebay_partner_network", + "beead.co.uk": "ebuzzing", + "beead.fr": "ebuzzing", + "beead.net": "ebuzzing", + "ebuzzing.com": "ebuzzing", + "ebz.io": "ebuzzing", + "echoenabled.com": "echo", + "eclick.vn": "eclick", + "econda-monitor.de": "econda", + "eco-tag.jp": "ecotag", + "ecustomeropinions.com": "edigitalresearch", + "effectivemeasure.net": "effective_measure", + "effiliation.com": "effiliation", + "egain.net": "egain", + "cloud-emea.analytics-egain.com": "egain_analytics", + "ehi-siegel.de": "ehi-siegel_de", + "ekmpinpoint.com": "ekmpinpoint", + "ekomi.de": "ekomi", + "elasticad.net": "elastic_ad", + "elasticbeanstalk.com": "elastic_beanstalk", + "elicitapp.com": "elicit", + "eloqua.com": "eloqua", + "en25.com": "eloqua", + "eluxer.net": "eluxer_net", + "tracker.emailaptitude.com": "email_aptitude", + "tag.email-attitude.com": "email_attitude", + "app.emarketeer.com": "emarketeer", + "embed.ly": "embed.ly", + "embedly.com": "embed.ly", + "emediate.dk": "emediate", + "emediate.eu": "emediate", + "emediate.se": "emediate", + "emetriq.de": "emetriq", + "e2ma.net": "emma", + "adinsight.co.kr": "emnet", + "colbenson.es": "empathy", + "emsmobile.de": "emsmobile.de", + "sitecompass.com": "encore_metrics", + "enectoanalytics.com": "enecto_analytics", + "trk.enecto.com": "enecto_analytics", + "track.engagesciences.com": "engage_sciences", + "widget.engageya.com": "engageya_widget", + "engagio.com": "engagio", + "engineseeker.com": "engineseeker", + "enquisite.com": "enquisite", + "adtlgc.com": "enreach", + "ats.tumri.net": "ensemble", + "ensighten.com": "ensighten", + "envolve.com": "envolve", + "cdn.callbackkiller.com": "envybox", + "email-reflex.com": "eperflex", + "epicgameads.com": "epic_game_ads", + "trafficmp.com": "epic_marketplace", + "adshost1.com": "epom", + "adshost2.com": "epom", + "epom.com": "epom", + "epoq.de": "epoq", + "banzaiadv.it": "eprice", + "eproof.com": "eproof", + "equitystory.com": "eqs_group", + "eqads.com": "eqworks", + "ero-advertising.com": "eroadvertising", + "eroadvertising.com": "eroadvertising", + "d15qhc0lu1ghnk.cloudfront.net": "errorception", + "errorception.com": "errorception", + "eshopcomp.com": "eshopcomp.com", + "espncdn.com": "espn_cdn", + "esprit.de": "esprit.de", + "cybermonitor.com": "estat", + "estat.com": "estat", + "teste-s3-maycon.s3.amazonaws.com": "etag", + "etahub.com": "etahub.com", + "etargetnet.com": "etarget", + "ethn.io": "ethnio", + "pages.etology.com": "etology", + "sa.etp-prod.com": "etp", + "etracker.com": "etracker", + "etracker.de": "etracker", + "sedotracker.com": "etracker", + "etrigue.com": "etrigue", + "etsystatic.com": "etsystatic", + "eulerian.net": "eulerian", + "eultech.fnac.com": "eulerian", + "ew3.io": "eulerian", + "euroads.dk": "euroads", + "euroads.fi": "euroads", + "euroads.no": "euroads", + "newpromo.europacash.com": "europecash", + "tracker.euroweb.net": "euroweb_counter", + "apptegic.com": "evergage.com", + "evergage.com": "evergage.com", + "listener.everstring.com": "everstring", + "waterfrontmedia.com": "everyday_health", + "betrad.com": "evidon", + "evidon.com": "evidon", + "evisitanalyst.com": "evisit_analyst", + "evisitcs.com": "evisit_analyst", + "websiteperform.com": "evisit_analyst", + "ads.exactdrive.com": "exact_drive", + "exactag.com": "exactag", + "exelator.com": "exelate", + "dynamicoxygen.com": "exitjunction", + "exitjunction.com": "exitjunction", + "exdynsrv.com": "exoclick", + "exoclick.com": "exoclick", + "exosrv.com": "exoclick", + "exoticads.com": "exoticads.com", + "expedia.com": "expedia", + "trvl-px.com": "expedia", + "eccmp.com": "experian", + "audienceiq.com": "experian_marketing_services", + "techlightenment.com": "experian_marketing_services", + "expo-max.com": "expo-max", + "server.exposebox.com": "expose_box", + "sf.exposebox.com": "expose_box_widgets", + "express.co.uk": "express.co.uk", + "d1lp05q4sghme9.cloudfront.net": "expressvpn", + "extreme-dm.com": "extreme_tracker", + "eyenewton.ru": "eye_newton", + "eyeota.net": "eyeota", + "eyereturn.com": "eyereturnmarketing", + "eyeviewads.com": "eyeview", + "ezakus.net": "ezakus", + "f11-ads.com": "f11-ads.com", + "facebook.com": "facebook", + "facebook.net": "facebook", + "fbcdn.net": "facebook_cdn", + "fbsbx.com": "facebook_cdn", + "graph.facebook.com": "facebook_audience", + "facetz.net": "facetz.dca", + "adsfac.eu": "facilitate_digital", + "adsfac.net": "facilitate_digital", + "adsfac.sg": "facilitate_digital", + "adsfac.us": "facilitate_digital", + "faktor.io": "faktor.io", + "thefancy.com": "fancy_widget", + "d1q7pknmpq2wkm.cloudfront.net": "fanplayr", + "fap.to": "fap.to", + "fastly-insights.com": "fastly_insights", + "fastly.net": "fastlylb.net", + "fastlylb.net": "fastlylb.net", + "fastpic.ru": "fastpic.ru", + "fmpub.net": "federated_media", + "fby.s3.amazonaws.com": "feedbackify", + "feedbackify.com": "feedbackify", + "feedburner.com": "feedburner.com", + "feedify.de": "feedify", + "feedjit.com": "feedjit", + "log.feedjit.com": "feedjit", + "tracking.feedperfect.com": "feedperfect", + "feedsportal.com": "feedsportal", + "feefo.com": "feefo", + "fidelity-media.com": "fidelity_media", + "fiksu.com": "fiksu", + "filamentapp.s3.amazonaws.com": "filament.io", + "fileserve.xyz": "fileserve", + "tools.financeads.net": "financeads", + "tracker.financialcontent.com": "financial_content", + "findizer.fr": "findizer.fr", + "findologic.com": "findologic.com", + "firebaseio.com": "firebaseio.com", + "firstimpression.io": "first_impression", + "fitanalytics.com": "fit_analytics", + "fivetran.com": "fivetran", + "flagads.net": "flag_ads", + "flagcounter.com": "flag_counter", + "flashtalking.com": "flashtalking", + "flattr.com": "flattr_button", + "flexlinks.com": "flexoffers", + "linkoffers.net": "flexoffers", + "flickr.com": "flickr_badge", + "staticflickr.com": "flickr_badge", + "lflipboard.com": "flipboard", + "flite.com": "flite", + "flixcdn.com": "flixcdn.com", + "flix360.com": "flixmedia", + "flixcar.com": "flixmedia", + "flocktory.com": "flocktory.com", + "flowplayer.org": "flowplayer", + "adingo.jp": "fluct", + "clicken.us": "fluent", + "strcst.net": "fluid", + "fluidads.co": "fluidads", + "fluidsurveys.com": "fluidsurveys", + "cdn.flurry.com": "flurry", + "data.flurry.com": "flurry", + "flx1.com": "flxone", + "flxpxl.com": "flxone", + "api.flyertown.ca": "flyertown", + "adservinghost.com": "fmadserving", + "adservinginternational.com": "fmadserving", + "special.matchtv.ru": "fonbet", + "kavijaseuranta.fi": "fonecta", + "fontawesome.com": "fontawesome_com", + "foodieblogroll.com": "foodie_blogroll", + "footprintlive.com": "footprint", + "footprintdns.com": "footprintdns.com", + "forcetrac.com": "forcetrac", + "fqsecure.com": "forensiq", + "fqtag.com": "forensiq", + "securepaths.com": "forensiq", + "4seeresults.com": "foresee", + "foresee.com": "foresee", + "cdn-static.formisimo.com": "formisimo", + "forter.com": "forter", + "fortlachanhecksof.info": "fortlachanhecksof.info", + "platform.foursquare.com": "foursquare_widget", + "fout.jp": "fout.jp", + "fimserve.com": "fox_audience_network", + "fncstatic.com": "foxnews_static", + "cdn.foxpush.net": "foxpush", + "foxpush.com": "foxpush", + "foxydeal.com": "foxydeal_com", + "yabidos.com": "fraudlogix", + "besucherstatistiken.com": "free_counter", + "compteurdevisite.com": "free_counter", + "contadorvisitasgratis.com": "free_counter", + "contatoreaccessi.com": "free_counter", + "freecounterstat.com": "free_counter", + "statcounterfree.com": "free_counter", + "webcontadores.com": "free_counter", + "fastonlineusers.com": "free_online_users", + "fastwebcounter.com": "free_online_users", + "freeonlineusers.com": "free_online_users", + "atoomic.com": "free_pagerank", + "free-pagerank.com": "free_pagerank", + "freedom.com": "freedom_mortgage", + "freegeoip.net": "freegeoip_net", + "freenet.de": "freenet_de", + "freent.de": "freenet_de", + "fwmrm.net": "freewheel", + "heimdall.fresh8.co": "fresh8", + "d36mpcpuzc4ztk.cloudfront.net": "freshdesk", + "freshdesk.com": "freshdesk", + "freshplum.com": "freshplum", + "friendbuy.com": "friendbuy", + "friendfeed.com": "friendfeed", + "adultfriendfinder.com": "friendfinder_network", + "amigos.com": "friendfinder_network", + "board-books.com": "friendfinder_network", + "cams.com": "friendfinder_network", + "facebookofsex.com": "friendfinder_network", + "getiton.com": "friendfinder_network", + "nostringsattached.com": "friendfinder_network", + "pop6.com": "friendfinder_network", + "streamray.com": "friendfinder_network", + "inpref.com": "frosmo_optimizer", + "inpref.s3-external-3.amazonaws.com": "frosmo_optimizer", + "inpref.s3.amazonaws.com": "frosmo_optimizer", + "adflan.com": "fruitflan", + "fruitflan.com": "fruitflan", + "fstrk.net": "fstrk.net", + "cookie.fuel451.com": "fuelx", + "fullstory.com": "fullstory", + "track.funnelytics.io": "funnelytics", + "angsrvr.com": "fyber", + "fyber.com": "fyber", + "game-advertising-online.com": "game_advertising_online", + "gamedistribution.com": "gamedistribution.com", + "gamerdna.com": "gamerdna", + "gannett-cdn.com": "gannett", + "gaug.es": "gaug.es", + "gpm-digital.com": "gazprom-media_digital", + "js.gb-world.net": "gb-world", + "gdeslon.ru": "gdeslon", + "gdmdigital.com": "gdm_digital", + "gntm.geeen.co.jp": "geeen", + "lpomax.net": "geeen", + "gemius.pl": "gemius", + "generaltracking.de": "generaltracking_de", + "genesismedia.com": "genesis", + "gssprt.jp": "geniee", + "rsvpgenius.com": "genius", + "genoo.com": "genoo", + "js.geoads.com": "geoads", + "geolify.com": "geolify", + "geoplugin.net": "geoplugin", + "geotrust.com": "geotrust", + "geovisite.com": "geovisite", + "gestionpub.com": "gestionpub", + "app.getresponse.com": "get_response", + "getsitecontrol.com": "get_site_control", + "getconversion.net": "getconversion", + "widgets.getglue.com": "getglue", + "adhigh.net": "getintent", + "static.getkudos.me": "getkudos", + "yottos.com": "getmyad", + "gsfn.us": "getsatisfaction", + "gettyimages.com": "gettyimages", + "sensic.net": "gfk", + "gfycat.com": "gfycat.com", + "a.giantrealm.com": "giant_realm", + "videostat.com": "giantmedia", + "gigaonclick.com": "giga", + "analytics.gigyahosting1.com": "gigya", + "gigcount.com": "gigya", + "gigya.com": "gigya", + "service.giosg.com": "giosg", + "giphy.com": "giphy.com", + "giraff.io": "giraff.io", + "github.com": "github", + "githubassets.com": "github", + "githubusercontent.com": "github", + "githubapp.com": "github_apps", + "github.io": "github_pages", + "aff3.gittigidiyor.com": "gittigidiyor_affiliate_program", + "gittip.com": "gittip", + "sitest.jp": "glad_cube", + "glganltcs.space": "glganltcs.space", + "globalwebindex.net": "global_web_index", + "globalnotifier.com": "globalnotifier.com", + "globalsign.com": "globalsign", + "ad.globaltakeoff.net": "globaltakeoff", + "glomex.cloud": "glomex.com", + "glomex.com": "glomex.com", + "glotgrx.com": "glotgrx.com", + "a.gmdelivery.com": "gm_delivery", + "ad.atown.jp": "gmo", + "gmx.net": "gmx_net", + "gmxpro.net": "gmx_net", + "go.com": "go.com", + "affiliate.godaddy.com": "godaddy_affiliate_program", + "trafficfacts.com": "godaddy_site_analytics", + "seal.godaddy.com": "godaddy_site_seal", + "tracking.godatafeed.com": "godatafeed", + "counter.goingup.com": "goingup", + "axf8.net": "gomez", + "goodadvert.ru": "goodadvert", + "google.at": "google", + "google.be": "google", + "google.ca": "google", + "google.ch": "google", + "google.co.id": "google", + "google.co.in": "google", + "google.co.jp": "google", + "google.co.ma": "google", + "google.co.th": "google", + "google.co.uk": "google", + "google.com": "google", + "google.com.ar": "google", + "google.com.au": "google", + "google.com.br": "google", + "google.com.mx": "google", + "google.com.tr": "google", + "google.com.tw": "google", + "google.com.ua": "google", + "google.cz": "google", + "google.de": "google", + "google.dk": "google", + "google.dz": "google", + "google.es": "google", + "google.fi": "google", + "google.fr": "google", + "google.gr": "google", + "google.hu": "google", + "google.ie": "google", + "google.it": "google", + "google.nl": "google", + "google.no": "google", + "google.pl": "google", + "google.pt": "google", + "google.ro": "google", + "google.rs": "google", + "google.ru": "google", + "google.se": "google", + "google.tn": "google", + "googleadservices.com": "google_adservices", + "google-analytics.com": "google_analytics", + "appspot.com": "google_appspot", + "beacons-google.com": "google_beacons", + "adsensecustomsearchads.com": "google_custom_search", + "mail-ads.google.com": "google_email", + "fonts.googleapis.com": "google_fonts", + "ggpht.com": "google_photos", + "1e100cdn.net": "google_servers", + "googlesyndication.com": "google_syndication", + "googletagmanager.com": "google_tag_manager", + "googletagservices.com": "google_tag_manager", + "translate.google.com": "google_translate", + "googletraveladservices.com": "google_travel_adds", + "googlecommerce.com": "google_trusted_stores", + "googleusercontent.com": "google_users", + "gmodules.com": "google_widgets", + "googleapis.com": "googleapis.com", + "gooal.herokuapp.com": "goooal", + "gooo.al": "goooal", + "cdn.triggertag.gorillanation.com": "gorilla_nation", + "evolvemediametrics.com": "gorilla_nation", + "d1l6p2sc9645hc.cloudfront.net": "gosquared", + "gosquared.com": "gosquared", + "gostats.com": "gostats", + "govmetric.com": "govmetric", + "servmetric.com": "govmetric", + "b.grabo.bg": "grabo_affiliate", + "trw12.com": "grandslammedia", + "tuberewards.com": "grandslammedia", + "d2bw638ufki166.cloudfront.net": "granify", + "granify.com": "granify", + "grapeshot.co.uk": "grapeshot", + "gscontxt.net": "grapeshot", + "graphcomment.com": "graph_comment", + "gravatar.com": "gravatar", + "cdn.gravitec.net": "gravitec", + "gravity.com": "gravity_insights", + "grvcdn.com": "gravity_insights", + "greatviews.de": "greatviews.de", + "gandrad.org": "green_and_red", + "green-red.com": "green_and_red", + "co2stats.com": "green_certified_site", + "greenstory.ca": "green_story", + "greentube.com": "greentube.com", + "gt-cdn.net": "greentube.com", + "greystripe.com": "greystripe", + "groovehq.com": "groove", + "groovinads.com": "groovinads", + "bidagent.xad.com": "groundtruth", + "gmads.net": "groupm_server", + "grmtech.net": "groupm_server", + "media.gsimedia.net": "gsi_media", + "gstatic.com": "gstatic", + "fx.gtop.ro": "gtop", + "fx.gtopstats.com": "gtop", + "gubagootracking.com": "gugaboo", + "guj.de": "guj.de", + "emsservice.de": "gujems", + "gumgum.com": "gumgum", + "gumroad.com": "gumroad", + "gunggo.com": "gunggo", + "h12-media.com": "h12_ads", + "h12-media.net": "h12_ads", + "hnbutton.appspot.com": "hacker_news_button", + "haendlerbund.de": "haendlerbund.de", + "halogennetwork.com": "halogen_network", + "d1l7z5ofrj6ab8.cloudfront.net": "happy_fox_chat", + "ad.harrenmedianetwork.com": "harren_media", + "ads.networkhm.com": "harren_media", + "app.hatchbuck.com": "hatchbuck", + "hhcdn.ru": "head_hunter", + "healte.de": "healte.de", + "d36lvucg9kzous.cloudfront.net": "heap", + "heapanalytics.com": "heap", + "heatmap.it": "heatmap", + "weltsport.net": "heimspiel", + "hellobar.com": "hello_bar", + "hellosociety.com": "hellosociety", + "here.com": "here", + "herokuapp.com": "heroku", + "heureka.cz": "heureka-widget", + "heybubble.com": "heybubble", + "heyos.com": "heyos", + "adlink.net": "hi-media_performance", + "comclick.com": "hi-media_performance", + "hi-mediaserver.com": "hi-media_performance", + "himediads.com": "hi-media_performance", + "himediadx.com": "hi-media_performance", + "hiconversion.com": "hiconversion", + "highwebmedia.com": "highwebmedia.com", + "hwcdn.net": "highwinds", + "hiiir.com": "hiiir", + "hiro.tv": "hiro", + "histats.com": "histats", + "hit-parade.com": "hit-parade", + "hit.ua": "hit.ua", + "hitslink.com": "hitslink", + "hitsprocessor.com": "hitslink", + "hitsniffer.com": "hitsniffer", + "hittail.com": "hittail", + "hivedx.com": "hivedx.com", + "ads.thehiveworks.com": "hiveworks", + "hoholikik.club": "hoholikik.club", + "h-cdn.com": "hola_player", + "homeaway.com": "homeaway", + "honeybadger.io": "honeybadger", + "hlserve.com": "hooklogic", + "apiae.hopscore.com": "hop-cube", + "hotdogsandads.com": "hotdogsandads.com", + "hotjar.com": "hotjar", + "hotkeys.com": "hotkeys", + "hotlog.ru": "hotlog.ru", + "hotwords.com": "hotwords", + "hotwords.es": "hotwords", + "howtank.com": "howtank.com", + "hqentertainmentnetwork.com": "hqentertainmentnetwork.com", + "justservingfiles.net": "hqentertainmentnetwork.com", + "hsoub.com": "hsoub", + "hstrck.com": "hstrck.com", + "httpool.com": "httpool", + "toboads.com": "httpool", + "hubrus.com": "hubrus", + "hs-analytics.net": "hubspot", + "hs-scripts.com": "hubspot", + "hsleadflows.net": "hubspot", + "hubapi.com": "hubspot", + "hubspot.com": "hubspot", + "forms.hubspot.com": "hubspot_forms", + "hubvisor.io": "hubvisor.io", + "files.hucksterbot.com": "hucksterbot", + "hupso.com": "hupso", + "hurra.com": "hurra_tracker", + "hybrid.ai": "hybrid.ai", + "targetix.net": "hybrid.ai", + "hypeads.org": "hype_exchange", + "hypercomments.com": "hypercomments", + "hyves.nl": "hyves_widgets", + "hyvyd.com": "hyvyd", + "ib-ibi.com": "i-behavior", + "i-mobile.co.jp": "i-mobile", + "r.i.ua": "i.ua", + "i10c.net": "i10c.net", + "i2i.jp": "i2i.jp", + "i2idata.com": "i2i.jp", + "consensu.org": "iab_consent", + "iadvize.com": "iadvize", + "cmcore.com": "ibm_customer_experience", + "coremetrics.com": "ibm_customer_experience", + "coremetrics.eu": "ibm_customer_experience", + "tracker.icerocket.com": "icerocket_tracker", + "nsimg.net": "icf_technology", + "optimix.asia": "iclick", + "ic-live.com": "icrossing", + "icstats.nl": "icstats", + "icuazeczpeoohx.com": "icuazeczpeoohx.com", + "id-news.net": "id-news.net", + "idcdn.de": "id-news.net", + "cdn.id.services": "id_services", + "e-generator.com": "ideal_media", + "idealo.com": "idealo_com", + "ideoclick.com": "ideoclick", + "s.idio.co": "idio", + "ie8eamus.com": "ie8eamus.com", + "600z.com": "ientry", + "api.iflychat.com": "iflychat", + "ignitionone.com": "ignitionone", + "knotice.net": "ignitionone", + "igodigital.com": "igodigital", + "ad.wsod.com": "ihs_markit", + "collserve.com": "ihs_markit_online_shopper_insigh", + "ihvmcqojoj.com": "ihvmcqojoj.com", + "iias.eu": "iias.eu", + "ijento.com": "ijento", + "adv.imadrep.co.kr": "imad", + "worthathousandwords.com": "image_advantage", + "picadmedia.com": "image_space_media", + "imgix.net": "imgix.net", + "imgur.com": "imgur", + "vidigital.ru": "imho_vi", + "immanalytics.com": "immanalytics", + "immobilienscout24.de": "immobilienscout24_de", + "static-immobilienscout24.de": "immobilienscout24_de", + "imonomy.com": "imonomy", + "7eer.net": "impact_radius", + "d3cxv97fi8q177.cloudfront.net": "impact_radius", + "evyy.net": "impact_radius", + "impactradius-event.com": "impact_radius", + "impactradius-tag.com": "impact_radius", + "impactradius.com": "impact_radius", + "ojrq.net": "impact_radius", + "r7ls.net": "impact_radius", + "impresionesweb.com": "impresiones_web", + "360yield.com": "improve_digital", + "iljmp.com": "improvely", + "inbenta.com": "inbenta", + "inboxsdk.com": "inboxsdk.com", + "indeed.com": "indeed", + "casalemedia.com": "index_exchange", + "indexww.com": "index_exchange", + "indieclick.com": "indieclick", + "industrybrains.com": "industry_brains", + "impdesk.com": "infectious_media", + "impressiondesk.com": "infectious_media", + "zachysprod.infiniteanalytics.com": "infinite_analytics", + "infinity-tracking.net": "infinity_tracking", + "engine.influads.com": "influads", + "infolinks.com": "infolinks", + "intextscript.com": "infolinks", + "ioam.de": "infonline", + "iocnt.net": "infonline", + "ivwbox.de": "infonline", + "informer.com": "informer_technologies", + "infusionsoft.com": "infusionsoft", + "keap.com": "infusionsoft", + "innity.com": "innity", + "innity.net": "innity", + "innogames.com": "innogames.de", + "innogames.de": "innogames.de", + "innogamescdn.com": "innogames.de", + "innovid.com": "innovid", + "inside-graph.com": "inside", + "useinsider.com": "insider", + "insightexpressai.com": "insightexpress", + "inskinad.com": "inskin_media", + "inskinmedia.com": "inskin_media", + "inspectlet.com": "inspectlet", + "inspsearchapi.com": "inspsearchapi.com", + "cdninstagram.com": "instagram_com", + "instagram.com": "instagram_com", + "tcgtrkr.com": "instant_check_mate", + "sdad.guru": "instart_logic", + "insticator.com": "insticator", + "load.instinctiveads.com": "instinctive", + "intango.com": "intango", + "adsafeprotected.com": "integral_ad_science", + "iasds01.com": "integral_ad_science", + "integral-marketing.com": "integral_marketing", + "intelliad.com": "intelliad", + "intelliad.de": "intelliad", + "saas.intelligencefocus.com": "intelligencefocus", + "ist-track.com": "intelligent_reach", + "intensedebate.com": "intense_debate", + "intentiq.com": "intent_iq", + "intentmedia.net": "intent_media", + "intercom.com": "intercom", + "intercom.io": "intercom", + "intercomassets.com": "intercom", + "intercomcdn.com": "intercom", + "interedy.info": "interedy.info", + "ads.intergi.com": "intergi", + "intermarkets.net": "intermarkets.net", + "intermundomedia.com": "intermundo_media", + "bbelements.com": "internet_billboard", + "goadservices.com": "internet_billboard", + "ibillboard.com": "internet_billboard", + "mediainter.net": "internet_billboard", + "voice2page.com": "internetaudioads", + "ibpxl.com": "internetbrands", + "ibsrv.net": "internetbrands", + "interpolls.com": "interpolls", + "ps7894.com": "interyield", + "intilery-analytics.com": "intilery", + "im-apps.net": "intimate_merger", + "investingchannel.com": "investingchannel", + "inviziads.com": "inviziads", + "js12.invoca.net": "invoca", + "ringrevenue.com": "invoca", + "invodo.com": "invodo", + "ionicframework.com": "ionicframework.com", + "dsp.io": "iotec", + "iesnare.com": "iovation", + "iovation.com": "iovation", + "ip-label.net": "ip-label", + "eltoro.com": "ip_targeting", + "iptargeting.com": "ip_targeting", + "ip-tracker.org": "ip_tracker", + "iptrack.io": "ip_tracker", + "iperceptions.com": "iperceptions", + "dust.ipfingerprint.com": "ipfingerprint", + "mbww.com": "ipg_mediabrands", + "ipify.org": "ipify", + "ipinfo.io": "ipinfo", + "iplogger.ru": "iplogger", + "centraliprom.com": "iprom", + "iprom.net": "iprom", + "ipromote.com": "ipromote", + "clickmanage.com": "iprospect", + "addelive.com": "ironsource", + "afdads.com": "ironsource", + "delivery47.com": "ironsource", + "adsbyisocket.com": "isocket", + "isocket.com": "isocket", + "ispot.tv": "ispot.tv", + "itineraire.info": "itineraire.info", + "apple.com": "apple", + "autolinkmaker.itunes.apple.com": "itunes_link_maker", + "ity.im": "ity.im", + "iubenda.com": "iubenda.com", + "ivcbrasil.org.br": "ivcbrasil.org.br", + "ivitrack.com": "ividence", + "iwiw.hu": "iwiw_widgets", + "ixiaa.com": "ixi_digital", + "ixquick.com": "ixquick.com", + "cdn.izooto.com": "izooto", + "jlist.com": "j-list_affiliate_program", + "getjaco.com": "jaco", + "janrainbackplane.com": "janrain", + "rpxnow.com": "janrain", + "jeeng.com": "jeeng", + "api.jeeng.com": "jeeng_widgets", + "phone-analytics.com": "jet_interactive", + "jetlore.com": "jetlore", + "pixel.wp.com": "jetpack", + "stats.wp.com": "jetpack", + "jetpackdigital.com": "jetpack_digital", + "jimcdn.com": "jimdo.com", + "jimdo.com": "jimdo.com", + "jimstatic.com": "jimdo.com", + "ads.jinkads.com": "jink", + "jirafe.com": "jirafe", + "jivosite.com": "jivochat", + "jivox.com": "jivox", + "jobs2careers.com": "jobs_2_careers", + "joinhoney.com": "joinhoney", + "create.leadid.com": "jornaya", + "d1tprjo2w7krrh.cloudfront.net": "jornaya", + "cdnjquery.com": "jquery", + "jquery.com": "jquery", + "cjmooter.xcache.kinxcdn.com": "js_communications", + "jsdelivr.net": "jsdelivr", + "jsecoin.com": "jse_coin", + "jsuol.com.br": "jsuol.com.br", + "contentabc.com": "juggcash", + "mofos.com": "juggcash", + "juiceadv.com": "juiceadv", + "juicyads.com": "juicyads", + "cdn.jumplead.com": "jumplead", + "jumpstarttaggingsolutions.com": "jumpstart_tagging_solutions", + "jumptap.com": "jumptap", + "jump-time.net": "jumptime", + "jumptime.com": "jumptime", + "components.justanswer.com": "just_answer", + "justpremium.com": "just_premium", + "justpremium.nl": "just_premium", + "justrelevant.com": "just_relevant", + "jvc.gg": "jvc.gg", + "d21rhj7n383afu.cloudfront.net": "jw_player", + "jwpcdn.com": "jw_player", + "jwplatform.com": "jw_player", + "jwplayer.com": "jw_player", + "jwpltx.com": "jw_player", + "jwpsrv.com": "jw_player", + "ltassrv.com": "jw_player_ad_solutions", + "kaeufersiegel.de": "kaeufersiegel.de", + "kairion.de": "kairion.de", + "kctag.net": "kairion.de", + "kaloo.ga": "kaloo.ga", + "kaltura.com": "kaltura", + "kameleoon.com": "kameleoon", + "kameleoon.eu": "kameleoon", + "kampyle.com": "kampyle", + "kanoodle.com": "kanoodle", + "kmi-us.com": "kantar_media", + "tnsinternet.be": "kantar_media", + "kargo.com": "kargo", + "kaspersky-labs.com": "kaspersky-labs.com", + "kataweb.it": "kataweb.it", + "cen.katchup.fr": "katchup", + "kau.li": "kauli", + "kavanga.ru": "kavanga", + "dc8na2hxrj29i.cloudfront.net": "keen_io", + "keen.io": "keen_io", + "widget.kelkoo.com": "kelkoo", + "xg4ken.com": "kenshoo", + "keymetric.net": "keymetric", + "lb.keytiles.com": "keytiles", + "keywee.co": "keywee", + "keywordmax.com": "keywordmax", + "massrelevance.com": "khoros", + "tweetriver.com": "khoros", + "khzbeucrltin.com": "khzbeucrltin.com", + "ping.kickfactory.com": "kickfactory", + "sa-as.com": "kickfire", + "sniff.visistat.com": "kickfire", + "stats.visistat.com": "kickfire", + "king.com": "king.com", + "midasplayer.com": "king_com", + "kinja-img.com": "kinja.com", + "kinja-static.com": "kinja.com", + "kinja.com": "kinja.com", + "kiosked.com": "kiosked", + "doug1izaerwt3.cloudfront.net": "kissmetrics.com", + "kissmetrics.com": "kissmetrics.com", + "ad.103092804.com": "kitara_media", + "kmdisplay.com": "kitara_media", + "kixer.com": "kixer", + "klarna.com": "klarna.com", + "a.klaviyo.com": "klaviyo", + "klikki.com": "klikki", + "scr.kliksaya.com": "kliksaya", + "mediapeo2.com": "kmeleo", + "knoopstat.nl": "knoopstat", + "knotch.it": "knotch", + "komoona.com": "komoona", + "kona.kontera.com": "kontera_contentlink", + "ktxtr.com": "kontextr", + "kontextua.com": "kontextua", + "cleanrm.net": "korrelate", + "korrelate.net": "korrelate", + "trackit.ktxlytics.io": "kortx", + "kaptcha.com": "kount", + "krxd.net": "krux_digital", + "d31bfnnwekbny6.cloudfront.net": "kupona", + "kpcustomer.de": "kupona", + "q-sis.de": "kupona", + "kxcdn.com": "kxcdn.com", + "cdn.kyto.com": "kyto", + "cd-ladsp-com.s3.amazonaws.com": "ladsp.com", + "ladmp.com": "ladsp.com", + "ladsp.com": "ladsp.com", + "lanistaads.com": "lanista_concepts", + "latimes.com": "latimes", + "events.launchdarkly.com": "launch_darkly", + "launchbit.com": "launchbit", + "layer-ad.org": "layer-ad.org", + "ph-live.slatic.net": "lazada", + "lcxdigital.com": "lcx_digital", + "lemde.fr": "le_monde.fr", + "t1.llanalytics.com": "lead_liaison", + "leadback.ru": "leadback", + "leaddyno.com": "leaddyno", + "123-tracker.com": "leadforensics", + "55-trk-srv.com": "leadforensics", + "business-path-55.com": "leadforensics", + "click-to-trace.com": "leadforensics", + "cloud-exploration.com": "leadforensics", + "cloud-journey.com": "leadforensics", + "cloud-trail.com": "leadforensics", + "cloudpath82.com": "leadforensics", + "cloudtracer101.com": "leadforensics", + "discover-path.com": "leadforensics", + "discovertrail.net": "leadforensics", + "domainanalytics.net": "leadforensics", + "dthvdr9.com": "leadforensics", + "explore-123.com": "leadforensics", + "finger-info.net": "leadforensics", + "forensics1000.com": "leadforensics", + "ip-route.net": "leadforensics", + "ipadd-path.com": "leadforensics", + "iproute66.com": "leadforensics", + "lead-123.com": "leadforensics", + "lead-analytics-1000.com": "leadforensics", + "lead-watcher.com": "leadforensics", + "leadforensics.com": "leadforensics", + "ledradn.com": "leadforensics", + "letterbox-path.com": "leadforensics", + "letterboxtrail.com": "leadforensics", + "network-handle.com": "leadforensics", + "path-follower.com": "leadforensics", + "path-trail.com": "leadforensics", + "scan-trail.com": "leadforensics", + "site-research.net": "leadforensics", + "srv1010elan.com": "leadforensics", + "the-lead-tracker.com": "leadforensics", + "trace-2000.com": "leadforensics", + "track-web.net": "leadforensics", + "trackdiscovery.net": "leadforensics", + "trackercloud.net": "leadforensics", + "trackinvestigate.net": "leadforensics", + "trail-viewer.com": "leadforensics", + "trail-web.com": "leadforensics", + "trailbox.net": "leadforensics", + "trailinvestigator.com": "leadforensics", + "web-path.com": "leadforensics", + "webforensics.co.uk": "leadforensics", + "websiteexploration.com": "leadforensics", + "www-path.com": "leadforensics", + "gate.leadgenic.com": "leadgenic", + "leadhit.ru": "leadhit", + "js.leadin.com": "leadin", + "io.leadingreports.de": "leading_reports", + "js.leadinspector.de": "leadinspector", + "formalyzer.com": "leadlander", + "trackalyzer.com": "leadlander", + "analytics.leadlifesolutions.net": "leadlife", + "my.leadpages.net": "leadpages", + "leadplace.fr": "leadplace", + "scorecard.wspisp.net": "leads_by_web.com", + "www.leadscoreapp.dk": "leadscoreapp", + "tracker.leadsius.com": "leadsius", + "leady.com": "leady", + "leady.cz": "leady", + "leiki.com": "leiki", + "lengow.com": "lengow", + "lenmit.com": "lenmit.com", + "lentainform.com": "lentainform.com", + "lenua.de": "lenua.de", + "letreach.com": "let_reach", + "js.letvcdn.com": "letv", + "footprint.net": "level3_communications", + "licensebuttons.net": "licensebuttons.net", + "lfstmedia.com": "lifestreet_media", + "content-recommendation.net": "ligatus", + "ligadx.com": "ligatus", + "ligatus.com": "ligatus", + "ligatus.de": "ligatus", + "veeseo.com": "ligatus", + "limk.com": "limk", + "line-apps.com": "line_apps", + "line-scdn.net": "line_apps", + "line.me": "line_apps", + "tongji.linezing.com": "linezing", + "linkbucks.com": "linkbucks", + "linkconnector.com": "linkconnector", + "bizo.com": "linkedin", + "licdn.com": "linkedin", + "linkedin.com": "linkedin", + "lynda.com": "linkedin", + "ads.linkedin.com": "linkedin_ads", + "snap.licdn.com": "linkedin_analytics", + "bizographics.com": "linkedin_marketing_solutions", + "platform.linkedin.com": "linkedin_widgets", + "linker.hr": "linker", + "linkprice.com": "linkprice", + "lp4.io": "linkpulse", + "linksalpha.com": "linksalpha", + "erovinmo.com": "linksmart", + "linksmart.com": "linksmart", + "linkstorm.net": "linkstorm", + "linksynergy.com": "linksynergy.com", + "linkup.com": "linkup", + "linkwi.se": "linkwise", + "linkwithin.com": "linkwithin", + "lqm.io": "liquidm_technology_gmbh", + "lqmcdn.com": "liquidm_technology_gmbh", + "liqwid.net": "liqwid", + "list.ru": "list.ru", + "listrakbi.com": "listrak", + "live2support.com": "live2support", + "live800.com": "live800", + "ladesk.com": "live_agent", + "livehelpnow.net": "live_help_now", + "liadm.com": "live_intent", + "l-stat.livejournal.net": "live_journal", + "liveadexchanger.com": "liveadexchanger.com", + "livechat.s3.amazonaws.com": "livechat", + "livechatinc.com": "livechat", + "livechatinc.net": "livechat", + "livechatnow.com": "livechatnow", + "livechatnow.net": "livechatnow", + "liveclicker.net": "liveclicker", + "livecounter.dk": "livecounter", + "fyre.co": "livefyre", + "livefyre.com": "livefyre", + "yadro.ru": "liveinternet", + "liveperson.net": "liveperson", + "lpsnmedia.net": "liveperson", + "pippio.com": "liveramp", + "rapleaf.com": "liveramp", + "rlcdn.com": "liveramp", + "livere.co.kr": "livere", + "livere.co.kr.cizion.ixcloud.net": "livere", + "livesportmedia.eu": "livesportmedia.eu", + "analytics.livestream.com": "livestream", + "livetex.ru": "livetex.ru", + "lkqd.net": "lkqd", + "loadbee.com": "loadbee.com", + "loadercdn.com": "loadercdn.com", + "loadsource.org": "loadsource.org", + "web.localytics.com": "localytics", + "cdn2.lockerdome.com": "lockerdome", + "addtoany.com": "lockerz_share", + "pixel.loganmedia.mobi": "logan_media", + "ping.answerbook.com": "logdna", + "loggly.com": "loggly", + "logly.co.jp": "logly", + "logsss.com": "logsss.com", + "lomadee.com": "lomadee", + "assets.loomia.com": "loomia", + "loop11.com": "loop11", + "lfov.net": "loopfuse_oneview", + "crwdcntrl.net": "lotame", + "vidcpm.com": "lottex_inc", + "tracker.samplicio.us": "lucid", + "lucidmedia.com": "lucid_media", + "lead.adsender.us": "lucini", + "livestatserver.com": "lucky_orange", + "luckyorange.com": "lucky_orange", + "luckyorange.net": "lucky_orange", + "luckypushh.com": "luckypushh.com", + "adelixir.com": "lxr100", + "lypn.com": "lynchpin_analytics", + "lypn.net": "lynchpin_analytics", + "lytics.io": "lytics", + "lyuoaxruaqdo.com": "lyuoaxruaqdo.com", + "m-pathy.com": "m-pathy", + "mpnrs.com": "m._p._newmedia", + "m4n.nl": "m4n", + "madadsmedia.com": "mad_ads_media", + "madeleine.de": "madeleine.de", + "dinclinx.com": "madison_logic", + "madisonlogic.com": "madison_logic", + "madnet.ru": "madnet", + "eu2.madsone.com": "mads", + "magna.ru": "magna_advertise", + "d3ezl4ajpp2zy8.cloudfront.net": "magnetic", + "domdex.com": "magnetic", + "domdex.net": "magnetic", + "magnetisemedia.com": "magnetise_group", + "magnify360.com": "magnify360", + "magnuum.com": "magnuum.com", + "ad.mail.ru": "mail.ru_banner", + "imgsmail.ru": "mail.ru_group", + "mail.ru": "mail.ru_group", + "mradx.net": "mail.ru_group", + "odnoklassniki.ru": "mail.ru_group", + "ok.ru": "mail.ru_group", + "chimpstatic.com": "mailchimp_tracking", + "list-manage.com": "mailchimp_tracking", + "mailchimp.com": "mailchimp_tracking", + "mailerlite.com": "mailerlite.com", + "mailtrack.io": "mailtrack.io", + "mainadv.com": "mainadv", + "makazi.com": "makazi", + "makeappdev.xyz": "makeappdev.xyz", + "makesource.cool": "makesource.cool", + "widgets.mango-office.ru": "mango", + "manycontacts.com": "manycontacts", + "mapandroute.de": "mapandroute.de", + "mapbox.com": "mapbox", + "www.maploco.com": "maploco", + "px.marchex.io": "marchex", + "voicestar.com": "marchex", + "mmadsgadget.com": "marimedia", + "qadabra.com": "marimedia", + "qadserve.com": "marimedia", + "qadservice.com": "marimedia", + "marinsm.com": "marin_search_marketer", + "markandmini.com": "mark_+_mini", + "ak-cdn.placelocal.com": "market_thunder", + "dt00.net": "marketgid", + "dt07.net": "marketgid", + "marketgid.com": "marketgid", + "mgid.com": "marketgid", + "marketingautomation.si": "marketing_automation", + "marketo.com": "marketo", + "marketo.net": "marketo", + "mktoresp.com": "marketo", + "caanalytics.com": "markmonitor", + "mmstat.com": "markmonitor", + "netscope.data.marktest.pt": "marktest", + "marshadow.io": "marshadow.io", + "martiniadnetwork.com": "martini_media", + "edigitalsurvey.com": "maru-edu", + "marvellousmachine.net": "marvellous_machine", + "mbn.com.ua": "master_banner_network", + "mastertarget.ru": "mastertarget", + "rns.matelso.de": "matelso", + "matheranalytics.com": "mather_analytics", + "mathjax.org": "mathjax.org", + "nzaza.com": "matiro", + "matomo.cloud": "matomo", + "matomo.org": "matomo", + "piwik.org": "matomo", + "adsmarket.com": "matomy_market", + "m2pub.com": "matomy_market", + "mb01.com": "maxbounty", + "maxcdn.com": "maxcdn", + "netdna-cdn.com": "maxcdn", + "netdna-ssl.com": "maxcdn", + "maxlab.ru": "maxlab", + "maxmind.com": "maxmind", + "maxonclick.com": "maxonclick_com", + "mxptint.net": "maxpoint_interactive", + "maxymiser.hs.llnwd.net": "maxymiser", + "maxymiser.net": "maxymiser", + "m6r.eu": "mbr_targeting", + "pixel.adbuyer.com": "mbuy", + "mcabi.mcloudglobal.com": "mcabi", + "scanalert.com": "mcafee_secure", + "ywxi.net": "mcafee_secure", + "mconet.biz": "mconet", + "mdotlabs.com": "mdotlabs", + "media-clic.com": "media-clic", + "media-imdb.com": "media-imdb.com", + "media.net": "media.net", + "mediaimpact.de": "media_impact", + "mookie1.com": "media_innovation_group", + "idntfy.ru": "media_today", + "s1.mediaad.org": "mediaad", + "mlnadvertising.com": "mediaglu", + "fhserve.com": "mediahub", + "adnet.ru": "medialand", + "medialand.ru": "medialand", + "medialead.de": "medialead", + "mathads.com": "mediamath", + "mathtag.com": "mediamath", + "mediametrics.ru": "mediametrics", + "audit.median.hu": "median", + "mediapass.com": "mediapass", + "mt.mediapostcommunication.net": "mediapost_communications", + "mediarithmics.com": "mediarithmics.com", + "tns-counter.ru": "mediascope", + "ad.media-servers.net": "mediashakers", + "adsvc1107131.net": "mediashift", + "mediator.media": "mediator.media", + "mediav.com": "mediav", + "adnetinteractive.com": "mediawhiz", + "adnetinteractive.net": "mediawhiz", + "mediego.com": "medigo", + "medleyads.com": "medley", + "adnet.com.tr": "medyanet", + "e-kolay.net": "medyanet", + "medyanetads.com": "medyanet", + "cim.meebo.com": "meebo_bar", + "meetrics.net": "meetrics", + "mxcdn.net": "meetrics", + "research.de.com": "meetrics", + "counter.megaindex.ru": "megaindex", + "mein-bmi.com": "mein-bmi.com", + "webvisitor.melissadata.net": "melissa", + "meltdsp.com": "melt", + "mlt01.com": "menlo", + "mentad.com": "mentad", + "mercadoclics.com": "mercado", + "mercadolivre.com.br": "mercado", + "mlstatic.com": "mercado", + "merchantadvantage.com": "merchantadvantage", + "merchenta.com": "merchenta", + "roia.biz": "mercury_media", + "cdn.merklesearch.com": "merkle_research", + "rkdms.com": "merkle_rkg", + "messenger.com": "messenger.com", + "ad.metanetwork.com": "meta_network", + "metaffiliation.com": "metaffiliation.com", + "netaffiliation.com": "metaffiliation.com", + "metalyzer.com": "metapeople", + "mlsat02.de": "metapeople", + "metrigo.com": "metrigo", + "metriweb.be": "metriweb", + "miaozhen.com": "miaozhen", + "microad.co.jp": "microad", + "microad.jp": "microad", + "microad.net": "microad", + "microadinc.com": "microad", + "azurewebsites.net": "microsoft", + "cloudapp.net": "microsoft", + "gfx.ms": "microsoft", + "live.com": "outlook", + "microsoft.com": "microsoft", + "microsoftonline-p.com": "microsoft", + "microsoftonline.com": "microsoft", + "microsofttranslator.com": "microsoft", + "msecnd.net": "microsoft", + "msedge.net": "microsoft", + "msocdn.com": "microsoft", + "onestore.ms": "microsoft", + "s-microsoft.com": "microsoft", + "trouter.io": "microsoft", + "windows.net": "microsoft", + "analytics.live.com": "microsoft_analytics", + "a.clarity.ms": "microsoft_clarity", + "b.clarity.ms": "microsoft_clarity", + "c.clarity.ms": "microsoft_clarity", + "d.clarity.ms": "microsoft_clarity", + "e.clarity.ms": "microsoft_clarity", + "f.clarity.ms": "microsoft_clarity", + "g.clarity.ms": "microsoft_clarity", + "h.clarity.ms": "microsoft_clarity", + "i.clarity.ms": "microsoft_clarity", + "j.clarity.ms": "microsoft_clarity", + "log.clarity.ms": "microsoft_clarity", + "www.clarity.ms": "microsoft_clarity", + "mmismm.com": "mindset_media", + "imgfarm.com": "mindspark", + "mindspark.com": "mindspark", + "staticimgfarm.com": "mindspark", + "mvtracker.com": "mindviz_tracker", + "minewhat.com": "minewhat", + "mintsapp.io": "mints_app", + "snackly.co": "minute.ly", + "snippet.minute.ly": "minute.ly", + "apv.configuration.minute.ly": "minute.ly_video", + "get.mirando.de": "mirando", + "mirtesen.ru": "mirtesen.ru", + "misterbell.com": "mister_bell", + "mixi.jp": "mixi", + "mixpanel.com": "mixpanel", + "mxpnl.com": "mixpanel", + "mxpnl.net": "mixpanel", + "swf.mixpo.com": "mixpo", + "app.mluvii.com": "mluvii", + "mncdn.com": "mncdn.com", + "moatads.com": "moat", + "moatpixel.com": "moat", + "mobicow.com": "mobicow", + "a.mobify.com": "mobify", + "mobtrks.com": "mobtrks.com", + "ads.mocean.mobi": "mocean_mobile", + "ads.moceanads.com": "mocean_mobile", + "chat.mochapp.com": "mochapp", + "intelligentpixel.modernimpact.com": "modern_impact", + "teljari.is": "modernus", + "modulepush.com": "modulepush.com", + "mogointeractive.com": "mogo_interactive", + "mokonocdn.com": "mokono_analytics", + "devappgrant.space": "monero_miner", + "monetate.net": "monetate", + "monetize-me.com": "monetize_me", + "ads.themoneytizer.com": "moneytizer", + "mongoosemetrics.com": "mongoose_metrics", + "track.monitis.com": "monitis", + "monitus.net": "monitus", + "fonts.net": "monotype_gmbh", + "fonts.com": "monotype_imaging", + "cdn.monsido.com": "monsido", + "monster.com": "monster_advertising", + "mooxar.com": "mooxar", + "mopinion.com": "mopinion.com", + "mopub.com": "mopub", + "ad.ad-arata.com": "more_communication", + "moras.jp": "moreads", + "nedstatbasic.net": "motigo_webstats", + "webstats.motigo.com": "motigo_webstats", + "analytics.convertlanguage.com": "motionpoint", + "mouseflow.com": "mouseflow", + "mousestats.com": "mousestats", + "s.mousetrace.com": "mousetrace", + "movad.de": "mov.ad", + "movad.net": "mov.ad", + "micpn.com": "movable_ink", + "mvb.me": "movable_media", + "moz.com": "moz", + "storage.mozoo.com": "mozoo", + "tracker.mrpfd.com": "mrp", + "mrpdata.com": "mrpdata", + "mrpdata.net": "mrpdata", + "mrskincash.com": "mrskincash", + "msn.com": "msn", + "s-msn.com": "msn", + "musculahq.appspot.com": "muscula", + "litix.io": "mux_inc", + "mybloglog.com": "mybloglog", + "t.p.mybuys.com": "mybuys", + "mycdn.me": "mycdn.me", + "mycliplister.com": "mycliplister.com", + "mycounter.com.ua": "mycounter.ua", + "mycounter.ua": "mycounter.ua", + "myfonts.net": "myfonts", + "mypagerank.net": "mypagerank", + "stat.mystat.hu": "mystat", + "mythings.com": "mythings", + "mystat-in.net": "mytop_counter", + "nakanohito.jp": "nakanohito.jp", + "namogoo.coom": "namogoo", + "nanigans.com": "nanigans", + "audiencemanager.de": "nano_interactive", + "nanorep.com": "nanorep", + "narando.com": "narando", + "static.bam-x.com": "narrativ", + "narrative.io": "narrative_io", + "p1.ntvk1.ru": "natimatica", + "nativeads.com": "nativeads.com", + "cdn01.nativeroll.tv": "nativeroll", + "ntv.io": "nativo", + "postrelease.com": "nativo", + "navdmp.com": "navegg_dmp", + "naver.com": "naver.com", + "naver.net": "naver.com", + "s-nbcnews.com": "nbc_news", + "richmedia247.com": "ncol", + "needle.com": "needle", + "nekudo.com": "nekudo.com", + "neodatagroup.com": "neodata", + "ad-srv.net": "neory", + "contentspread.net": "neory", + "neory-tm.com": "neory", + "simptrack.com": "neory", + "nerfherdersolo.com": "nerfherdersolo_com", + "wemfbox.ch": "net-metrix", + "cdnma.com": "net-results", + "nr7.us": "net-results", + "netavenir.com": "net_avenir", + "netcommunities.com": "net_communities", + "visibility-stats.com": "net_visibility", + "netbiscuits.net": "netbiscuits", + "bbtrack.net": "netbooster_group", + "netbooster.com": "netbooster_group", + "netflix.com": "netflix", + "nflxext.com": "netflix", + "nflximg.net": "netflix", + "nflxso.net": "netflix", + "nflxvideo.net": "netflix", + "netzathleten-media.de": "netletix", + "netminers.dk": "netminers", + "netmining.com": "netmining", + "netmng.com": "netmining", + "stat.netmonitor.fi": "netmonitor", + "glanceguide.com": "netratings_sitecensus", + "imrworldwide.com": "netratings_sitecensus", + "vizu.com": "netratings_sitecensus", + "netrk.net": "netrk.net", + "netseer.com": "netseer", + "netshelter.net": "netshelter", + "nsaudience.pl": "netsprint_audience", + "nwidget.networkedblogs.com": "networkedblogs", + "adadvisor.net": "neustar_adadvisor", + "d1ros97qkrwjf5.cloudfront.net": "new_relic", + "newrelic.com": "new_relic", + "nr-data.net": "new_relic", + "newscgp.com": "newscgp.com", + "nmcdn.us": "newsmax", + "newstogram.com": "newstogram", + "newsupdatedir.info": "newsupdatedir.info", + "newsupdatewe.info": "newsupdatewe.info", + "ads.newtention.net": "newtention", + "ads.newtentionassets.net": "newtention", + "nexage.com": "nexage", + "nexeps.com": "nexeps.com", + "nxtck.com": "next_performance", + "track.nextuser.com": "next_user", + "imgsrv.nextag.com": "nextag_roi_optimizer", + "nextclick.pl": "nextclick", + "nextstat.com": "nextstat", + "d1d8vn0fpluuz7.cloudfront.net": "neytiv", + "ads.ngageinc.com": "ngage_inc.", + "nice264.com": "nice264.com", + "nimblecommerce.com": "nimblecommerce", + "cho-chin.com": "ninja_access_analysis", + "donburako.com": "ninja_access_analysis", + "hishaku.com": "ninja_access_analysis", + "shinobi.jp": "ninja_access_analysis", + "static.nirror.com": "nirror", + "nitropay.com": "nitropay", + "nk.pl": "nk.pl_widgets", + "noaa.gov": "noaa.gov", + "track.noddus.com": "noddus", + "contextbar.ru": "nolix", + "trkme.net": "nonstop_consulting", + "noop.style": "noop.style", + "nosto.com": "nosto.com", + "adleadevent.com": "notify", + "notifyfox.com": "notifyfox", + "nowinteract.com": "now_interact", + "npario-inc.net": "npario", + "nplexmedia.com": "nplexmedia", + "nrelate.com": "nrelate", + "ns8.com": "ns8", + "nt.vc": "nt.vc", + "featurelink.com": "ntent", + "tracer.jp": "nttcom_online_marketing_solutions", + "nuffnang.com": "nuffnang", + "nuggad.net": "nugg.ad", + "rotator.adjuggler.com": "nui_media", + "numbers.md": "numbers.md", + "channeliq.com": "numerator", + "nyacampwk.com": "nyacampwk.com", + "nyetm2mkch.com": "nyetm2mkch.com", + "nyt.com": "nyt.com", + "nytimes.com": "nyt.com", + "o12zs3u2n.com": "o12zs3u2n.com", + "o2.pl": "o2.pl", + "o2online.de": "o2online.de", + "oath.com": "oath_inc", + "observerapp.com": "observer", + "ocioso.com.br": "ocioso", + "oclasrv.com": "oclasrv.com", + "octapi.net": "octapi.net", + "service.octavius.rocks": "octavius", + "office.com": "office.com", + "office.net": "office.net", + "office365.com": "office365.com", + "oghub.io": "oghub.io", + "ohmystats.com": "oh_my_stats", + "adohana.com": "ohana_advertising_network", + "photorank.me": "olapic", + "olark.com": "olark", + "olx-st.com": "olx-st.com", + "onap.io": "olx-st.com", + "omarsys.com": "omarsys.com", + "ometria.com": "ometria", + "omgpm.com": "omg", + "omniconvert.com": "omniconvert.com", + "omnidsp.com": "omniscienta", + "oms.eu": "oms", + "omsnative.de": "oms", + "onaudience.com": "onaudience", + "btc-echode.api.oneall.com": "oneall", + "tracking.onefeed.co.uk": "onefeed", + "onesignal.com": "onesignal", + "os.tc": "onesignal", + "stat.onestat.com": "onestat", + "ocdn.eu": "onet.pl", + "onet.pl": "onet.pl", + "onetag.com": "onetag", + "s-onetag.com": "onetag", + "onetrust.com": "onetrust", + "fogl1onf.com": "onfocus.io", + "onfocus.io": "onfocus.io", + "onlinewebstat.com": "onlinewebstat", + "onlinewebstats.com": "onlinewebstat", + "onswipe.com": "onswipe", + "onthe.io": "onthe.io", + "moon-ray.com": "ontraport_autopilot", + "moonraymarketing.com": "ontraport_autopilot", + "ooyala.com": "ooyala.com", + "openadex.dk": "open_adexchange", + "247realmedia.com": "open_adstream", + "oaserve.com": "open_adstream", + "realmedia.com": "open_adstream", + "realmediadigital.com": "open_adstream", + "opensharecount.com": "open_share_count", + "oloadcdn.net": "openload", + "openload.co": "openload", + "openstat.net": "openstat", + "spylog.com": "openstat", + "spylog.ru": "openstat", + "opentracker.net": "opentracker", + "openwebanalytics.com": "openwebanalytics", + "odnxs.net": "openx", + "openx.net": "openx", + "openx.org": "openx", + "openxenterprise.com": "openx", + "servedbyopenx.com": "openx", + "adsummos.net": "operative_media", + "opinary.com": "opinary", + "opinionbar.com": "opinionbar", + "emagazines.com": "oplytic", + "opta.net": "opta.net", + "optaim.com": "optaim", + "cookielaw.org": "optanaon", + "service.optify.net": "optify", + "optimatic.com": "optimatic", + "optmd.com": "optimax_media_delivery", + "optimicdn.com": "optimicdn.com", + "optimizely.com": "optimizely", + "optimonk.com": "optimonk", + "mstrlytcs.com": "optinmonster", + "optmnstr.com": "optinmonster", + "optmstr.com": "optinmonster", + "optnmstr.com": "optinmonster", + "optincollect.com": "optinproject.com", + "volvelle.tech": "optomaton", + "ora.tv": "ora.tv", + "instantservice.com": "oracle_live_help", + "ts.istrack.com": "oracle_live_help", + "rightnowtech.com": "oracle_rightnow", + "rnengage.com": "oracle_rightnow", + "orange.fr": "orange", + "orangeads.fr": "orange", + "ads.orange142.com": "orange142", + "wanadoo.fr": "orange_france", + "otracking.com": "orangesoda", + "emxdgt.com": "orc_international", + "static.ordergroove.com": "order_groove", + "orelsite.ru": "orel_site", + "otclick-adv.ru": "otclick", + "othersearch.info": "othersearch.info", + "otm-r.com": "otm-r.com", + "otto.de": "otto.de", + "ottogroup.media": "otto.de", + "outbrain.com": "outbrain", + "outbrainimg.com": "outbrain", + "overheat.it": "overheat.it", + "oewabox.at": "owa", + "owneriq.net": "owneriq", + "ownpage.fr": "ownpage", + "owox.com": "owox.com", + "adconnexa.com": "oxamedia", + "adsbwm.com": "oxamedia", + "oxomi.com": "oxomi.com", + "pageanalytics.space": "pageanalytics.space", + "blockmetrics.com": "pagefair", + "pagefair.com": "pagefair", + "pagefair.net": "pagefair", + "ghmedia.com": "pagescience", + "777seo.com": "paid-to-promote", + "paid-to-promote.net": "paid-to-promote", + "ptp22.com": "paid-to-promote", + "ptp33.com": "paid-to-promote", + "paperg.com": "paperg", + "pardot.com": "pardot", + "d1z2jf7jlzjs58.cloudfront.net": "parsely", + "parsely.com": "parsely", + "partner-ads.com": "partner-ads", + "passionfruitads.com": "passionfruit", + "pathful.com": "pathful", + "pay-hit.com": "pay-hit", + "payclick.it": "payclick", + "app.paykickstart.com": "paykickstart", + "paypal.com": "paypal", + "paypalobjects.com": "paypal", + "pcvark.com": "pcvark.com", + "peer39.com": "peer39", + "peer39.net": "peer39", + "peer5.com": "peer5.com", + "peerius.com": "peerius", + "pendo.io": "pendo.io", + "pepper.com": "pepper.com", + "gopjn.com": "pepperjam", + "pjatr.com": "pepperjam", + "pjtra.com": "pepperjam", + "pntra.com": "pepperjam", + "pntrac.com": "pepperjam", + "pntrs.com": "pepperjam", + "player.pepsia.com": "pepsia", + "perfdrive.com": "perfdrive.com", + "perfectaudience.com": "perfect_audience", + "prfct.co": "perfect_audience", + "perfectmarket.com": "perfect_market", + "performgroup.com": "perform_group", + "analytics.performable.com": "performable", + "performancing.com": "performancing_metrics", + "performax.cz": "performax", + "perimeterx.net": "perimeterx.net", + "permutive.com": "permutive", + "persgroep.net": "persgroep", + "persianstat.com": "persianstat", + "code.pers.io": "persio", + "counter.personyze.com": "personyze", + "petametrics.com": "petametrics", + "ads.pheedo.com": "pheedo", + "app.phonalytics.com": "phonalytics", + "d2bgg7rjywcwsy.cloudfront.net": "phunware", + "piguiqproxy.com": "piguiqproxy.com", + "trgt.eu": "pilot", + "pingdom.net": "pingdom", + "pinimg.com": "pinterest", + "pinterest.com": "pinterest", + "app.pipz.io": "pipz", + "disabled.invalid": "piwik", + "piwik.pro": "piwik_pro_analytics_suite", + "adrta.com": "pixalate", + "app.pixelpop.co": "pixel_union", + "pixfuture.net": "pixfuture", + "vast1.pixfuture.com": "pixfuture", + "piximedia.com": "piximedia", + "pizzaandads.com": "pizzaandads_com", + "ads.placester.net": "placester", + "d3uemyw1e5n0jw.cloudfront.net": "placester", + "pladform.com": "pladform.ru", + "tag.bi.serviceplan.com": "plan.net_experience_cloud", + "pfrm.co": "platform360", + "impact-ad.jp": "platformone", + "loveadvert.ru": "play_by_mamba", + "playbuzz.com": "playbuzz.com", + "pof.com": "plenty_of_fish", + "analytics.plex.tv": "plex_metrics", + "metrics.plex.tv": "plex_metrics", + "plista.com": "plista", + "plugrush.com": "plugrush", + "pluso.ru": "pluso.ru", + "plutusads.com": "plutusads", + "pmddby.com": "pmddby.com", + "pnamic.com": "pnamic.com", + "po.st": "po.st", + "widgets.getpocket.com": "pocket", + "pocketcents.com": "pocketcents", + "pointificsecure.com": "pointific", + "pointroll.com": "pointroll", + "poirreleast.club": "poirreleast.club", + "mediavoice.com": "polar.me", + "polar.me": "polar.me", + "polarmobile.com": "polar.me", + "polldaddy.com": "polldaddy", + "polyad.net": "polyad", + "polyfill.io": "polyfill.io", + "popads.net": "popads", + "popadscdn.net": "popads", + "popcash.net": "popcash", + "desv383oqqc0.cloudfront.net": "popcorn_metrics", + "popin.cc": "popin.cc", + "cdn.popmyads.com": "popmyads", + "poponclick.com": "poponclick", + "populis.com": "populis", + "populisengage.com": "populis", + "phncdn.com": "pornhub", + "pornhub.com": "pornhub", + "prscripts.com": "pornwave", + "prstatics.com": "pornwave", + "prwidgets.com": "pornwave", + "barra.brasil.gov.br": "porta_brazil", + "postaffiliatepro.com": "post_affiliate_pro", + "powerlinks.com": "powerlinks", + "powerreviews.com": "powerreviews", + "powr.io": "powr.io", + "api.pozvonim.com": "pozvonim", + "prebid.org": "prebid", + "precisionclick.com": "precisionclick", + "adserver.com.br": "predicta", + "predicta.net": "predicta", + "prnx.net": "premonix", + "ppjol.com": "press", + "ppjol.net": "press", + "api.pressly.com": "pressly", + "pricegrabber.com": "pricegrabber", + "cdn.pricespider.com": "pricespider", + "pmdrecrute.com": "prismamediadigital.com", + "prismamediadigital.com": "prismamediadigital.com", + "privy.com": "privy.com", + "pswec.com": "proclivity", + "prodperfect.com": "prodperfect", + "lib.productsup.io": "productsup", + "proadsnet.com": "profiliad", + "profitshare.ro": "profitshare", + "tracking.proformics.com": "proformics", + "programattik.com": "programattik", + "projectwonderful.com": "project_wonderful", + "propelmarketing.com": "propel_marketing", + "oclaserver.com": "propeller_ads", + "onclasrv.com": "propeller_ads", + "onclickads.net": "propeller_ads", + "onclkds.com": "propeller_ads", + "propellerads.com": "propeller_ads", + "propellerpops.com": "propeller_ads", + "proper.io": "propermedia", + "st-a.props.id": "props", + "propvideo.net": "propvideo_net", + "tr.prospecteye.com": "prospecteye", + "prosperent.com": "prosperent", + "prostor-lite.ru": "prostor", + "providesupport.com": "provide_support", + "proximic.com": "proximic", + "proxistore.com": "proxistore.com", + "pscp.tv": "pscp.tv", + "pstatic.net": "pstatic.net", + "psyma.com": "psyma", + "ptengine.jp": "pt_engine", + "pub-fit.com": "pub-fit", + "pub.network": "pub.network", + "learnpipe.com": "pubble", + "pubble.co": "pubble", + "pubdirecte.com": "pubdirecte", + "pubgears.com": "pubgears", + "publicidees.com": "public_ideas", + "publicidad.net": "publicidad.net", + "intgr.net": "publir", + "pubmatic.com": "pubmatic", + "pubnub.com": "pubnub.com", + "puboclic.com": "puboclic", + "pulpix.com": "pulpix.com", + "tentaculos.net": "pulpo_media", + "pulse360.com": "pulse360", + "pulseinsights.com": "pulse_insights", + "contextweb.com": "pulsepoint", + "pulsepoint.com": "pulsepoint", + "punchtab.com": "punchtab", + "purch.com": "purch", + "servebom.com": "purch", + "purechat.com": "pure_chat", + "cdn.pprl.io": "pureprofile", + "oopt.fr": "purlive", + "puserving.com": "puserving.com", + "push.world": "push.world", + "pushengage.com": "push_engage", + "pushame.com": "pushame.com", + "zebra.pushbullet.com": "pushbullet", + "pushcrew.com": "pushcrew", + "pusher.com": "pusher.com", + "pusherapp.com": "pusher.com", + "pushnative.com": "pushnative.com", + "cdn.pushnews.eu": "pushnews", + "pushno.com": "pushno.com", + "pushwhy.com": "pushwhy.com", + "pushwoosh.com": "pushwoosh.com", + "pvclouds.com": "pvclouds.com", + "ads.q1media.com": "q1media", + "q1mediahydraplatform.com": "q1media", + "q-divisioncdn.de": "q_division", + "qbaka.net": "qbaka", + "track.qcri.org": "qcri_analytics", + "collect.qeado.com": "qeado", + "s.lianmeng.360.cn": "qihoo_360", + "qq.com": "qq.com", + "qrius.me": "qrius", + "qualaroo.com": "qualaroo", + "bluecava.com": "qualia", + "qualtrics.com": "qualtrics", + "quantcast.com": "quantcast", + "quantserve.com": "quantcast", + "quantcount.com": "quantcount", + "quantummetric.com": "quantum_metric", + "quartic.pl": "quartic.pl", + "quarticon.com": "quartic.pl", + "d3c3cq33003psk.cloudfront.net": "qubit", + "qubit.com": "qubit", + "easyresearch.se": "questback", + "queue-it.net": "queue-it", + "quick-counter.net": "quick-counter.net", + "adsonar.com": "quigo_adsonar", + "qnsr.com": "quinstreet", + "quinstreet.com": "quinstreet", + "thecounter.com": "quinstreet", + "quintelligence.com": "quintelligence", + "qservz.com": "quisma", + "quisma.com": "quisma", + "quora.com": "quora.com", + "ads-digitalkeys.com": "r_advertising", + "rackcdn.com": "rackcdn.com", + "radarurl.com": "radarurl", + "dsa.csdata1.com": "radial", + "gwallet.com": "radiumone", + "r1-cdn.net": "radiumone", + "widget.raisenow.com": "raisenow", + "mediaforge.com": "rakuten_display", + "rmtag.com": "rakuten_display", + "rakuten.co.jp": "rakuten_globalmarket", + "trafficgate.net": "rakuten_globalmarket", + "mtwidget04.affiliate.rakuten.co.jp": "rakuten_widget", + "xml.affilliate.rakuten.co.jp": "rakuten_widget", + "rambler.ru": "rambler", + "top100.ru": "rambler", + "rapidspike.com": "rapidspike", + "ravelin.com": "ravelin", + "rawgit.com": "rawgit", + "raygun.io": "raygun", + "count.rbc.ru": "rbc_counter", + "rcs.it": "rcs.it", + "rcsmediagroup.it": "rcs.it", + "d335luupugsy2.cloudfront.net": "rd_station", + "d12ulf131zb0yj.cloudfront.net": "reachforce", + "reachforce.com": "reachforce", + "reachjunction.com": "reachjunction", + "cdn.rlets.com": "reachlocal", + "reachlocal.com": "reachlocal", + "reachlocallivechat.com": "reachlocal", + "rlcdn.net": "reachlocal", + "plugin.reactful.com": "reactful", + "reactivpub.fr": "reactivpub", + "skinected.com": "reactx", + "readrboard.com": "readerboard", + "readme.com": "readme", + "readme.io": "readme", + "readspeaker.com": "readspeaker.com", + "realclick.co.kr": "realclick", + "realperson.de": "realperson.de", + "powermarketing.com": "realtime", + "realtime.co": "realtime", + "webspectator.com": "realtime", + "dcniko1cv0rz.cloudfront.net": "realytics", + "realytics.io": "realytics", + "static.rbl.ms": "rebel_mouse", + "recettes.net": "recettes.net", + "static.recopick.com": "recopick", + "recreativ.ru": "recreativ", + "analytics.recruitics.com": "recruitics", + "analytics.cohesionapps.com": "red_ventures", + "cdn.cohesionapps.com": "red_ventures", + "redblue.de": "redblue_de", + "atendesoftware.pl": "redcdn.pl", + "redd.it": "reddit", + "reddit-image.s3.amazonaws.com": "reddit", + "reddit.com": "reddit", + "redditmedia.com": "reddit", + "redditstatic.com": "reddit", + "redhelper.ru": "redhelper", + "pixelinteractivemedia.com": "redlotus", + "triggit.com": "redlotus", + "grt01.com": "redtram", + "grt02.com": "redtram", + "redtram.com": "redtram", + "rdtcdn.com": "redtube.com", + "redtube.com": "redtube.com", + "reduxmedia.com": "redux_media", + "reduxmediagroup.com": "redux_media", + "reedbusiness.net": "reed_business_information", + "reembed.com": "reembed.com", + "reevoo.com": "reevoo.com", + "refericon.pl": "refericon", + "ads.referlocal.com": "referlocal", + "refersion.com": "refersion", + "refinedads.com": "refined_labs", + "product.reflektion.com": "reflektion", + "reformal.ru": "reformal", + "reinvigorate.net": "reinvigorate", + "convertglobal.com": "rekko", + "convertglobal.s3.amazonaws.com": "rekko", + "dnhgz729v27ca.cloudfront.net": "rekko", + "reklamstore.com": "reklam_store", + "ad.reklamport.com": "reklamport", + "delivery.reklamz.com": "reklamz", + "adimg.rekmob.com": "rekmob", + "relap.io": "relap", + "svtrd.com": "relay42", + "synovite-scripts.com": "relay42", + "tdn.r42tag.com": "relay42", + "relestar.com": "relestar", + "relevant4.com": "relevant4.com", + "remintrex.com": "remintrex", + "remove.video": "remove.video", + "rp-api.com": "repost.us", + "republer.com": "republer.com", + "resmeter.respublica.al": "res-meter", + "researchnow.com": "research_now", + "reson8.com": "resonate_networks", + "respondhq.com": "respond", + "adinsight.com": "responsetap", + "adinsight.eu": "responsetap", + "responsetap.com": "responsetap", + "data.resultlinks.com": "result_links", + "sli-system.com": "resultspage.com", + "retailrocket.net": "retailrocket.net", + "retailrocket.ru": "retailrocket.net", + "shopify.retargetapp.com": "retarget_app", + "retargeter.com": "retargeter_beacon", + "retargeting.cl": "retargeting.cl", + "d1stxfv94hrhia.cloudfront.net": "retention_science", + "waves.retentionscience.com": "retention_science", + "reutersmedia.net": "reuters_media", + "revcontent.com": "revcontent", + "socialtwist.com": "reve_marketing", + "revenue.com": "revenue", + "clkads.com": "revenuehits", + "clkmon.com": "revenuehits", + "clkrev.com": "revenuehits", + "clksite.com": "revenuehits", + "eclkspbn.com": "revenuehits", + "imageshack.host": "revenuehits", + "revenuemantra.com": "revenuemantra", + "revive-adserver.com": "revive_adserver", + "revolvermaps.com": "revolver_maps", + "cts.tradepub.com": "revresponse", + "revresponse.com": "revresponse", + "incontext.pl": "rewords", + "pl-engine.intextad.net": "rewords", + "addesktop.com": "rhythmone", + "1rx.io": "rhythmone_beacon", + "ria.ru": "ria.ru", + "rmbn.ru": "rich_media_banner_network", + "ics0.com": "richrelevance", + "richrelevance.com": "richrelevance", + "ringier.ch": "ringier.ch", + "meteorsolutions.com": "rio_seo", + "riskified.com": "riskfield.com", + "rncdn3.com": "rncdn3.com", + "ro2.biz": "ro2.biz", + "rbxcdn.com": "roblox", + "getrockerbox.com": "rockerbox", + "rocket.la": "rocket.ia", + "trk.sodoit.com": "roi_trax", + "collector.roistat.com": "roistat", + "rollad.ru": "rollad", + "d37gvrvc0wt4s1.cloudfront.net": "rollbar", + "get.roost.me": "roost", + "getrooster.com": "rooster", + "rqtrk.eu": "roq.ad", + "rotaban.ru": "rotaban", + "routenplaner-karten.com": "routenplaner-karten.com", + "rovion.com": "rovion", + "rsspump.com": "rsspump", + "creativecdn.com": "rtb_house", + "rvty.net": "rtblab", + "rtbsuperhub.com": "rtbsuperhub.com", + "rtl.de": "rtl_group", + "static-fra.de": "rtl_group", + "technical-service.net": "rtl_group", + "rtmark.net": "rtmark.net", + "dpclk.com": "rubicon", + "mobsmith.com": "rubicon", + "nearbyad.com": "rubicon", + "rubiconproject.com": "rubicon", + "tracker.ruhrgebiet-onlineservices.de": "ruhrgebiet", + "click.rummycircle.com": "rummycircle", + "runadtag.com": "run", + "rundsp.com": "run", + "un-syndicate.com": "runative", + "cdn.secretrune.com": "rune", + "runmewivel.com": "runmewivel.com", + "rhythmxchange.com": "rythmxchange", + "s24.com": "s24_com", + "s3xified.com": "s3xified.com", + "camp.sabavision.com": "sabavision", + "sageanalyst.net": "sagemetrics", + "sail-horizon.com": "sailthru_horizon", + "sail-personalize.com": "sailthru_horizon", + "sailthru.com": "sailthru_horizon", + "d16fk4ms6rqz1v.cloudfront.net": "salecycle", + "salecycle.com": "salecycle", + "api.salesfeed.com": "sales_feed", + "salesmanago.com": "sales_manago", + "salesmanago.pl": "sales_manago", + "force.com": "salesforce.com", + "salesforce.com": "salesforce.com", + "liveagentforsalesforce.com": "salesforce_live_agent", + "salesforceliveagent.com": "salesforce_live_agent", + "msgapp.com": "salesfusion", + "salespidermedia.com": "salespider_media", + "salesviewer.com": "salesviewer", + "samba.tv": "samba.tv", + "ilsemedia.nl": "sanoma.fi", + "sanoma.fi": "sanoma.fi", + "d13im3ek7neeqp.cloudfront.net": "sap_crm", + "d28ethi6slcjbm.cloudfront.net": "sap_crm", + "d2uevgmgh16uk4.cloudfront.net": "sap_crm", + "d3m83gvgzupli.cloudfront.net": "sap_crm", + "saas.seewhy.com": "sap_crm", + "leadforce1.com": "sap_sales_cloud", + "vlog.leadformix.com": "sap_sales_cloud", + "sap-xm.org": "sap_xm", + "sape.ru": "sape.ru", + "js.sl.pt": "sapo_ads", + "aimatch.com": "sas", + "sas.com": "sas", + "say.ac": "say.ac", + "ads.saymedia.com": "say_media", + "srv.sayyac.net": "sayyac", + "scarabresearch.com": "scarabresearch", + "schibsted.com": "schibsted", + "schibsted.io": "schibsted", + "schneevonmorgen.com": "schneevonmorgen.com", + "svonm.com": "schneevonmorgen.com", + "rockabox.co": "scoota", + "scorecardresearch.com": "scorecard_research_beacon", + "scoreresearch.com": "scorecard_research_beacon", + "scrsrch.com": "scorecard_research_beacon", + "securestudies.com": "scorecard_research_beacon", + "scout.scoutanalytics.net": "scout_analytics", + "scribblelive.com": "scribblelive", + "scribol.com": "scribol", + "analytics.snidigital.com": "scripps_analytics", + "scroll.com": "scroll", + "scupio.com": "scupio", + "search123.uk.com": "search123", + "searchforce.net": "searchforce", + "searchignite.com": "searchignite", + "srtk.net": "searchrev", + "tacticalrepublic.com": "second_media", + "securedtouch.com": "securedtouch", + "securedvisit.com": "securedvisit", + "bacontent.de": "seeding_alliance", + "nativendo.de": "seeding_alliance", + "seedtag.com": "seedtag.com", + "svlu.net": "seevolution", + "d2dq2ahtl5zl1z.cloudfront.net": "segment", + "d47xnnr8b1rki.cloudfront.net": "segment", + "segment.com": "segment", + "segment.io": "segment", + "rutarget.ru": "segmento", + "segmint.net": "segmint", + "sekindo.com": "sekindo", + "sellpoint.net": "sellpoints", + "sellpoints.com": "sellpoints", + "semantiqo.com": "semantiqo.com", + "semasio.net": "semasio", + "semilo.com": "semilo", + "semknox.com": "semknox.com", + "sibautomation.com": "sendinblue", + "sendpulse.com": "sendpulse.com", + "sendsay.ru": "sendsay", + "track.sensedigital.in": "sense_digital", + "static.sensorsdata.cn": "sensors_data", + "sentifi.com": "sentifi.com", + "d3nslu0hdya83q.cloudfront.net": "sentry", + "getsentry.com": "sentry", + "ravenjs.com": "sentry", + "sentry.io": "sentry", + "sepyra.com": "sepyra", + "d2oh4tlt9mrke9.cloudfront.net": "sessioncam", + "sessioncam.com": "sessioncam", + "sessionly.io": "sessionly", + "71i.de": "sevenone_media", + "sexad.net": "sexadnetwork", + "ads.sexinyourcity.com": "sexinyourcity", + "sextracker.com": "sextracker", + "sexypartners.net": "sexypartners.net", + "im.cz": "seznam", + "imedia.cz": "seznam", + "szn.cz": "seznam", + "dtym7iokkjlif.cloudfront.net": "shareaholic", + "shareaholic.com": "shareaholic", + "shareasale.com": "shareasale", + "quintrics.nl": "sharecompany", + "sharecompany.nl": "sharecompany", + "sharepointonline.com": "sharepoint", + "sharethis.com": "sharethis", + "shareth.ru": "sharethrough", + "sharethrough.com": "sharethrough", + "marketingautomation.services": "sharpspring", + "sharpspring.com": "sharpspring", + "sheego.de": "sheego.de", + "services.sheerid.com": "sheerid", + "shinystat.com": "shinystat", + "shinystat.it": "shinystat", + "app.shoptarget.com.br": "shop_target", + "retargeter.com.br": "shop_target", + "shopauskunft.de": "shopauskunft.de", + "shopgate.com": "shopgate.com", + "shopify.com": "shopify_stats", + "shopifycdn.com": "shopifycdn.com", + "shopifycloud.com": "shopifycloud.com", + "shopperapproved.com": "shopper_approved", + "shoppingshadow.com": "shopping_com", + "tracking.shopping-flux.com": "shopping_flux", + "shoprunner.com": "shoprunner", + "shopsocially.com": "shopsocially", + "shopzilla.com": "shopzilla", + "shortnews.de": "shortnews", + "shink.in": "shrink", + "shutterstock.com": "shutterstock", + "siblesectiveal.club": "siblesectiveal.club", + "d3v27wwd40f0xu.cloudfront.net": "sidecar", + "getsidecar.com": "sidecar", + "dtlilztwypawv.cloudfront.net": "sift_science", + "siftscience.com": "sift_science", + "btstatic.com": "signal", + "signal.co": "signal", + "thebrighttag.com": "signal", + "cdn-scripts.signifyd.com": "signifyd", + "signifyd.com": "signifyd", + "gw-services.vtrenz.net": "silverpop", + "mkt51.net": "silverpop", + "mkt912.com": "silverpop", + "mkt922.com": "silverpop", + "mkt941.com": "silverpop", + "pages01.net": "silverpop", + "pages02.net": "silverpop", + "pages04.net": "silverpop", + "pages05.net": "silverpop", + "similardeals.net": "similardeals.net", + "d8rk54i4mohrb.cloudfront.net": "simplereach", + "simplereach.com": "simplereach", + "simpli.fi": "simpli.fi", + "sina.com.cn": "sina", + "sinaimg.cn": "sina_cdn", + "reporting.singlefeed.com": "singlefeed", + "sddan.com": "sirdata", + "site24x7rum.com": "site24x7", + "site24x7rum.eu": "site24x7", + "sitebooster-fjfmworld-production.azureedge.net": "site_booster", + "a5.ogt.jp": "site_stratos", + "siteapps.com": "siteapps", + "sitebro.com": "sitebro", + "sitebro.com.tw": "sitebro", + "sitebro.net": "sitebro", + "sitebro.tw": "sitebro", + "siteheart.com": "siteheart", + "siteimprove.com": "siteimprove", + "siteimproveanalytics.com": "siteimprove_analytics", + "sitelabweb.com": "sitelabweb.com", + "sitemeter.com": "sitemeter", + "pixel.ad": "sitescout", + "sitescout.com": "sitescout", + "ad.sitemaji.com": "sitetag", + "sitetag.us": "sitetag", + "analytics.sitewit.com": "sitewit", + "ads.sixapart.com": "six_apart_advertising", + "sixt-neuwagen.de": "sixt-neuwagen.de", + "skadtec.com": "skadtec.com", + "redirectingat.com": "skimlinks", + "skimlinks.com": "skimlinks", + "skimresources.com": "skimlinks", + "analytics.skroutz.gr": "skroutz", + "skyglue.com": "skyglue", + "skype.com": "skype", + "skypeassets.com": "skype", + "skysa.com": "skysa", + "skyscnr.com": "skyscnr.com", + "slashdot.org": "slashdot_widget", + "sleeknotestaticcontent.sleeknote.com": "sleeknote", + "resultspage.com": "sli_systems", + "builder.extensionfactory.com": "slice_factory", + "freeskreen.com": "slimcutmedia", + "slingpic.com": "slingpic", + "smaato.net": "smaato", + "smart4ads.com": "smart4ads", + "sascdn.com": "smart_adserver", + "smartadserver.com": "smart_adserver", + "styria-digital.com": "smart_adserver", + "yoc-adserver.com": "smart_adserver", + "smartcall.kz": "smart_call", + "getsmartcontent.com": "smart_content", + "smartdevicemedia.com": "smart_device_media", + "x.cnt.my": "smart_leads", + "tracking.smartselling.cz": "smart_selling", + "bepolite.eu": "smartad", + "smartbn.ru": "smartbn", + "smartclick.net": "smartclick.net", + "smartclip.net": "smartclip", + "smartcontext.pl": "smartcontext", + "d1n00d49gkbray.cloudfront.net": "smarter_remarketer", + "dhxtx5wtu812h.cloudfront.net": "smarter_remarketer", + "smartertravel.com": "smarter_travel", + "travelsmarter.net": "smarter_travel", + "smct.co": "smarterclick", + "smartertrack.com": "smartertrack", + "smartlink.cool": "smartlink.cool", + "getsmartlook.com": "smartlook", + "smartlook.com": "smartlook", + "smartstream.tv": "smartstream.tv", + "smartsuppchat.com": "smartsupp_chat", + "smi2.net": "smi2.ru", + "smi2.ru": "smi2.ru", + "stat.media": "smi2.ru", + "cdn.smooch.io": "smooch", + "smowtion.com": "smowtion", + "smxindia.in": "smx_ventures", + "smyte.com": "smyte", + "snacktv.de": "snacktv", + "snap.com": "snap", + "snapengage.com": "snap_engage", + "sc-static.net": "snapchat", + "snapchat.com": "snapchat", + "h-bid.com": "snigelweb", + "eu2.snoobi.eu": "snoobi", + "snoobi.com": "snoobi_analytics", + "d346whrrklhco7.cloudfront.net": "snowplow", + "d78fikflryjgj.cloudfront.net": "snowplow", + "dc8xl0ndzn2cb.cloudfront.net": "snowplow", + "playwire.com": "snowplow", + "snplow.net": "snowplow", + "go-mpulse.net": "soasta_mpulse", + "mpstat.us": "soasta_mpulse", + "tiaa-cref.org": "soasta_mpulse", + "sociablelabs.com": "sociable_labs", + "socialamp.com": "social_amp", + "socialannex.com": "social_annex", + "soclminer.com.br": "social_miner", + "duu8lzqdm8tsz.cloudfront.net": "socialbeat", + "ratevoice.com": "socialrms", + "sociaplus.com": "sociaplus.com", + "sociomantic.com": "sociomantic", + "images.sohu.com": "sohu", + "sojern.com": "sojern", + "sokrati.com": "sokrati", + "solads.media": "solads.media", + "solidopinion.com": "solidopinion", + "pixel.solvemedia.com": "solve_media", + "soma2.de": "soma_2", + "mobileadtrading.com": "somoaudience", + "sonobi.com": "sonobi", + "sophus3.com": "sophus3", + "deployads.com": "sortable", + "sndcdn.com": "soundcloud", + "soundcloud.com": "soundcloud", + "provenpixel.com": "sourceknowledge_pixel", + "decenthat.com": "sourcepoint", + "summerhamster.com": "sourcepoint", + "d3pkae9owd2lcf.cloudfront.net": "sovrn", + "lijit.com": "sovrn", + "onscroll.com": "sovrn_viewability_solutions", + "rts.sparkstudios.com": "spark_studios", + "sparkasse.de": "sparkasse.de", + "speakpipe.com": "speakpipe", + "adviva.net": "specific_media", + "specificclick.net": "specific_media", + "specificmedia.com": "specific_media", + "spectate.com": "spectate", + "speedshiftmedia.com": "speed_shift_media", + "speedcurve.com": "speedcurve", + "admarket.entireweb.com": "speedyads", + "affiliate.entireweb.com": "speedyads", + "sa.entireweb.com": "speedyads", + "speee-ad.akamaized.net": "speee", + "sphere.com": "sphere", + "surphace.com": "sphere", + "api.spheremall.com": "spheremall", + "zdwidget3-bs.sphereup.com": "sphereup", + "static.sspicy.ru": "spicy", + "spider.ad": "spider.ad", + "metrics.spiderads.eu": "spider_ads", + "spn.ee": "spinnakr", + "embed.spokenlayer.com": "spokenlayer", + "spongecell.com": "spongecell", + "sponsorads.de": "sponsorads.de", + "sportsbetaffiliates.com.au": "sportsbet_affiliates", + "spot.im": "spot.im", + "spoteffects.net": "spoteffect", + "scdn.co": "spotify", + "spotify.com": "spotify", + "embed.spotify.com": "spotify_embed", + "spotscenered.info": "spotscenered.info", + "spotx.tv": "spotxchange", + "spotxcdn.com": "spotxchange", + "spotxchange.com": "spotxchange", + "spoutable.com": "spoutable", + "cdn.springboardplatform.com": "springboard", + "springserve.com": "springserve", + "pixel.sprinklr.com": "sprinklr", + "stat.sputnik.ru": "sputnik", + "email-match.com": "squadata", + "squarespace.com": "squarespace.com", + "srvtrck.com": "srvtrck.com", + "srvvtrk.com": "srvvtrk.com", + "sstatic.net": "sstatic.net", + "hatena.ne.jp": "st-hatena", + "st-hatena.com": "st-hatena", + "stackadapt.com": "stackadapt", + "stackpathdns.com": "stackpathdns.com", + "stailamedia.com": "stailamedia_com", + "stalluva.pro": "stalluva.pro", + "startappservice.com": "startapp", + "hit.stat24.com": "stat24", + "adstat.4u.pl": "stat4u", + "stat.4u.pl": "stat4u", + "statcounter.com": "statcounter", + "stathat.com": "stathat", + "statisfy.net": "statisfy", + "statsy.net": "statsy.net", + "statuscake.com": "statuscake", + "statuspage.io": "statuspage.io", + "stayfriends.de": "stayfriends.de", + "steelhousemedia.com": "steelhouse", + "steepto.com": "steepto.com", + "stepstone.com": "stepstone.com", + "4stats.de": "stetic", + "stetic.com": "stetic", + "stickyadstv.com": "stickyads", + "stocktwits.com": "stocktwits", + "storify.com": "storify", + "storygize.net": "storygize", + "bizsolutions.strands.com": "strands_recommender", + "strava.com": "strava", + "mailfoogae.appspot.com": "streak", + "streamrail.com": "streamrail.com", + "streamrail.net": "streamrail.com", + "stridespark.com": "stride", + "stripcdn.com": "stripchat.com", + "stripchat.com": "stripchat.com", + "stripe.com": "stripe.com", + "stripe.network": "stripe.com", + "stripst.com": "stripst.com", + "interactivemedia.net": "stroer_digital_media", + "stroeerdigitalgroup.de": "stroer_digital_media", + "stroeerdigitalmedia.de": "stroer_digital_media", + "stroeerdp.de": "stroer_digital_media", + "stroeermediabrands.de": "stroer_digital_media", + "spklw.com": "strossle", + "sprinklecontent.com": "strossle", + "strossle.it": "strossle", + "struq.com": "struq", + "stumble-upon.com": "stumbleupon_widgets", + "stumbleupon.com": "stumbleupon_widgets", + "su.pr": "stumbleupon_widgets", + "sub2tech.com": "sub2", + "ayads.co": "sublime_skinz", + "suggest.io": "suggest.io", + "sumologic.com": "sumologic.com", + "sumo.com": "sumome", + "sumome.com": "sumome", + "sundaysky.com": "sundaysky", + "supercounters.com": "supercounters", + "superfastcdn.com": "superfastcdn.com", + "socdm.com": "supership", + "supplyframe.com": "supplyframe", + "surfingbird.ru": "surf_by_surfingbird", + "px.surveywall-api.survata.com": "survata", + "cdn.sweettooth.io": "sweettooth", + "swiftypecdn.com": "swiftype", + "swisscom.ch": "swisscom", + "myswitchads.com": "switch_concepts", + "switchadhub.com": "switch_concepts", + "switchads.com": "switch_concepts", + "switchafrica.com": "switch_concepts", + "shopximity.com": "swoop", + "swoop.com": "swoop", + "analytics-cdn.sykescottages.co.uk": "sykes", + "norton.com": "symantec", + "seal.verisign.com": "symantec", + "symantec.com": "symantec", + "d.hodes.com": "symphony_talent", + "technorati.com": "synacor", + "technoratimedia.com": "synacor", + "cn.clickable.net": "syncapse", + "synergy-e.com": "synergy-e", + "sdp-campaign.de": "t-mobile", + "t-online.de": "t-mobile", + "telekom-dienste.de": "t-mobile", + "telekom.com": "t-mobile", + "telekom.de": "t-mobile", + "toi.de": "t-mobile", + "t8cdn.com": "t8cdn.com", + "tableteducation.com": "tableteducation.com", + "basebanner.com": "taboola", + "taboola.com": "taboola", + "taboolasyndication.com": "taboola", + "tacoda.net": "tacoda", + "commander1.com": "tag_commander", + "tagcommander.com": "tag_commander", + "tags.tagcade.com": "tagcade", + "taggify.net": "taggify", + "taggyad.jp": "taggy", + "levexis.com": "tagman", + "tailtarget.com": "tail_target", + "tailsweep.com": "tailsweep", + "tamedia.ch": "tamedia.ch", + "tanx.com": "tanx", + "alipcsec.com": "taobao", + "tapad.com": "tapad", + "theblogfrog.com": "tapinfluence", + "tarafdari.com": "tarafdari", + "target2sell.com": "target_2_sell", + "trackmytarget.com": "target_circle", + "cdn.targetfuel.com": "target_fuel", + "tawk.to": "tawk", + "tbn.ru": "tbn.ru", + "tchibo-content.de": "tchibo_de", + "tchibo.de": "tchibo_de", + "tdsrmbl.net": "tdsrmbl_net", + "teads.tv": "teads", + "tealeaf.ibmcloud.com": "tealeaf", + "tealium.com": "tealium", + "tealium.hs.llnwd.net": "tealium", + "tealiumiq.com": "tealium", + "tiqcdn.com": "tealium", + "teaser.cc": "teaser.cc", + "emailretargeting.com": "tedemis", + "tracking.dsmmadvantage.com": "teletech", + "tenderapp.com": "tender", + "tensitionschoo.club": "tensitionschoo.club", + "watch.teroti.com": "teroti", + "webterren.com": "terren", + "teufel.de": "teufel.de", + "theadex.com": "the_adex", + "connect.decknetwork.net": "the_deck", + "gu-web.net": "the_guardian", + "guardianapps.co.uk": "the_guardian", + "guim.co.uk": "the_guardian", + "deepthought.online": "the_reach_group", + "reachgroup.com": "the_reach_group", + "redintelligence.net": "the_reach_group", + "thesearchagency.net": "the_search_agency", + "thesun.co.uk": "the_sun", + "w-x.co": "the_weather_company", + "weather.com": "the_weather_company", + "wfxtriggers.com": "the_weather_company", + "tmdb.org": "themoviedb", + "thinglink.com": "thinglink", + "online-metrix.net": "threatmetrix", + "tidbit.co.in": "tidbit", + "code.tidio.co": "tidio", + "widget-v4.tidiochat.com": "tidio", + "analytics.tiktok.com": "tiktok_analytics", + "optimized.by.tiller.co": "tiller", + "vip.timezonedb.com": "timezondb", + "npttech.com": "tinypass", + "tinypass.com": "tinypass", + "tisoomi-services.com": "tisoomi", + "ad.tlvmedia.com": "tlv_media", + "ads.tlvmedia.com": "tlv_media", + "tag.tlvmedia.com": "tlv_media", + "research-int.se": "tns", + "sesamestats.com": "tns", + "spring-tns.net": "tns", + "statistik-gallup.net": "tns", + "tns-cs.net": "tns", + "tns-gallup.dk": "tns", + "tomnewsupdate.info": "tomnewsupdate.info", + "tfag.de": "tomorrow_focus", + "srv.clickfuse.com": "tonefuse", + "toplist.cz": "toplist.cz", + "toponclick.com": "toponclick_com", + "topsy.com": "topsy", + "insight.torbit.com": "torbit", + "toro-tags.com": "toro", + "toroadvertising.com": "toro", + "toroadvertisingmedia.com": "toro", + "tororango.com": "tororango.com", + "i.total-media.net": "total_media", + "inq.com": "touchcommerce", + "tovarro.com": "tovarro.com", + "rialpay.com": "tp-cdn.com", + "tp-cdn.com": "tp-cdn.com", + "kiwe.io": "tracc.it", + "tracc.it": "tracc.it", + "ipnoid.com": "tracemyip", + "tracemyip.org": "tracemyip", + "d2gfdmu30u15x7.cloudfront.net": "traceview", + "tracelytics.com": "traceview", + "cdn.trackduck.com": "track_duck", + "d2zah9y47r7bi2.cloudfront.net": "trackjs", + "dl1d2m8ri9v3j.cloudfront.net": "trackjs", + "trackjs.com": "trackjs", + "conversionlab.trackset.com": "trackset_conversionlab", + "trackuity.com": "trackuity", + "adsrvr.org": "tradedesk", + "tradedoubler.com": "tradedoubler", + "tradelab.fr": "tradelab", + "tradetracker.net": "tradetracker", + "cdntrf.com": "traffective", + "traffective.com": "traffective", + "my.trafficfuel.com": "traffic_fuel", + "trafficrevenue.net": "traffic_revenue", + "trafficstars.com": "traffic_stars", + "tsyndicate.com": "traffic_stars", + "trafficbroker.com": "trafficbroker", + "trafficfabrik.com": "trafficfabrik.com", + "trafficfactory.biz": "trafficfactory", + "trafficforce.com": "trafficforce", + "traffichaus.com": "traffichaus", + "trafficjunky.net": "trafficjunky", + "traffiliate.com": "traffiliate", + "storage.trafic.ro": "trafic", + "trafmag.com": "trafmag.com", + "api.transcend.io": "transcend", + "cdn.transcend.io": "transcend", + "telemetry.transcend.io": "transcend_telemetry", + "backoffice.transmatico.com": "transmatic", + "travelaudience.com": "travel_audience", + "trbo.com": "trbo", + "treasuredata.com": "treasuredata", + "scanscout.com": "tremor_video", + "tremorhub.com": "tremor_video", + "tremormedia.com": "tremor_video", + "tremorvideo.com": "tremor_video", + "videohub.tv": "tremor_video", + "s.tcimg.com": "trendcounter", + "tcimg.com": "trendcounter", + "trendemon.com": "trendemon", + "exponential.com": "tribal_fusion", + "tribalfusion.com": "tribal_fusion", + "tribl.io": "triblio", + "api.temails.com": "trigger_mail_marketing", + "t.myvisitors.se": "triggerbee", + "jscache.com": "tripadvisor", + "tacdn.com": "tripadvisor", + "tamgrt.com": "tripadvisor", + "tripadvisor.co.uk": "tripadvisor", + "tripadvisor.com": "tripadvisor", + "tripadvisor.de": "tripadvisor", + "3lift.com": "triplelift", + "d3iwjrnl4m67rd.cloudfront.net": "triplelift", + "triplelift.com": "triplelift", + "static.triptease.io": "triptease", + "andomedia.com": "triton_digital", + "tritondigital.com": "triton_digital", + "revelations.trovus.co.uk": "trovus_revelations", + "trsv3.com": "trsv3.com", + "truefitcorp.com": "true_fit", + "tru.am": "trueanthem", + "adlegend.com": "trueffect", + "addoer.com": "truehits.net", + "truehits.in.th": "truehits.net", + "truehits.net": "truehits.net", + "trumba.com": "trumba", + "truoptik.com": "truoptik", + "trustarc.com": "trustarc", + "truste.com": "trustarc", + "consent.truste.com": "truste_consent", + "choices-or.truste.com": "truste_notice", + "choices.truste.com": "truste_notice", + "privacy-policy.truste.com": "truste_seal", + "trustedshops.com": "trusted_shops", + "trustev.com": "trustev", + "secure.comodo.net": "trustlogo", + "trustlogo.com": "trustlogo", + "trustpilot.com": "trustpilot", + "trustwave.com": "trustwave.com", + "tubecorporate.com": "tubecorporate", + "tubecup.org": "tubecup.org", + "tubemogul.com": "tubemogul", + "sre-perim.com": "tumblr_analytics", + "txmblr.com": "tumblr_analytics", + "platform.tumblr.com": "tumblr_buttons", + "lib.tunein.com": "tune_in", + "adagio.turboadv.com": "turbo", + "turn.com": "turn_inc.", + "ngtv.io": "turner", + "turner.com": "turner", + "warnermedia.com": "turner", + "turnsocial.com": "turnsocial", + "turnto.com": "turnto", + "tvsquared.com": "tvsquared.com", + "tweetboard.com": "tweetboard", + "tweetmeme.com": "tweetmeme", + "c4tw.net": "twenga", + "twiago.com": "twiago", + "twinedigital.go2cloud.org": "twine", + "ext-twitch.tv": "twitch.tv", + "twitch.tv": "twitch.tv", + "jtvnw.net": "twitch_cdn", + "ttvnw.net": "twitch_cdn", + "twitchcdn.net": "twitch_cdn", + "twitchsvc.net": "twitch_cdn", + "t.co": "twitter", + "twimg.com": "twitter", + "twitter.com": "twitter", + "ads-twitter.com": "twitter_ads", + "analytics.twitter.com": "twitter_analytics", + "tellapart.com": "twitter_for_business", + "syndication.twitter.com": "twitter_syndication", + "twittercounter.com": "twittercounter", + "twyn.com": "twyn", + "txxx.com": "txxx.com", + "tynt.com": "tynt", + "typeform.com": "typeform", + "typepad.com": "typepad_stats", + "typography.com": "typography.com", + "tyroodirect.com": "tyroo", + "tyroodr.com": "tyroo", + "tzetze.it": "tzetze", + "ubersetzung-app.com": "ubersetzung-app.com", + "aralego.net": "ucfunnel", + "ucfunnel.com": "ucfunnel", + "at.ua": "ucoz", + "do.am": "ucoz", + "ucoz.net": "ucoz", + "ad-api-v01.uliza.jp": "uliza", + "api.umbel.com": "umbel", + "umebiggestern.club": "umebiggestern.club", + "unanimis.co.uk": "unanimis", + "d3pkntwtp2ukl5.cloudfront.net": "unbounce", + "t.unbounce.com": "unbounce", + "d21gpk1vhmjuf5.cloudfront.net": "unbxd", + "tracker.unbxdapi.com": "unbxd", + "under-box.com": "under-box.com", + "undercomputer.com": "undercomputer.com", + "udmserve.net": "underdog_media", + "undertone.com": "undertone", + "roitesting.com": "unica", + "unica.com": "unica", + "unister-adservices.com": "unister", + "unister-gmbh.de": "unister", + "uadx.com": "unite", + "nonstoppartner.net": "united_digital_group", + "tifbs.net": "united_internet_media_gmbh", + "ui-portal.de": "united_internet_media_gmbh", + "uimserv.net": "united_internet_media_gmbh", + "univide.com": "univide", + "unpkg.com": "unpkg.com", + "unrulymedia.com": "unruly_media", + "src.kitcode.net": "untriel_finger_printing", + "s.clickability.com": "upland_clickability_beacon", + "uppr.de": "uppr.de", + "upravel.com": "upravel.com", + "upsellit.com": "upsellit", + "kontagent.net": "upsight", + "app.uptain.de": "uptain", + "uptolike.com": "uptolike.com", + "uptrends.com": "uptrends", + "urban-media.com": "urban-media.com", + "urbanairship.com": "urban_airship", + "mobile.usabilitytools.com": "usability_tools", + "usabilla.com": "usabilla", + "usemax.de": "usemax", + "usemaxserver.de": "usemax", + "usemessages.com": "usemessages.com", + "api.usercycle.com": "usercycle", + "userdive.com": "userdive", + "userecho.com": "userecho", + "dq4irj27fs462.cloudfront.net": "userlike.com", + "userlike-cdn-widgets.s3-eu-west-1.amazonaws.com": "userlike.com", + "userlike.com": "userlike.com", + "contactusplus.com": "userpulse", + "user-pulse.appspot.com": "userpulse", + "userpulse.com": "userpulse", + "userreplay.net": "userreplay", + "sdsbucket.s3.amazonaws.com": "userreport", + "userreport.com": "userreport", + "dtkm4pd19nw6z.cloudfront.net": "userrules", + "api.usersnap.com": "usersnap", + "d3mvnvhjmkxpjz.cloudfront.net": "usersnap", + "uservoice.com": "uservoice", + "userzoom.com": "userzoom.com", + "usocial.pro": "usocial", + "utarget.ru": "utarget", + "uuidksinc.net": "uuidksinc.net", + "v12group.com": "v12_group", + "vacaneedasap.com": "vacaneedasap.com", + "ads.brand.net": "valassis", + "vdrn.redplum.com": "valassis", + "api.searchlinks.com": "validclick", + "js.searchlinks.com": "validclick", + "vinsight.de": "valiton", + "valueclick.net": "valueclick_media", + "valuecommerce.com": "valuecommerce", + "valuedopinions.co.uk": "valued_opinions", + "buzzparadise.com": "vanksen", + "vmmpxl.com": "varick_media_management", + "vcita.com": "vcita", + "tracking.vcommission.com": "vcommission", + "vdopia.com": "vdopia", + "veinteractive.com": "ve_interactive", + "vee24.com": "vee24", + "velocecdn.com": "velocecdn.com", + "mdcn.mobi": "velti_mgage_visualize", + "velti.com": "velti_mgage_visualize", + "vendemore.com": "vendemore", + "venturead.com": "venturead.com", + "api.venyoo.ru": "venyoo", + "veoxa.com": "veoxa", + "vergic.com": "vergic.com", + "d3qxef4rp70elm.cloudfront.net": "vero", + "getvero.com": "vero", + "verticalacuity.com": "vertical_acuity", + "roi.vertical-leap.co.uk": "vertical_leap", + "cts.vresp.com": "verticalresponse", + "verticalscope.com": "verticalscope", + "ads.vertoz.com": "vertoz", + "banner.vrtzads.com": "vertoz", + "veruta.com": "veruta", + "vrvm.com": "verve_mobile", + "vgwort.de": "vg_wort", + "digitaltarget.ru": "vi", + "btg.mtvnservices.com": "viacom_tag_container", + "viafoura.com": "viafoura", + "viafoura.net": "viafoura", + "intellitxt.com": "vibrant_ads", + "vicomi.com": "vicomi.com", + "vidazoo.com": "vidazoo.com", + "module-videodesk.com": "video_desk", + "vidtok.ru": "video_potok", + "videoadex.com": "videoadex.com", + "tidaltv.com": "videology", + "videonow.ru": "videonow", + "videoplayerhub.com": "videoplayerhub.com", + "videoplaza.tv": "videoplaza", + "kweb.videostep.com": "videostep", + "content.vidgyor.com": "vidgyor", + "vidible.tv": "vidible", + "assets.vidora.com": "vidora", + "vietad.vn": "vietad", + "viglink.com": "viglink", + "vigo.one": "vigo", + "vigo.ru": "vigo", + "vimeo.com": "vimeo", + "vimeocdn.com": "vimeo", + "vindicosuite.com": "vindico_group", + "vinted.net": "vinted", + "viraladnetwork.net": "viral_ad_network", + "app.viral-loops.com": "viral_loops", + "viralgains.com": "viralgains", + "viralmint.com": "viralmint", + "virgul.com": "virgul", + "ssp.virool.com": "virool_player", + "virtusize.com": "virtusize", + "viewablemedia.net": "visible_measures", + "visiblemeasures.com": "visible_measures", + "visioncriticalpanels.com": "vision_critical", + "visitstreamer.com": "visit_streamer", + "visitortracklog.com": "visitortrack", + "visitorville.com": "visitorville", + "d2hkbi3gan6yg6.cloudfront.net": "visscore", + "myvisualiq.net": "visual_iq", + "visualrevenue.com": "visual_revenue", + "d5phz18u4wuww.cloudfront.net": "visual_website_optimizer", + "visualwebsiteoptimizer.com": "visual_website_optimizer", + "wingify.com": "visual_website_optimizer", + "vdna-assets.com": "visualdna", + "visualdna.com": "visualdna", + "visualstudio.com": "visualstudio.com", + "id-visitors.com": "visualvisitor", + "vi-tag.net": "vivalu", + "vivistats.com": "vivistats", + "vizury.com": "vizury", + "vizzit.se": "vizzit", + "cdn-vk.com": "vk.com", + "vk-analytics.com": "vk.com", + "vkuservideo.net": "vk.com", + "userapi.com": "vkontakte", + "vk.com": "vkontakte", + "vkontakte.ru": "vkontakte", + "vntsm.com": "vntsm.com", + "vodafone.de": "vodafone.de", + "voicefive.com": "voicefive", + "volusion.com": "volusion_chat", + "cwkuki.com": "voluum", + "volumtrk.com": "voluum", + "voluumtrk3.com": "voluum", + "vooxe.com": "vooxe.com", + "vorwerk.de": "vorwerk.de", + "vox-cdn.com": "vox", + "embed.voxus.tv": "voxus", + "voxus-targeting-voxusmidia.netdna-ssl.com": "voxus", + "c-dsp.vpadn.com": "vpon", + "tools.vpscash.nl": "vpscash", + "vtracy.de": "vtracy.de", + "vuukle.com": "vuukle", + "view.vzaar.com": "vzaar", + "w3counter.com": "w3counter", + "w3roi.com": "w3roi", + "contentwidgets.net": "wahoha", + "wahoha.com": "wahoha", + "walkme.com": "walkme.com", + "wsod.com": "wall_street_on_demand", + "walmart.com": "walmart", + "wamcash.com": "wamcash", + "cdn-saveit.wanelo.com": "wanelo", + "static.warp.ly": "warp.ly", + "way2traffic.com": "way2traffic", + "wayfair.com": "wayfair_com", + "wdr.de": "wdr.de", + "web-stat.com": "web-stat", + "web.de": "web.de", + "webde.de": "web.de", + "webstat.net": "web.stat", + "ssl.webserviceaward.com": "web_service_award", + "webtraxs.com": "web_traxs", + "wipe.de": "web_wipe_analytics", + "webads.nl": "webads", + "tr.webantenna.info": "webantenna", + "webclicks24.com": "webclicks24_com", + "webclose.net": "webclose.net", + "webcollage.net": "webcollage", + "goutee.top": "webedia", + "mediaathay.org.uk": "webedia", + "wbdx.fr": "webedia", + "webeffective.keynote.com": "webeffective", + "widgets.webengage.com": "webengage", + "webgains.com": "webgains", + "webgozar.com": "webgozar", + "webgozar.ir": "webgozar", + "webhelpje.be": "webhelpje", + "webhelpje.nl": "webhelpje", + "webleads-tracker.com": "webleads_tracker", + "automation.webmecanik.com": "webmecanik", + "adrcdn.com": "weborama", + "adrcntr.com": "weborama", + "weborama.com": "weborama", + "weborama.fr": "weborama", + "webprospector.de": "webprospector", + "webstat.com": "webstat", + "webstat.se": "webstat.se", + "stat.webtrack.biz": "webtrack", + "webtraffic.no": "webtraffic", + "webtraffic.se": "webtraffic", + "d1r27qvpjiaqj3.cloudfront.net": "webtrekk", + "mateti.net": "webtrekk", + "wbtrk.net": "webtrekk", + "wcfbc.net": "webtrekk", + "webtrekk-asia.net": "webtrekk", + "webtrekk.com": "webtrekk", + "webtrekk.de": "webtrekk", + "webtrekk.net": "webtrekk", + "wt-eu02.net": "webtrekk", + "wt-safetag.com": "webtrekk", + "webtrends.com": "webtrends", + "webtrendslive.com": "webtrends", + "rd.clickshift.com": "webtrends_ads", + "web-visor.com": "webvisor", + "weebly.com": "weebly_ads", + "widget.weibo.com": "weibo_widget", + "westlotto.com": "westlotto_com", + "wetter.com": "wetter_com", + "wettercomassets.com": "wetter_com", + "whatsbroadcast.com": "whatbroadcast", + "amung.us": "whos.amung.us", + "whoson.com": "whoson", + "api.wibbitz.com": "wibbitz", + "cdn4.wibbitz.com": "wibbitz", + "cdn.wibiya.com": "wibiya_toolbar", + "predictad.com": "widdit", + "widerplanet.com": "widerplanet", + "widespace.com": "widespace", + "widgetserver.com": "widgetbox", + "3c45d848d99.se": "wiget_media", + "wigetmedia.com": "wiget_media", + "tracker.wigzopush.com": "wigzo", + "wikia-services.com": "wikia-services.com", + "wikia-beacon.com": "wikia_beacon", + "nocookie.net": "wikia_cdn", + "wikimedia.org": "wikimedia.org", + "wikipedia.org": "wikimedia.org", + "wikiquote.org": "wikimedia.org", + "tracking.winaffiliates.com": "winaffiliates", + "api.wipmania.com": "wipmania", + "col1.wiqhit.com": "wiqhit", + "wirecard.com": "wirecard", + "wirecard.de": "wirecard", + "leadlab.click": "wiredminds", + "wiredminds.com": "wiredminds", + "wiredminds.de": "wiredminds", + "adtotal.pl": "wirtualna_polska", + "wisepops.com": "wisepops", + "cdn.wishpond.net": "wishpond", + "wistia.com": "wistia", + "wistia.net": "wistia", + "parastorage.com": "wix.com", + "wix.com": "wix.com", + "public.wixab-cloud.com": "wixab", + "wixmp.com": "wixmp", + "wnzmauurgol.com": "wnzmauurgol.com", + "wonderpush.com": "wonderpush", + "woopic.com": "woopic.com", + "woopra.com": "woopra", + "pubmine.com": "wordpress_ads", + "w.org": "wordpress_stats", + "wordpress.com": "wordpress_stats", + "wp.com": "wordpress_stats", + "tracker.wordstream.com": "wordstream", + "worldnaturenet.xyz": "worldnaturenet_xyz", + "wp.pl": "wp.pl", + "wpimg.pl": "wp.pl", + "wpengine.com": "wp_engine", + "clickanalyzer.jp": "writeup_clickanalyzer", + "wurfl.io": "wurfl", + "wwwpromoter.com": "wwwpromoter", + "imgwykop.pl": "wykop", + "wykop.pl": "wykop", + "wysistat.com": "wysistat.com", + "wysistat.net": "wysistat.com", + "wywy.com": "wywy.com", + "wywyuserservice.com": "wywy.com", + "cdn.x-lift.jp": "x-lift", + "xapads.com": "xapads", + "xen-media.com": "xen-media.com", + "xfreeservice.com": "xfreeservice.com", + "xhamster.com": "xhamster", + "xhamsterlive.com": "xhamster", + "xhamsterpremium.com": "xhamster", + "xhcdn.com": "xhamster", + "xing-share.com": "xing", + "xing.com": "xing", + "xmediaclicks.com": "xmediaclicks", + "xnxx-cdn.com": "xnxx_cdn", + "xplosion.de": "xplosion", + "xtendmedia.com": "xtend", + "xvideos-cdn.com": "xvideos_com", + "xvideos.com": "xvideos_com", + "xxxlshop.de": "xxxlshop.de", + "xxxlutz.de": "xxxlutz", + "adx.com.ru": "yabbi", + "yabbi.me": "yabbi", + "yabuka.com": "yabuka", + "tumblr.com": "yahoo", + "yahoo.com": "yahoo", + "yahooapis.com": "yahoo", + "yimg.com": "yahoo", + "ads.yahoo.com": "yahoo_ad_exchange", + "yads.yahoo.com": "yahoo_ad_exchange", + "yieldmanager.com": "yahoo_ad_exchange", + "pr-bh.ybp.yahoo.com": "yahoo_ad_manager", + "analytics.yahoo.com": "yahoo_analytics", + "np.lexity.com": "yahoo_commerce_central", + "storage-yahoo.jp": "yahoo_japan_retargeting", + "yahoo.co.jp": "yahoo_japan_retargeting", + "yahooapis.jp": "yahoo_japan_retargeting", + "yimg.jp": "yahoo_japan_retargeting", + "yjtag.jp": "yahoo_japan_retargeting", + "ov.yahoo.co.jp": "yahoo_overture", + "overture.com": "yahoo_overture", + "luminate.com": "yahoo_small_business", + "pixazza.com": "yahoo_small_business", + "awaps.yandex.ru": "yandex", + "d31j93rd8oukbv.cloudfront.net": "yandex", + "webvisor.org": "yandex", + "yandex.net": "yandex", + "yandex.ru": "yandex", + "yastatic.net": "yandex", + "yandex.st": "yandex.api", + "yandexadexchange.net": "yandex_adexchange", + "metabar.ru": "yandex_advisor", + "an.webvisor.org": "yandex_direct", + "an.yandex.ru": "yandex_direct", + "bs.yandex.ru": "yandex_direct", + "mc.yandex.ru": "yandex_metrika", + "passport.yandex.ru": "yandex_passport", + "yapfiles.ru": "yapfiles.ru", + "yashi.com": "yashi", + "ad.adserverplus.com": "ybrant_media", + "player.sambaads.com": "ycontent", + "cdn.yektanet.com": "yektanet", + "fetch.yektanet.com": "yektanet", + "yengo.com": "yengo", + "yengointernational.com": "yengo", + "link.p0.com": "yesmail", + "adsrevenue.net": "yesup_advertising", + "infinityads.com": "yesup_advertising", + "momentsharing.com": "yesup_advertising", + "multipops.com": "yesup_advertising", + "onlineadultadvertising.com": "yesup_advertising", + "paypopup.com": "yesup_advertising", + "popupxxx.com": "yesup_advertising", + "xtargeting.com": "yesup_advertising", + "xxxwebtraffic.com": "yesup_advertising", + "app.yesware.com": "yesware", + "yldbt.com": "yieldbot", + "yieldify.com": "yieldify", + "yieldlab.net": "yieldlab", + "yieldlove-ad-serving.net": "yieldlove", + "yieldlove.com": "yieldlove", + "yieldmo.com": "yieldmo", + "254a.com": "yieldr", + "collect.yldr.io": "yieldr_air", + "yieldsquare.com": "yieldsquare", + "analytics-sdk.yle.fi": "yle", + "yllix.com": "yllixmedia", + "ymetrica1.com": "ymetrica1.com", + "ymzrrizntbhde.com": "ymzrrizntbhde.com", + "yoapp.s3.amazonaws.com": "yo_button", + "natpal.com": "yodle", + "analytics.yola.net": "yola_analytics", + "pixel.yola.net": "yola_analytics", + "delivery.yomedia.vn": "yomedia", + "yoochoose.net": "yoochoose.net", + "yotpo.com": "yotpo", + "yottaa.net": "yottaa", + "yottlyscript.com": "yottly", + "api.youcanbook.me": "youcanbookme", + "youcanbook.me": "youcanbookme", + "player.youku.com": "youku", + "youporn.com": "youporn", + "ypncdn.com": "youporn", + "googlevideo.com": "youtube", + "youtube-nocookie.com": "youtube", + "youtube.com": "youtube", + "ytimg.com": "youtube", + "c.ypcdn.com": "yp", + "i1.ypcdn.com": "yp", + "yellowpages.com": "yp", + "prod-js.aws.y-track.com": "ysance", + "y-track.com": "ysance", + "yume.com": "yume", + "yumenetworks.com": "yume,_inc.", + "gravityrd-services.com": "yusp", + "api.zadarma.com": "zadarma", + "zalan.do": "zalando_de", + "zalando.de": "zalando_de", + "ztat.net": "zalando_de", + "zaloapp.com": "zalo", + "zanox-affiliate.de": "zanox", + "zanox.com": "zanox", + "zanox.ws": "zanox", + "zaparena.com": "zaparena", + "zapunited.com": "zaparena", + "track.zappos.com": "zappos", + "zdassets.com": "zdassets.com", + "zebestof.com": "zebestof.com", + "zedo.com": "zedo", + "zemanta.com": "zemanta", + "zencdn.net": "zencoder", + "zendesk.com": "zendesk", + "zergnet.com": "zergnet", + "zero.kz": "zero.kz", + "app.insightgrit.com": "zeta", + "app.ubertags.com": "zeta", + "cdn.boomtrain.com": "zeta", + "events.api.boomtrain.com": "zeta", + "rfihub.com": "zeta", + "rfihub.net": "zeta", + "ru4.com": "zeta", + "xplusone.com": "zeta", + "zeusclicks.com": "zeusclicks", + "webtest.net": "ziff_davis", + "zdbb.net": "ziff_davis", + "ziffdavis.com": "ziff_davis", + "ziffdavisinternational.com": "ziff_davis", + "ziffprod.com": "ziff_davis", + "ziffstatic.com": "ziff_davis", + "analytics.ziftsolutions.com": "zift_solutions", + "zimbio.com": "zimbio.com", + "api.zippyshare.com": "zippyshare_widget", + "zmags.com": "zmags", + "zmctrack.net": "zmctrack.net", + "zog.link": "zog.link", + "js.zohostatic.eu": "zoho", + "zononi.com": "zononi.com", + "zopim.com": "zopim", + "zukxd6fkxqn.com": "zukxd6fkxqn.com", + "zwaar.net": "zwaar", + "zwaar.org": "zwaar", + "extend.tv": "zypmedia", + "slack.com": "slack", + "slackb.com": "slack", + "slack-edge.com": "slack", + "slack-imgs.com": "slack", + "adguard.app": "adguard", + "adguard.io": "adguard", + "adguard.org": "adguard", + "adguard-dns.com": "adguard", + "adguard-dns.io": "adguard", + "adguard-vpn.com": "adguard", + "adguardvpn.com": "adguard", + "adguard-vpn.online": "adguard", + "nflximg.com": "netflix", + "element.io": "element", + "riot.im": "element", + "akadns.net": "akamai_technologies", + "akamaiedge.net": "akamai_technologies", + "apple.news": "apple", + "apple-dns.net": "apple", + "aaplimg.com": "apple", + "icloud.com": "apple", + "icloud-content.com": "apple", + "mzstatic.com": "apple", + "matrix.org": "matrix", + "l-msedge.net": "microsoft", + "iadsdk.apple.com": "apple_ads", + "showrss.info": "showrss", + "solaredge.com": "solaredge", + "crashlytics.com": "crashlytics", + "flurry.com": "flurry", + "hockeyapp.net": "hockeyapp", + "app-measurement.com": "firebase", + "appmetrica.yandex.com": "yandex_appmetrica", + "letsencrypt.org": "lets_encrypt", + "lencr.org": "lets_encrypt", + "mobileapptracking.com": "branch", + "plex.tv": "plex", + "plex.direct": "plex", + "edgecastcdn.net": "markmonitor", + "appcenter.ms": "appcenter", + "unityads.unity3d.com": "unity_ads", + "azure.com": "azure", + "trafficmanager.net": "azure", + "hotmail.com": "outlook", + "bttn.io": "button", + "pki.goog": "google_trust_services", + "xtracloud.net": "qualcomm", + "qualcomm.com": "qualcomm" + } +} \ No newline at end of file diff --git a/go.mod b/go.mod index cf15d902..2d54d4c4 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/AdguardTeam/AdGuardHome -go 1.18 +go 1.19 require ( - // TODO(a.garipov): Return to a tagged version once DNS64 is in. - github.com/AdguardTeam/dnsproxy v0.46.6-0.20230125113741-98cb8a899e49 + // TODO(a.garipov): Use v0.48.0 when it's released. + github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239 github.com/AdguardTeam/golibs v0.11.4 github.com/AdguardTeam/urlfilter v0.16.1 github.com/NYTimes/gziphandler v1.1.1 @@ -19,27 +19,26 @@ require ( github.com/google/uuid v1.3.0 github.com/insomniacslk/dhcp v0.0.0-20221215072855-de60144f33f8 github.com/kardianos/service v1.2.2 - github.com/lucas-clemente/quic-go v0.31.1 github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 github.com/mdlayher/netlink v1.7.1 // TODO(a.garipov): This package is deprecated; find a new one or use // our own code for that. Perhaps, use gopacket. github.com/mdlayher/raw v0.1.0 github.com/miekg/dns v1.1.50 + github.com/quic-go/quic-go v0.32.0 github.com/stretchr/testify v1.8.1 github.com/ti-mo/netfilter v0.5.0 go.etcd.io/bbolt v1.3.7 - golang.org/x/crypto v0.5.0 - golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 - golang.org/x/net v0.5.0 - golang.org/x/sys v0.4.0 - gopkg.in/natefinch/lumberjack.v2 v2.0.0 + golang.org/x/crypto v0.6.0 + golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb + golang.org/x/net v0.7.0 + golang.org/x/sys v0.5.0 + gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 howett.net/plist v1.0.0 ) require ( - github.com/BurntSushi/toml v1.1.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 // indirect github.com/ameshkov/dnsstamps v1.0.3 // indirect @@ -48,20 +47,22 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/golang/mock v1.6.0 // indirect - github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f // indirect + github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect github.com/josharian/native v1.1.0 // indirect - github.com/marten-seemann/qpack v0.3.0 // indirect - github.com/marten-seemann/qtls-go1-18 v0.1.4 // indirect - github.com/marten-seemann/qtls-go1-19 v0.1.2 // indirect github.com/mdlayher/packet v1.1.1 // indirect github.com/mdlayher/socket v0.4.0 // indirect - github.com/onsi/ginkgo/v2 v2.8.0 // indirect + github.com/onsi/ginkgo/v2 v2.8.1 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/u-root/uio v0.0.0-20221213070652-c3537552635f // indirect - golang.org/x/mod v0.7.0 // indirect + github.com/quic-go/qpack v0.4.0 // indirect + github.com/quic-go/qtls-go1-18 v0.2.0 // indirect + github.com/quic-go/qtls-go1-19 v0.2.0 // indirect + github.com/quic-go/qtls-go1-20 v0.1.0 // indirect + github.com/u-root/uio v0.0.0-20230215032506-9aa6f7e2d72c // indirect + golang.org/x/mod v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/text v0.6.0 // indirect - golang.org/x/tools v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + golang.org/x/tools v0.6.0 // indirect ) diff --git a/go.sum b/go.sum index a5b49b33..68a4b1ab 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/AdguardTeam/dnsproxy v0.46.6-0.20230125113741-98cb8a899e49 h1:TDZsKB8BrKA2na6p5l20BvEu3MmgOWhIfTANz5laFuE= -github.com/AdguardTeam/dnsproxy v0.46.6-0.20230125113741-98cb8a899e49/go.mod h1:ZEkTmTJ2XInT3aVy0mHtEnSWSclpHHj/9hfNXDuAk5k= +github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239 h1:n1oOiywOvdeqWLto809bK1rK1EPDkpaSfT/r1OiCVaQ= +github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239/go.mod h1:+Sdi5ISrjDFbeCsKNqzcC1Ag7pJ5Hh9y+UBNb3dfqJ4= github.com/AdguardTeam/golibs v0.4.0/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4= github.com/AdguardTeam/golibs v0.10.4/go.mod h1:rSfQRGHIdgfxriDDNgNJ7HmE5zRoURq8R+VdR81Zuzw= github.com/AdguardTeam/golibs v0.11.4 h1:IltyvxwCTN+xxJF5sh6VadF8Zfbf8elgCm9dgijSVzM= @@ -7,8 +7,6 @@ github.com/AdguardTeam/golibs v0.11.4/go.mod h1:87bN2x4VsTritptE3XZg9l8T6gznWsIx github.com/AdguardTeam/gomitmproxy v0.2.0/go.mod h1:Qdv0Mktnzer5zpdpi5rAwixNJzW2FN91LjKJCkVbYGU= github.com/AdguardTeam/urlfilter v0.16.1 h1:ZPi0rjqo8cQf2FVdzo6cqumNoHZx2KPXj2yZa1A5BBw= github.com/AdguardTeam/urlfilter v0.16.1/go.mod h1:46YZDOV1+qtdRDuhZKVPSSp7JWWes0KayqHrKAFBdEI= -github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= @@ -57,8 +55,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= -github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f h1:gl1DCiSk+mrXXBGPm6CEeS2MkJuMVzAOrXg34oVj1QI= -github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904 h1:4/hN5RUoecvl+RmJRE2YxKWtnnQls6rQjjW5oV7qg2U= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= github.com/google/renameio v1.0.1 h1:Lh/jXZmvZxb0BBeSY5VKEfidcbcbenKjZFzM/q0fSeU= github.com/google/renameio v1.0.1/go.mod h1:t/HQoYBZSsWSNK35C6CO/TpPLDVWvxOHboWUAweKUpk= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -85,14 +83,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lucas-clemente/quic-go v0.31.1 h1:O8Od7hfioqq0PMYHDyBkxU2aA7iZ2W9pjbrWuja2YR4= -github.com/lucas-clemente/quic-go v0.31.1/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= -github.com/marten-seemann/qpack v0.3.0 h1:UiWstOgT8+znlkDPOg2+3rIuYXJ2CnGDkGUXN6ki6hE= -github.com/marten-seemann/qpack v0.3.0/go.mod h1:cGfKPBiP4a9EQdxCwEwI/GEeWAsjSekBvx/X8mh58+g= -github.com/marten-seemann/qtls-go1-18 v0.1.4 h1:ogomB+lWV3Vmwiu6RTwDVTMGx+9j7SEi98e8QB35Its= -github.com/marten-seemann/qtls-go1-18 v0.1.4/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= -github.com/marten-seemann/qtls-go1-19 v0.1.2 h1:ZevAEqKXH0bZmoOBPiqX2h5rhQ7cbZi+X+rlq2JUbCE= -github.com/marten-seemann/qtls-go1-19 v0.1.2/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 h1:2oDp6OOhLxQ9JBoUuysVz9UZ9uI6oLUbvAZu0x8o+vE= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118/go.mod h1:ZFUnHIVchZ9lJoWoEGUg8Q3M4U8aNNWA3CVSUTkW4og= @@ -118,16 +108,29 @@ github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= -github.com/onsi/ginkgo/v2 v2.8.0/go.mod h1:6JsQiECmxCa3V5st74AL/AmsV482EDdVrGaVW6z3oYU= -github.com/onsi/gomega v1.25.0 h1:Vw7br2PCDYijJHSfBOWhov+8cAnUf8MfMaIOV323l6Y= +github.com/onsi/ginkgo/v2 v2.8.1 h1:xFTEVwOFa1D/Ty24Ws1npBWkDYEV9BqZrsDxVrVkrrU= +github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= +github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= +github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U= +github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= +github.com/quic-go/qtls-go1-19 v0.2.0 h1:Cvn2WdhyViFUHoOqK52i51k4nDX8EwIh5VJiVM4nttk= +github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/quic-go/qtls-go1-20 v0.1.0 h1:d1PK3ErFy9t7zxKsG3NXBJXZjp/kMLoIb3y/kV54oAI= +github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= +github.com/quic-go/quic-go v0.32.0 h1:lY02md31s1JgPiiyfqJijpu/UX/Iun304FI3yUqX7tA= +github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo= github.com/shirou/gopsutil/v3 v3.21.8 h1:nKct+uP0TV8DjjNiHanKf8SAuub+GNsbrOtM9Nl9biA= github.com/shirou/gopsutil/v3 v3.21.8/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -151,23 +154,24 @@ github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ= github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= -github.com/u-root/uio v0.0.0-20221213070652-c3537552635f h1:dpx1PHxYqAnXzbryJrWP1NQLzEjwcVgFLhkknuFQ7ww= github.com/u-root/uio v0.0.0-20221213070652-c3537552635f/go.mod h1:IogEAUBXDEwX7oR/BMmCctShYs80ql4hF0ySdzGxf7E= +github.com/u-root/uio v0.0.0-20230215032506-9aa6f7e2d72c h1:PHoGTnweZP+KIg/8Zc6+iOesrIF5yHkpb4GBDxHm7yE= +github.com/u-root/uio v0.0.0-20230215032506-9aa6f7e2d72c/go.mod h1:eLL9Nub3yfAho7qB0MzZizFhTU2QkLeoVsWdHtDW264= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 h1:BEABXpNXLEz0WxtA+6CQIz2xkg80e+1zrhWyMcq8VzE= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= +golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190419010253-1f3472d942ba/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -184,8 +188,8 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210929193557-e81a3d93ecf6/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= @@ -218,24 +222,24 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.5.0 h1:+bSpV5HIeWkuvgaMfI3UmKRThoTA5ODJTUd8T17NO+4= -golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -244,12 +248,11 @@ google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscL gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/dnsforward/clientid.go b/internal/dnsforward/clientid.go index fb5eefda..e44600ba 100644 --- a/internal/dnsforward/clientid.go +++ b/internal/dnsforward/clientid.go @@ -9,7 +9,7 @@ import ( "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/netutil" - "github.com/lucas-clemente/quic-go" + "github.com/quic-go/quic-go" ) // ValidateClientID returns an error if id is not a valid ClientID. @@ -151,25 +151,7 @@ func (s *Server) clientIDFromDNSContext(pctx *proxy.DNSContext) (clientID string func clientServerName(pctx *proxy.DNSContext, proto proxy.Proto) (srvName string, err error) { switch proto { case proxy.ProtoHTTPS: - // github.com/lucas-clemente/quic-go seems to not populate the TLS - // field. So, if the request comes over HTTP/3, use the Host header - // value as the server name. - // - // See https://github.com/lucas-clemente/quic-go/issues/2879. - // - // TODO(a.garipov): Remove this crutch once they fix it. - r := pctx.HTTPRequest - if r.ProtoAtLeast(3, 0) { - var host string - host, err = netutil.SplitHost(r.Host) - if err != nil { - return "", fmt.Errorf("parsing host: %w", err) - } - - srvName = host - } else if connState := r.TLS; connState != nil { - srvName = r.TLS.ServerName - } + srvName = pctx.HTTPRequest.TLS.ServerName case proxy.ProtoQUIC: qConn := pctx.QUICConnection conn, ok := qConn.(quicConnection) diff --git a/internal/dnsforward/clientid_test.go b/internal/dnsforward/clientid_test.go index b52f2ad0..d0c0c40d 100644 --- a/internal/dnsforward/clientid_test.go +++ b/internal/dnsforward/clientid_test.go @@ -9,7 +9,7 @@ import ( "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/golibs/testutil" - "github.com/lucas-clemente/quic-go" + "github.com/quic-go/quic-go" "github.com/stretchr/testify/assert" ) @@ -55,7 +55,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID string wantErrMsg string strictSNI bool - useHTTP3 bool }{{ name: "udp", proto: proxy.ProtoUDP, @@ -64,7 +63,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: false, - useHTTP3: false, }, { name: "tls_no_clientid", proto: proxy.ProtoTLS, @@ -73,7 +71,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_no_client_server_name", proto: proxy.ProtoTLS, @@ -83,7 +80,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_no_client_server_name_no_strict", proto: proxy.ProtoTLS, @@ -92,7 +88,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: false, - useHTTP3: false, }, { name: "tls_clientid", proto: proxy.ProtoTLS, @@ -101,7 +96,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_hostname_error", proto: proxy.ProtoTLS, @@ -111,7 +105,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "cli.example.net" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_invalid_clientid", proto: proxy.ProtoTLS, @@ -121,7 +114,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: invalid clientid "!!!": ` + `bad domain name label rune '!'`, strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_too_long", proto: proxy.ProtoTLS, @@ -133,7 +125,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { `pqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789": ` + `domain name label is too long: got 72, max 63`, strictSNI: true, - useHTTP3: false, }, { name: "quic_clientid", proto: proxy.ProtoQUIC, @@ -142,7 +133,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_issue3437", proto: proxy.ProtoTLS, @@ -152,7 +142,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "cli.myexample.com" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_case", proto: proxy.ProtoTLS, @@ -161,7 +150,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "insensitive", wantErrMsg: ``, strictSNI: true, - useHTTP3: false, }, { name: "quic_case", proto: proxy.ProtoQUIC, @@ -170,7 +158,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "insensitive", wantErrMsg: ``, strictSNI: true, - useHTTP3: false, }, { name: "https_no_clientid", proto: proxy.ProtoHTTPS, @@ -179,7 +166,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "https_clientid", proto: proxy.ProtoHTTPS, @@ -188,16 +174,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, - }, { - name: "https_clientid_quic", - proto: proxy.ProtoHTTPS, - hostSrvName: "example.com", - cliSrvName: "cli.example.com", - wantClientID: "cli", - wantErrMsg: "", - strictSNI: true, - useHTTP3: true, }} for _, tc := range testCases { @@ -219,7 +195,7 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { switch tc.proto { case proxy.ProtoHTTPS: - httpReq = newHTTPReq(tc.cliSrvName, tc.useHTTP3) + httpReq = newHTTPReq(tc.cliSrvName) case proxy.ProtoQUIC: qconn = testQUICConnection{ serverName: tc.cliSrvName, @@ -246,21 +222,11 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { } // newHTTPReq is a helper to create HTTP requests for tests. -func newHTTPReq(cliSrvName string, useHTTP3 bool) (r *http.Request) { +func newHTTPReq(cliSrvName string) (r *http.Request) { u := &url.URL{ Path: "/dns-query", } - if useHTTP3 { - return &http.Request{ - ProtoMajor: 3, - ProtoMinor: 0, - URL: u, - Host: cliSrvName, - TLS: &tls.ConnectionState{}, - } - } - return &http.Request{ ProtoMajor: 1, ProtoMinor: 1, diff --git a/internal/dnsforward/config.go b/internal/dnsforward/config.go index c30d0d89..b48eb776 100644 --- a/internal/dnsforward/config.go +++ b/internal/dnsforward/config.go @@ -5,6 +5,7 @@ import ( "crypto/x509" "fmt" "net" + "net/netip" "os" "sort" "strings" @@ -225,7 +226,7 @@ type ServerConfig struct { LocalPTRResolvers []string // DNS64Prefixes is a slice of NAT64 prefixes to be used for DNS64. - DNS64Prefixes []string + DNS64Prefixes []netip.Prefix // ResolveClients signals if the RDNS should resolve clients' addresses. ResolveClients bool @@ -271,6 +272,8 @@ func (s *Server) createProxyConfig() (conf proxy.Config, err error) { RequestHandler: s.handleDNSRequest, EnableEDNSClientSubnet: srvConf.EnableEDNSClientSubnet, MaxGoroutines: int(srvConf.MaxGoroutines), + UseDNS64: srvConf.UseDNS64, + DNS64Prefs: srvConf.DNS64Prefixes, } if srvConf.CacheSize != 0 { diff --git a/internal/dnsforward/dns.go b/internal/dnsforward/dns.go index 1411a0f4..8d924f3b 100644 --- a/internal/dnsforward/dns.go +++ b/internal/dnsforward/dns.go @@ -10,6 +10,8 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/dhcpd" "github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/dnsproxy/proxy" + "github.com/AdguardTeam/dnsproxy/upstream" + "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/AdguardTeam/golibs/stringutil" @@ -17,6 +19,9 @@ import ( ) // To transfer information between modules +// +// TODO(s.chzhen): Add lowercased, non-FQDN version of the hostname from the +// question of the request. type dnsContext struct { proxyCtx *proxy.DNSContext @@ -419,7 +424,7 @@ func (s *Server) processDHCPHosts(dctx *dnsContext) (rc resultCode) { } resp.Answer = append(resp.Answer, a) case dns.TypeAAAA: - if len(s.dns64Prefs) > 0 { + if s.dns64Pref != (netip.Prefix{}) { // Respond with DNS64-mapped address for IPv4 host if DNS64 is // enabled. aaaa := &dns.AAAA{ @@ -468,15 +473,6 @@ func (s *Server) processRestrictLocal(dctx *dnsContext) (rc resultCode) { return resultCodeSuccess } - if s.shouldStripDNS64(ip) { - // Strip the prefix from the address to get the original IPv4. - ip = ip[nat64PrefixLen:] - - // Treat a DNS64-prefixed address as a locally served one since those - // queries should never be sent to the global DNS. - dctx.unreversedReqIP = ip - } - // Restrict an access to local addresses for external clients. We also // assume that all the DHCP leases we give are locally served or at least // shouldn't be accessible externally. @@ -655,13 +651,7 @@ func (s *Server) processUpstream(dctx *dnsContext) (rc resultCode) { s.setCustomUpstream(pctx, dctx.clientID) - origReqAD := false - if s.conf.EnableDNSSEC { - origReqAD = req.AuthenticatedData - if !req.AuthenticatedData { - req.AuthenticatedData = true - } - } + reqWantsDNSSEC := s.setReqAD(req) // Process the request further since it wasn't filtered. prx := s.proxy() @@ -671,23 +661,73 @@ func (s *Server) processUpstream(dctx *dnsContext) (rc resultCode) { return resultCodeError } - if dctx.err = prx.Resolve(pctx); dctx.err != nil { - return resultCodeError - } + if err := prx.Resolve(pctx); err != nil { + if errors.Is(err, upstream.ErrNoUpstreams) { + // Do not even put into querylog. Currently this happens either + // when the private resolvers enabled and the request is DNS64 PTR, + // or when the client isn't considered local by prx. + // + // TODO(e.burkov): Make proxy detect local client the same way as + // AGH does. + pctx.Res = s.genNXDomain(req) + + return resultCodeFinish + } + + dctx.err = err - if s.performDNS64(prx, dctx) == resultCodeError { return resultCodeError } dctx.responseFromUpstream = true dctx.responseAD = pctx.Res.AuthenticatedData - if s.conf.EnableDNSSEC && !origReqAD { + s.setRespAD(pctx, reqWantsDNSSEC) + + return resultCodeSuccess +} + +// setReqAD changes the request based on the server settings. wantsDNSSEC is +// false if the response should be cleared of the AD bit. +// +// TODO(a.garipov, e.burkov): This should probably be done in module dnsproxy. +func (s *Server) setReqAD(req *dns.Msg) (wantsDNSSEC bool) { + if !s.conf.EnableDNSSEC { + return false + } + + origReqAD := req.AuthenticatedData + req.AuthenticatedData = true + + // Per [RFC 6840] says, validating resolvers should only set the AD bit when + // the response has the AD bit set and the request contained either a set DO + // bit or a set AD bit. So, if neither of these is true, clear the AD bits + // in [Server.setRespAD]. + // + // [RFC 6840]: https://datatracker.ietf.org/doc/html/rfc6840#section-5.8 + return origReqAD || hasDO(req) +} + +// hasDO returns true if msg has EDNS(0) options and the DNSSEC OK flag is set +// in there. +// +// TODO(a.garipov): Move to golibs/dnsmsg when it's there. +func hasDO(msg *dns.Msg) (do bool) { + o := msg.IsEdns0() + if o == nil { + return false + } + + return o.Do() +} + +// setRespAD changes the request and response based on the server settings and +// the original request data. +func (s *Server) setRespAD(pctx *proxy.DNSContext, reqWantsDNSSEC bool) { + if s.conf.EnableDNSSEC && !reqWantsDNSSEC { pctx.Req.AuthenticatedData = false pctx.Res.AuthenticatedData = false } - - return resultCodeSuccess } // isDHCPClientHostQ returns true if q is from a request for a DHCP client diff --git a/internal/dnsforward/dns64.go b/internal/dnsforward/dns64.go index d6ea9c8f..23b0febb 100644 --- a/internal/dnsforward/dns64.go +++ b/internal/dnsforward/dns64.go @@ -1,34 +1,10 @@ package dnsforward import ( - "fmt" "net" "net/netip" "github.com/AdguardTeam/dnsproxy/proxy" - "github.com/AdguardTeam/golibs/log" - "github.com/AdguardTeam/golibs/mathutil" - "github.com/AdguardTeam/golibs/netutil" - "github.com/miekg/dns" -) - -const ( - // maxNAT64PrefixBitLen is the maximum length of a NAT64 prefix in bits. - // See https://datatracker.ietf.org/doc/html/rfc6147#section-5.2. - maxNAT64PrefixBitLen = 96 - - // nat64PrefixLen is the length of a NAT64 prefix in bytes. - nat64PrefixLen = net.IPv6len - net.IPv4len - - // maxDNS64SynTTL is the maximum TTL for synthesized DNS64 responses with no - // SOA records in seconds. - // - // If the SOA RR was not delivered with the negative response to the AAAA - // query, then the DNS64 SHOULD use the TTL of the original A RR or 600 - // seconds, whichever is shorter. - // - // See https://datatracker.ietf.org/doc/html/rfc6147#section-5.1.7. - maxDNS64SynTTL uint32 = 600 ) // setupDNS64 initializes DNS64 settings, the NAT64 prefixes in particular. If @@ -38,227 +14,22 @@ const ( // is specified explicitly. Each prefix also validated to be a valid IPv6 // CIDR with a maximum length of 96 bits. The first specified prefix is then // used to synthesize AAAA records. -func (s *Server) setupDNS64() (err error) { +func (s *Server) setupDNS64() { if !s.conf.UseDNS64 { - return nil + return } - l := len(s.conf.DNS64Prefixes) - if l == 0 { - s.dns64Prefs = []netip.Prefix{dns64WellKnownPref} + if len(s.conf.DNS64Prefixes) == 0 { + // dns64WellKnownPref is the default prefix to use in an algorithmic + // mapping for DNS64. + // + // See https://datatracker.ietf.org/doc/html/rfc6052#section-2.1. + dns64WellKnownPref := netip.MustParsePrefix("64:ff9b::/96") - return nil + s.dns64Pref = dns64WellKnownPref + } else { + s.dns64Pref = s.conf.DNS64Prefixes[0] } - - prefs := make([]netip.Prefix, 0, l) - for i, pref := range s.conf.DNS64Prefixes { - var p netip.Prefix - p, err = netip.ParsePrefix(pref) - if err != nil { - return fmt.Errorf("prefix at index %d: %w", i, err) - } - - addr := p.Addr() - if !addr.Is6() { - return fmt.Errorf("prefix at index %d: %q is not an IPv6 prefix", i, pref) - } - - if p.Bits() > maxNAT64PrefixBitLen { - return fmt.Errorf("prefix at index %d: %q is too long for DNS64", i, pref) - } - - prefs = append(prefs, p.Masked()) - } - - s.dns64Prefs = prefs - - return nil -} - -// checkDNS64 checks if DNS64 should be performed. It returns a DNS64 request -// to resolve or nil if DNS64 is not desired. It also filters resp to not -// contain any NAT64 excluded addresses in the answer section, if needed. Both -// req and resp must not be nil. -// -// See https://datatracker.ietf.org/doc/html/rfc6147. -func (s *Server) checkDNS64(req, resp *dns.Msg) (dns64Req *dns.Msg) { - if len(s.dns64Prefs) == 0 { - return nil - } - - q := req.Question[0] - if q.Qtype != dns.TypeAAAA || q.Qclass != dns.ClassINET { - // DNS64 operation for classes other than IN is undefined, and a DNS64 - // MUST behave as though no DNS64 function is configured. - return nil - } - - rcode := resp.Rcode - if rcode == dns.RcodeNameError { - // A result with RCODE=3 (Name Error) is handled according to normal DNS - // operation (which is normally to return the error to the client). - return nil - } - - if rcode == dns.RcodeSuccess { - // If resolver receives an answer with at least one AAAA record - // containing an address outside any of the excluded range(s), then it - // by default SHOULD build an answer section for a response including - // only the AAAA record(s) that do not contain any of the addresses - // inside the excluded ranges. - var hasAnswers bool - if resp.Answer, hasAnswers = s.filterNAT64Answers(resp.Answer); hasAnswers { - return nil - } - - // Any other RCODE is treated as though the RCODE were 0 and the answer - // section were empty. - } - - return &dns.Msg{ - MsgHdr: dns.MsgHdr{ - Id: dns.Id(), - RecursionDesired: req.RecursionDesired, - AuthenticatedData: req.AuthenticatedData, - CheckingDisabled: req.CheckingDisabled, - }, - Question: []dns.Question{{ - Name: req.Question[0].Name, - Qtype: dns.TypeA, - Qclass: dns.ClassINET, - }}, - } -} - -// filterNAT64Answers filters out AAAA records that are within one of NAT64 -// exclusion prefixes. hasAnswers is true if the filtered slice contains at -// least a single AAAA answer not within the prefixes or a CNAME. -func (s *Server) filterNAT64Answers(rrs []dns.RR) (filtered []dns.RR, hasAnswers bool) { - filtered = make([]dns.RR, 0, len(rrs)) - for _, ans := range rrs { - switch ans := ans.(type) { - case *dns.AAAA: - addr, err := netutil.IPToAddrNoMapped(ans.AAAA) - if err != nil { - log.Error("dnsforward: bad AAAA record: %s", err) - - continue - } - - if s.withinDNS64(addr) { - // Filter the record. - continue - } - - filtered, hasAnswers = append(filtered, ans), true - case *dns.CNAME, *dns.DNAME: - // If the response contains a CNAME or a DNAME, then the CNAME or - // DNAME chain is followed until the first terminating A or AAAA - // record is reached. - // - // Just treat CNAME and DNAME responses as passable answers since - // AdGuard Home doesn't follow any of these chains except the - // dnsrewrite-defined ones. - filtered, hasAnswers = append(filtered, ans), true - default: - filtered = append(filtered, ans) - } - } - - return filtered, hasAnswers -} - -// synthDNS64 synthesizes a DNS64 response using the original response as a -// basis and modifying it with data from resp. It returns true if the response -// was actually modified. -func (s *Server) synthDNS64(origReq, origResp, resp *dns.Msg) (ok bool) { - if len(resp.Answer) == 0 { - // If there is an empty answer, then the DNS64 responds to the original - // querying client with the answer the DNS64 received to the original - // (initiator's) query. - return false - } - - // The Time to Live (TTL) field is set to the minimum of the TTL of the - // original A RR and the SOA RR for the queried domain. If the original - // response contains no SOA records, the minimum of the TTL of the original - // A RR and [maxDNS64SynTTL] should be used. See [maxDNS64SynTTL]. - soaTTL := maxDNS64SynTTL - for _, rr := range origResp.Ns { - if hdr := rr.Header(); hdr.Rrtype == dns.TypeSOA && hdr.Name == origReq.Question[0].Name { - soaTTL = hdr.Ttl - - break - } - } - - newAns := make([]dns.RR, 0, len(resp.Answer)) - for _, ans := range resp.Answer { - rr := s.synthRR(ans, soaTTL) - if rr == nil { - // The error should have already been logged. - return false - } - - newAns = append(newAns, rr) - } - - origResp.Answer = newAns - origResp.Ns = resp.Ns - origResp.Extra = resp.Extra - - return true -} - -// dns64WellKnownPref is the default prefix to use in an algorithmic mapping for -// DNS64. See https://datatracker.ietf.org/doc/html/rfc6052#section-2.1. -var dns64WellKnownPref = netip.MustParsePrefix("64:ff9b::/96") - -// withinDNS64 checks if ip is within one of the configured DNS64 prefixes. -// -// TODO(e.burkov): We actually using bytes of only the first prefix from the -// set to construct the answer, so consider using some implementation of a -// prefix set for the rest. -func (s *Server) withinDNS64(ip netip.Addr) (ok bool) { - for _, n := range s.dns64Prefs { - if n.Contains(ip) { - return true - } - } - - return false -} - -// shouldStripDNS64 returns true if DNS64 is enabled and ip has either one of -// custom DNS64 prefixes or the Well-Known one. This is intended to be used -// with PTR requests. -// -// The requirement is to match any Pref64::/n used at the site, and not merely -// the locally configured Pref64::/n. This is because end clients could ask for -// a PTR record matching an address received through a different (site-provided) -// DNS64. -// -// See https://datatracker.ietf.org/doc/html/rfc6147#section-5.3.1. -func (s *Server) shouldStripDNS64(ip net.IP) (ok bool) { - if len(s.dns64Prefs) == 0 { - return false - } - - addr, err := netutil.IPToAddr(ip, netutil.AddrFamilyIPv6) - if err != nil { - return false - } - - switch { - case s.withinDNS64(addr): - log.Debug("dnsforward: %s is within DNS64 custom prefix set", ip) - case dns64WellKnownPref.Contains(addr): - log.Debug("dnsforward: %s is within DNS64 well-known prefix", ip) - default: - return false - } - - return true } // mapDNS64 maps ip to IPv6 address using configured DNS64 prefix. ip must be a @@ -267,79 +38,12 @@ func (s *Server) shouldStripDNS64(ip net.IP) (ok bool) { func (s *Server) mapDNS64(ip netip.Addr) (mapped net.IP) { // Don't mask the address here since it should have already been masked on // initialization stage. - pref := s.dns64Prefs[0].Addr().As16() + pref := s.dns64Pref.Masked().Addr().As16() ipData := ip.As4() mapped = make(net.IP, net.IPv6len) - copy(mapped[:nat64PrefixLen], pref[:]) - copy(mapped[nat64PrefixLen:], ipData[:]) + copy(mapped[:proxy.NAT64PrefixLength], pref[:]) + copy(mapped[proxy.NAT64PrefixLength:], ipData[:]) return mapped } - -// performDNS64 processes the current state of dctx assuming that it has already -// been tried to resolve, checks if it contains any acceptable response, and if -// it doesn't, performs DNS64 request and the following synthesis. It returns -// the [resultCodeError] if there was an error set to dctx. -func (s *Server) performDNS64(prx *proxy.Proxy, dctx *dnsContext) (rc resultCode) { - pctx := dctx.proxyCtx - req := pctx.Req - - dns64Req := s.checkDNS64(req, pctx.Res) - if dns64Req == nil { - return resultCodeSuccess - } - - log.Debug("dnsforward: received an empty AAAA response, checking DNS64") - - origReq := pctx.Req - origResp := pctx.Res - origUps := pctx.Upstream - - pctx.Req = dns64Req - defer func() { pctx.Req = origReq }() - - if dctx.err = prx.Resolve(pctx); dctx.err != nil { - return resultCodeError - } - - dns64Resp := pctx.Res - pctx.Res = origResp - if dns64Resp != nil && s.synthDNS64(origReq, pctx.Res, dns64Resp) { - log.Debug("dnsforward: synthesized AAAA response for %q", origReq.Question[0].Name) - } else { - pctx.Upstream = origUps - } - - return resultCodeSuccess -} - -// synthRR synthesizes a DNS64 resource record in compliance with RFC 6147. If -// rr is not an A record, it's returned as is. A records are modified to become -// a DNS64-synthesized AAAA records, and the TTL is set according to the -// original TTL of a record and soaTTL. It returns nil on invalid A records. -func (s *Server) synthRR(rr dns.RR, soaTTL uint32) (result dns.RR) { - aResp, ok := rr.(*dns.A) - if !ok { - return rr - } - - addr, err := netutil.IPToAddr(aResp.A, netutil.AddrFamilyIPv4) - if err != nil { - log.Error("dnsforward: bad A record: %s", err) - - return nil - } - - aaaa := &dns.AAAA{ - Hdr: dns.RR_Header{ - Name: aResp.Hdr.Name, - Rrtype: dns.TypeAAAA, - Class: aResp.Hdr.Class, - Ttl: mathutil.Min(aResp.Hdr.Ttl, soaTTL), - }, - AAAA: s.mapDNS64(addr), - } - - return aaaa -} diff --git a/internal/dnsforward/dns64_test.go b/internal/dnsforward/dns64_test.go index 12925504..f3679b51 100644 --- a/internal/dnsforward/dns64_test.go +++ b/internal/dnsforward/dns64_test.go @@ -15,6 +15,16 @@ import ( "github.com/stretchr/testify/require" ) +// maxDNS64SynTTL is the maximum TTL for synthesized DNS64 responses with no SOA +// records in seconds. +// +// If the SOA RR was not delivered with the negative response to the AAAA query, +// then the DNS64 SHOULD use the TTL of the original A RR or 600 seconds, +// whichever is shorter. +// +// See https://datatracker.ietf.org/doc/html/rfc6147#section-5.1.7. +const maxDNS64SynTTL uint32 = 600 + // newRR is a helper that creates a new dns.RR with the given name, qtype, ttl // and value. It fails the test if the qtype is not supported or the type of // value doesn't match the qtype. diff --git a/internal/dnsforward/dnsforward.go b/internal/dnsforward/dnsforward.go index 4ff9fc02..ffec33f2 100644 --- a/internal/dnsforward/dnsforward.go +++ b/internal/dnsforward/dnsforward.go @@ -80,10 +80,17 @@ type Server struct { privateNets netutil.SubnetSet localResolvers *proxy.Proxy sysResolvers aghnet.SystemResolvers - recDetector *recursionDetector - // dns64Prefix is the set of NAT64 prefixes used for DNS64 handling. - dns64Prefs []netip.Prefix + // recDetector is a cache for recursive requests. It is used to detect + // and prevent recursive requests only for private upstreams. + // + // See https://github.com/adguardTeam/adGuardHome/issues/3185#issuecomment-851048135. + recDetector *recursionDetector + + // dns64Pref is the NAT64 prefix used for DNS64 response mapping. The major + // part of DNS64 happens inside the [proxy] package, but there still are + // some places where response mapping is needed (e.g. DHCP). + dns64Pref netip.Prefix // anonymizer masks the client's IP addresses if needed. anonymizer *aghnet.IPMut @@ -246,8 +253,8 @@ func (s *Server) Resolve(host string) ([]net.IPAddr, error) { // RDNSExchanger is a resolver for clients' addresses. type RDNSExchanger interface { - // Exchange tries to resolve the ip in a suitable way, e.g. either as - // local or as external. + // Exchange tries to resolve the ip in a suitable way, i.e. either as local + // or as external. Exchange(ip net.IP) (host string, err error) // ResolvesPrivatePTR returns true if the RDNSExchanger is able to @@ -256,13 +263,13 @@ type RDNSExchanger interface { } const ( - // rDNSEmptyAnswerErr is returned by Exchange method when the answer - // section of respond is empty. - rDNSEmptyAnswerErr errors.Error = "the answer section is empty" + // ErrRDNSNoData is returned by [RDNSExchanger.Exchange] when the answer + // section of response is either NODATA or has no PTR records. + ErrRDNSNoData errors.Error = "no ptr data in response" - // rDNSNotPTRErr is returned by Exchange method when the response is not - // of PTR type. - rDNSNotPTRErr errors.Error = "the response is not a ptr" + // ErrRDNSFailed is returned by [RDNSExchanger.Exchange] if the received + // response is not a NOERROR or NXDOMAIN. + ErrRDNSFailed errors.Error = "failed to resolve ptr" ) // type check @@ -317,17 +324,24 @@ func (s *Server) Exchange(ip net.IP) (host string, err error) { return "", err } + // Distinguish between NODATA response and a failed request. resp := ctx.Res - if len(resp.Answer) == 0 { - return "", fmt.Errorf("lookup for %q: %w", arpa, rDNSEmptyAnswerErr) + if resp.Rcode != dns.RcodeSuccess && resp.Rcode != dns.RcodeNameError { + return "", fmt.Errorf( + "received %s response: %w", + dns.RcodeToString[resp.Rcode], + ErrRDNSFailed, + ) } - ptr, ok := resp.Answer[0].(*dns.PTR) - if !ok { - return "", fmt.Errorf("type checking: %w", rDNSNotPTRErr) + for _, ans := range resp.Answer { + ptr, ok := ans.(*dns.PTR) + if ok { + return strings.TrimSuffix(ptr.Ptr, "."), nil + } } - return strings.TrimSuffix(ptr.Ptr, "."), nil + return "", ErrRDNSNoData } // ResolvesPrivatePTR implements the RDNSExchanger interface for *Server. @@ -477,6 +491,8 @@ func (s *Server) Prepare(conf *ServerConfig) (err error) { return fmt.Errorf("preparing proxy: %w", err) } + s.setupDNS64() + err = s.prepareInternalProxy() if err != nil { return fmt.Errorf("preparing internal proxy: %w", err) @@ -493,18 +509,18 @@ func (s *Server) Prepare(conf *ServerConfig) (err error) { s.registerHandlers() - err = s.setupDNS64() - if err != nil { - return fmt.Errorf("preparing DNS64: %w", err) - } - - s.dnsProxy = &proxy.Proxy{Config: proxyConfig} - + // TODO(e.burkov): Remove once the local resolvers logic moved to dnsproxy. err = s.setupResolvers(s.conf.LocalPTRResolvers) if err != nil { return fmt.Errorf("setting up resolvers: %w", err) } + if s.conf.UsePrivateRDNS { + proxyConfig.PrivateRDNSUpstreamConfig = s.localResolvers.UpstreamConfig + } + + s.dnsProxy = &proxy.Proxy{Config: proxyConfig} + s.recDetector.clear() return nil diff --git a/internal/dnsforward/dnsforward_test.go b/internal/dnsforward/dnsforward_test.go index 56c21516..a95b03df 100644 --- a/internal/dnsforward/dnsforward_test.go +++ b/internal/dnsforward/dnsforward_test.go @@ -89,9 +89,14 @@ func createTestServer( s.serverLock.Lock() defer s.serverLock.Unlock() + // TODO(e.burkov): Try to move it higher. if localUps != nil { - s.localResolvers.UpstreamConfig.Upstreams = []upstream.Upstream{localUps} + ups := []upstream.Upstream{localUps} + s.localResolvers.UpstreamConfig.Upstreams = ups s.conf.UsePrivateRDNS = true + s.dnsProxy.PrivateRDNSUpstreamConfig = &proxy.UpstreamConfig{ + Upstreams: ups, + } } return s @@ -1216,6 +1221,9 @@ func TestServer_Exchange(t *testing.T) { errUpstream := aghtest.NewErrorUpstream() nonPtrUpstream := aghtest.NewBlockUpstream("some-host", true) + refusingUpstream := aghtest.NewUpstreamMock(func(req *dns.Msg) (resp *dns.Msg, err error) { + return new(dns.Msg).SetRcode(req, dns.RcodeRefused), nil + }) srv := &Server{ recDetector: newRecursionDetector(0, 1), @@ -1260,15 +1268,21 @@ func TestServer_Exchange(t *testing.T) { }, { name: "empty_answer_error", want: "", - wantErr: rDNSEmptyAnswerErr, + wantErr: ErrRDNSNoData, locUpstream: locUpstream, req: net.IP{192, 168, 1, 2}, }, { - name: "not_ptr_error", + name: "invalid_answer", want: "", - wantErr: rDNSNotPTRErr, + wantErr: ErrRDNSNoData, locUpstream: nonPtrUpstream, req: localIP, + }, { + name: "refused", + want: "", + wantErr: ErrRDNSFailed, + locUpstream: refusingUpstream, + req: localIP, }} for _, tc := range testCases { diff --git a/internal/dnsforward/stats.go b/internal/dnsforward/stats.go index 4d63220d..3fb6e245 100644 --- a/internal/dnsforward/stats.go +++ b/internal/dnsforward/stats.go @@ -22,9 +22,11 @@ func (s *Server) processQueryLogsAndStats(dctx *dnsContext) (rc resultCode) { shouldLog := true msg := pctx.Req + q := msg.Question[0] + host := strings.ToLower(strings.TrimSuffix(q.Name, ".")) // don't log ANY request if refuseAny is enabled - if len(msg.Question) >= 1 && msg.Question[0].Qtype == dns.TypeANY && s.conf.RefuseAny { + if q.Qtype == dns.TypeANY && s.conf.RefuseAny { shouldLog = false } @@ -41,11 +43,20 @@ func (s *Server) processQueryLogsAndStats(dctx *dnsContext) (rc resultCode) { // Synchronize access to s.queryLog and s.stats so they won't be suddenly // uninitialized while in use. This can happen after proxy server has been // stopped, but its workers haven't yet exited. - if shouldLog && s.queryLog != nil { + if shouldLog && + s.queryLog != nil && + s.queryLog.ShouldLog(host, q.Qtype, q.Qclass) { s.logQuery(dctx, pctx, elapsed, ip) + } else { + log.Debug( + "dnsforward: request %s %s from %s ignored; not logging", + dns.Type(q.Qtype), + host, + ip, + ) } - if s.stats != nil { + if s.stats != nil && s.stats.ShouldCount(host, q.Qtype, q.Qclass) { s.updateStats(dctx, elapsed, *dctx.result, ip) } diff --git a/internal/dnsforward/stats_test.go b/internal/dnsforward/stats_test.go index d991be12..6fa82a0e 100644 --- a/internal/dnsforward/stats_test.go +++ b/internal/dnsforward/stats_test.go @@ -16,34 +16,44 @@ import ( "github.com/stretchr/testify/require" ) -// testQueryLog is a simple querylog.QueryLog implementation for tests. +// testQueryLog is a simple [querylog.QueryLog] implementation for tests. type testQueryLog struct { // QueryLog is embedded here simply to make testQueryLog - // a querylog.QueryLog without actually implementing all methods. + // a [querylog.QueryLog] without actually implementing all methods. querylog.QueryLog lastParams *querylog.AddParams } -// Add implements the querylog.QueryLog interface for *testQueryLog. +// Add implements the [querylog.QueryLog] interface for *testQueryLog. func (l *testQueryLog) Add(p *querylog.AddParams) { l.lastParams = p } -// testStats is a simple stats.Stats implementation for tests. +// ShouldLog implements the [querylog.QueryLog] interface for *testQueryLog. +func (l *testQueryLog) ShouldLog(string, uint16, uint16) bool { + return true +} + +// testStats is a simple [stats.Interface] implementation for tests. type testStats struct { - // Stats is embedded here simply to make testStats a stats.Stats without - // actually implementing all methods. + // Stats is embedded here simply to make testStats a [stats.Interface] + // without actually implementing all methods. stats.Interface lastEntry stats.Entry } -// Update implements the stats.Stats interface for *testStats. +// Update implements the [stats.Interface] interface for *testStats. func (l *testStats) Update(e stats.Entry) { l.lastEntry = e } +// ShouldCount implements the [stats.Interface] interface for *testStats. +func (l *testStats) ShouldCount(string, uint16, uint16) bool { + return true +} + func TestProcessQueryLogsAndStats(t *testing.T) { testCases := []struct { name string diff --git a/internal/filtering/servicelist.go b/internal/filtering/servicelist.go index e5b36d97..93fe79cd 100644 --- a/internal/filtering/servicelist.go +++ b/internal/filtering/servicelist.go @@ -1283,7 +1283,7 @@ var blockedServices = []blockedService{{ }, { ID: "leagueoflegends", Name: "League of Legends", - IconSVG: []byte(""), + IconSVG: []byte(""), Rules: []string{ "||leagueoflegends.co.kr^", "||leagueoflegends.com^", @@ -1307,9 +1307,7 @@ var blockedServices = []blockedService{{ Rules: []string{ "||aus.social^", "||awscommunity.social^", - "||cupoftea.social^", "||cyberplace.social^", - "||defcon.social^", "||det.social^", "||fosstodon.org^", "||glasgow.social^", @@ -1335,7 +1333,6 @@ var blockedServices = []blockedService{{ "||mastodon.au^", "||mastodon.bida.im^", "||mastodon.com.tr^", - "||mastodon.eus^", "||mastodon.green^", "||mastodon.ie^", "||mastodon.iriseden.eu^", @@ -1343,13 +1340,15 @@ var blockedServices = []blockedService{{ "||mastodon.nu^", "||mastodon.nz^", "||mastodon.online^", + "||mastodon.online^", "||mastodon.scot^", "||mastodon.sdf.org^", "||mastodon.social^", + "||mastodon.social^", "||mastodon.top^", "||mastodon.uno^", "||mastodon.world^", - "||mastodon.zaclys.com^", + "||mastodon.xyz^", "||mastodonapp.uk^", "||mastodonners.nl^", "||mastodont.cat^", @@ -1361,9 +1360,10 @@ var blockedServices = []blockedService{{ "||mindly.social^", "||mstdn.ca^", "||mstdn.jp^", + "||mstdn.party^", "||mstdn.social^", "||muenchen.social^", - "||muenster.im^", + "||nerdculture.de^", "||newsie.social^", "||noc.social^", "||norden.social^", diff --git a/internal/home/clients.go b/internal/home/clients.go index f46c616e..5d0a9ef2 100644 --- a/internal/home/clients.go +++ b/internal/home/clients.go @@ -67,15 +67,18 @@ func (c *Client) closeUpstreams() (err error) { type clientSource uint -// Client sources. The order determines the priority. +// Clients information sources. The order determines the priority. const ( - ClientSourceWHOIS clientSource = iota + ClientSourceNone clientSource = iota + ClientSourceWHOIS ClientSourceARP ClientSourceRDNS ClientSourceDHCP ClientSourceHostsFile + ClientSourcePersistent ) +// type check var _ fmt.Stringer = clientSource(0) // String returns a human-readable name of cs. @@ -96,6 +99,7 @@ func (cs clientSource) String() (s string) { } } +// type check var _ encoding.TextMarshaler = clientSource(0) // MarshalText implements encoding.TextMarshaler for the clientSource. @@ -332,23 +336,24 @@ func (clients *clientsContainer) onDHCPLeaseChanged(flags int) { } } -// exists checks if client with this IP address already exists. -func (clients *clientsContainer) exists(ip netip.Addr, source clientSource) (ok bool) { +// clientSource checks if client with this IP address already exists and returns +// the source which updated it last. It returns [ClientSourceNone] if the +// client doesn't exist. +func (clients *clientsContainer) clientSource(ip netip.Addr) (src clientSource) { clients.lock.Lock() defer clients.lock.Unlock() - _, ok = clients.findLocked(ip.String()) + _, ok := clients.findLocked(ip.String()) if ok { - return true + return ClientSourcePersistent } rc, ok := clients.ipToRC[ip] if !ok { - return false + return ClientSourceNone } - // Return false if the new source has higher priority. - return source <= rc.Source + return rc.Source } func toQueryLogWHOIS(wi *RuntimeClientWHOISInfo) (cw *querylog.ClientWHOIS) { diff --git a/internal/home/clients_test.go b/internal/home/clients_test.go index ca98352a..612fe7db 100644 --- a/internal/home/clients_test.go +++ b/internal/home/clients_test.go @@ -67,9 +67,9 @@ func TestClients(t *testing.T) { assert.Equal(t, "client2", c.Name) - assert.False(t, clients.exists(cliNoneIP, ClientSourceHostsFile)) - assert.True(t, clients.exists(cli1IP, ClientSourceHostsFile)) - assert.True(t, clients.exists(cli2IP, ClientSourceHostsFile)) + assert.Equal(t, clients.clientSource(cliNoneIP), ClientSourceNone) + assert.Equal(t, clients.clientSource(cli1IP), ClientSourcePersistent) + assert.Equal(t, clients.clientSource(cli2IP), ClientSourcePersistent) }) t.Run("add_fail_name", func(t *testing.T) { @@ -127,8 +127,8 @@ func TestClients(t *testing.T) { }) require.NoError(t, err) - assert.False(t, clients.exists(cliOldIP, ClientSourceHostsFile)) - assert.True(t, clients.exists(cliNewIP, ClientSourceHostsFile)) + assert.Equal(t, clients.clientSource(cliOldIP), ClientSourceNone) + assert.Equal(t, clients.clientSource(cliNewIP), ClientSourcePersistent) err = clients.Update("client1", &Client{ IDs: []string{cliNew}, @@ -157,7 +157,7 @@ func TestClients(t *testing.T) { ok := clients.Del("client1-renamed") require.True(t, ok) - assert.False(t, clients.exists(netip.MustParseAddr("1.1.1.2"), ClientSourceHostsFile)) + assert.Equal(t, clients.clientSource(netip.MustParseAddr("1.1.1.2")), ClientSourceNone) }) t.Run("del_fail", func(t *testing.T) { @@ -176,18 +176,18 @@ func TestClients(t *testing.T) { ok = clients.AddHost(ip, "host3", ClientSourceHostsFile) assert.True(t, ok) - assert.True(t, clients.exists(ip, ClientSourceHostsFile)) + assert.Equal(t, clients.clientSource(ip), ClientSourceHostsFile) }) t.Run("dhcp_replaces_arp", func(t *testing.T) { ip := netip.MustParseAddr("1.2.3.4") ok := clients.AddHost(ip, "from_arp", ClientSourceARP) assert.True(t, ok) - assert.True(t, clients.exists(ip, ClientSourceARP)) + assert.Equal(t, clients.clientSource(ip), ClientSourceARP) ok = clients.AddHost(ip, "from_dhcp", ClientSourceDHCP) assert.True(t, ok) - assert.True(t, clients.exists(ip, ClientSourceDHCP)) + assert.Equal(t, clients.clientSource(ip), ClientSourceDHCP) }) t.Run("addhost_fail", func(t *testing.T) { diff --git a/internal/home/config.go b/internal/home/config.go index f2fc98f5..69baa18c 100644 --- a/internal/home/config.go +++ b/internal/home/config.go @@ -6,6 +6,7 @@ import ( "net/netip" "os" "path/filepath" + "sort" "sync" "github.com/AdguardTeam/AdGuardHome/internal/aghalg" @@ -112,8 +113,10 @@ type configuration struct { // An active session is automatically refreshed once a day. WebSessionTTLHours uint32 `yaml:"web_session_ttl"` - DNS dnsConfig `yaml:"dns"` - TLS tlsConfigSettings `yaml:"tls"` + DNS dnsConfig `yaml:"dns"` + TLS tlsConfigSettings `yaml:"tls"` + QueryLog queryLogConfig `yaml:"querylog"` + Stats statsConfig `yaml:"statistics"` // Filters reflects the filters from [filtering.Config]. It's cloned to the // config used in the filtering module at the startup. Afterwards it's @@ -147,20 +150,6 @@ type dnsConfig struct { BindHosts []netip.Addr `yaml:"bind_hosts"` Port int `yaml:"port"` - // StatsInterval is the time interval for flushing statistics to the disk in - // days. - StatsInterval uint32 `yaml:"statistics_interval"` - - // QueryLogEnabled defines if the query log is enabled. - QueryLogEnabled bool `yaml:"querylog_enabled"` - // QueryLogFileEnabled defines, if the query log is written to the file. - QueryLogFileEnabled bool `yaml:"querylog_file_enabled"` - // QueryLogInterval is the interval for query log's files rotation. - QueryLogInterval timeutil.Duration `yaml:"querylog_interval"` - // QueryLogMemSize is the number of entries kept in memory before they are - // flushed to disk. - QueryLogMemSize uint32 `yaml:"querylog_size_memory"` - // AnonymizeClientIP defines if clients' IP addresses should be anonymized // in query log and statistics. AnonymizeClientIP bool `yaml:"anonymize_client_ip"` @@ -188,7 +177,7 @@ type dnsConfig struct { UseDNS64 bool `yaml:"use_dns64"` // DNS64Prefixes is the list of NAT64 prefixes to be used for DNS64. - DNS64Prefixes []string `yaml:"dns64_prefixes"` + DNS64Prefixes []netip.Prefix `yaml:"dns64_prefixes"` // ServeHTTP3 defines if HTTP/3 is be allowed for incoming requests. // @@ -228,6 +217,37 @@ type tlsConfigSettings struct { dnsforward.TLSConfig `yaml:",inline" json:",inline"` } +type queryLogConfig struct { + // Enabled defines if the query log is enabled. + Enabled bool `yaml:"enabled"` + + // FileEnabled defines, if the query log is written to the file. + FileEnabled bool `yaml:"file_enabled"` + + // Interval is the interval for query log's files rotation. + Interval timeutil.Duration `yaml:"interval"` + + // MemSize is the number of entries kept in memory before they are + // flushed to disk. + MemSize uint32 `yaml:"size_memory"` + + // Ignored is the list of host names, which should not be written to + // log. + Ignored []string `yaml:"ignored"` +} + +type statsConfig struct { + // Enabled defines if the statistics are enabled. + Enabled bool `yaml:"enabled"` + + // Interval is the time interval for flushing statistics to the disk in + // days. + Interval uint32 `yaml:"interval"` + + // Ignored is the list of host names, which should not be counted. + Ignored []string `yaml:"ignored"` +} + // config is the global configuration structure. // // TODO(a.garipov, e.burkov): This global is awful and must be removed. @@ -238,13 +258,8 @@ var config = &configuration{ AuthBlockMin: 15, WebSessionTTLHours: 30 * 24, DNS: dnsConfig{ - BindHosts: []netip.Addr{netip.IPv4Unspecified()}, - Port: defaultPortDNS, - StatsInterval: 1, - QueryLogEnabled: true, - QueryLogFileEnabled: true, - QueryLogInterval: timeutil.Duration{Duration: 90 * timeutil.Day}, - QueryLogMemSize: 1000, + BindHosts: []netip.Addr{netip.IPv4Unspecified()}, + Port: defaultPortDNS, FilteringConfig: dnsforward.FilteringConfig{ ProtectionEnabled: true, // whether or not use any of filtering features BlockingMode: dnsforward.BlockingModeDefault, @@ -282,6 +297,18 @@ var config = &configuration{ PortDNSOverTLS: defaultPortTLS, // needs to be passed through to dnsproxy PortDNSOverQUIC: defaultPortQUIC, }, + QueryLog: queryLogConfig{ + Enabled: true, + FileEnabled: true, + Interval: timeutil.Duration{Duration: 90 * timeutil.Day}, + MemSize: 1000, + Ignored: []string{}, + }, + Stats: statsConfig{ + Enabled: true, + Interval: 1, + Ignored: []string{}, + }, // NOTE: Keep these parameters in sync with the one put into // client/src/helpers/filters/filters.js by scripts/vetted-filters. // @@ -458,19 +485,24 @@ func (c *configuration) write() (err error) { } if Context.stats != nil { - sdc := stats.DiskConfig{} - Context.stats.WriteDiskConfig(&sdc) - config.DNS.StatsInterval = sdc.Interval + statsConf := stats.Config{} + Context.stats.WriteDiskConfig(&statsConf) + config.Stats.Interval = statsConf.LimitDays + config.Stats.Enabled = statsConf.Enabled + config.Stats.Ignored = statsConf.Ignored.Values() + sort.Strings(config.Stats.Ignored) } if Context.queryLog != nil { dc := querylog.Config{} Context.queryLog.WriteDiskConfig(&dc) - config.DNS.QueryLogEnabled = dc.Enabled - config.DNS.QueryLogFileEnabled = dc.FileEnabled - config.DNS.QueryLogInterval = timeutil.Duration{Duration: dc.RotationIvl} - config.DNS.QueryLogMemSize = dc.MemSize config.DNS.AnonymizeClientIP = dc.AnonymizeClientIP + config.QueryLog.Enabled = dc.Enabled + config.QueryLog.FileEnabled = dc.FileEnabled + config.QueryLog.Interval = timeutil.Duration{Duration: dc.RotationIvl} + config.QueryLog.MemSize = dc.MemSize + config.QueryLog.Ignored = dc.Ignored.Values() + sort.Strings(config.QueryLog.Ignored) } if Context.filters != nil { diff --git a/internal/home/controlinstall.go b/internal/home/controlinstall.go index 7b053f14..b58193ee 100644 --- a/internal/home/controlinstall.go +++ b/internal/home/controlinstall.go @@ -20,7 +20,7 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/version" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" - "github.com/lucas-clemente/quic-go/http3" + "github.com/quic-go/quic-go/http3" ) // getAddrsResponse is the response for /install/get_addresses endpoint. diff --git a/internal/home/dns.go b/internal/home/dns.go index 4db9b1b2..855a4029 100644 --- a/internal/home/dns.go +++ b/internal/home/dns.go @@ -7,6 +7,7 @@ import ( "net/url" "os" "path/filepath" + "strings" "github.com/AdguardTeam/AdGuardHome/internal/aghalg" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" @@ -20,6 +21,7 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" + "github.com/AdguardTeam/golibs/stringutil" "github.com/ameshkov/dnscrypt/v2" yaml "gopkg.in/yaml.v3" ) @@ -51,10 +53,18 @@ func initDNS() (err error) { statsConf := stats.Config{ Filename: filepath.Join(baseDir, "stats.db"), - LimitDays: config.DNS.StatsInterval, + LimitDays: config.Stats.Interval, ConfigModified: onConfigModified, HTTPRegister: httpRegister, + Enabled: config.Stats.Enabled, } + + set, err := nonDupEmptyHostNames(config.Stats.Ignored) + if err != nil { + return fmt.Errorf("statistics: ignored list: %w", err) + } + + statsConf.Ignored = set Context.stats, err = stats.New(statsConf) if err != nil { return fmt.Errorf("init stats: %w", err) @@ -66,12 +76,19 @@ func initDNS() (err error) { HTTPRegister: httpRegister, FindClient: Context.clients.findMultiple, BaseDir: baseDir, - RotationIvl: config.DNS.QueryLogInterval.Duration, - MemSize: config.DNS.QueryLogMemSize, - Enabled: config.DNS.QueryLogEnabled, - FileEnabled: config.DNS.QueryLogFileEnabled, AnonymizeClientIP: config.DNS.AnonymizeClientIP, + RotationIvl: config.QueryLog.Interval.Duration, + MemSize: config.QueryLog.MemSize, + Enabled: config.QueryLog.Enabled, + FileEnabled: config.QueryLog.FileEnabled, } + + set, err = nonDupEmptyHostNames(config.QueryLog.Ignored) + if err != nil { + return fmt.Errorf("querylog: ignored list: %w", err) + } + + conf.Ignored = set Context.queryLog = querylog.New(conf) Context.filters, err = filtering.New(config.DNS.DnsfilterConf, nil) @@ -515,3 +532,27 @@ func closeDNSServer() { log.Debug("all dns modules are closed") } + +// nonDupEmptyHostNames returns nil and error, if list has duplicate or empty +// host name. Otherwise returns a set, which contains lowercase host names +// without dot at the end, and nil error. +func nonDupEmptyHostNames(list []string) (set *stringutil.Set, err error) { + set = stringutil.NewSet() + + for _, v := range list { + host := strings.ToLower(strings.TrimSuffix(v, ".")) + // TODO(a.garipov): Think about ignoring empty (".") names in + // the future. + if host == "" { + return nil, errors.Error("host name is empty") + } + + if set.Has(host) { + return nil, fmt.Errorf("duplicate host name %q", host) + } + + set.Add(host) + } + + return set, nil +} diff --git a/internal/home/rdns.go b/internal/home/rdns.go index c6ce0f59..cae7a9c3 100644 --- a/internal/home/rdns.go +++ b/internal/home/rdns.go @@ -8,6 +8,7 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/dnsforward" "github.com/AdguardTeam/golibs/cache" + "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" ) @@ -16,10 +17,6 @@ type RDNS struct { exchanger dnsforward.RDNSExchanger clients *clientsContainer - // usePrivate is used to store the state of current private RDNS resolving - // settings and to react to it's changes. - usePrivate uint32 - // ipCh used to pass client's IP to rDNS workerLoop. ipCh chan netip.Addr @@ -28,13 +25,21 @@ type RDNS struct { // address will be resolved once again. If the address couldn't be // resolved, cache prevents further attempts to resolve it for some time. ipCache cache.Cache + + // usePrivate stores the state of current private reverse-DNS resolving + // settings. + usePrivate atomic.Bool } -// Default rDNS values. +// Default AdGuard Home reverse DNS values. const ( - defaultRDNSCacheSize = 10000 - defaultRDNSCacheTTL = 1 * 60 * 60 - defaultRDNSIPChSize = 256 + revDNSCacheSize = 10000 + + // TODO(e.burkov): Make these values configurable. + revDNSCacheTTL = 24 * 60 * 60 + revDNSFailureCacheTTL = 1 * 60 * 60 + + revDNSQueueSize = 256 ) // NewRDNS creates and returns initialized RDNS. @@ -48,14 +53,13 @@ func NewRDNS( clients: clients, ipCache: cache.New(cache.Config{ EnableLRU: true, - MaxCount: defaultRDNSCacheSize, + MaxCount: revDNSCacheSize, }), - ipCh: make(chan netip.Addr, defaultRDNSIPChSize), - } - if usePrivate { - rDNS.usePrivate = 1 + ipCh: make(chan netip.Addr, revDNSQueueSize), } + rDNS.usePrivate.Store(usePrivate) + go rDNS.workerLoop() return rDNS @@ -68,12 +72,8 @@ func NewRDNS( // approach since only unresolved locally-served addresses should be removed. // Implement when improving the cache. func (r *RDNS) ensurePrivateCache() { - var usePrivate uint32 - if r.exchanger.ResolvesPrivatePTR() { - usePrivate = 1 - } - - if atomic.CompareAndSwapUint32(&r.usePrivate, 1-usePrivate, usePrivate) { + usePrivate := r.exchanger.ResolvesPrivatePTR() + if r.usePrivate.CompareAndSwap(!usePrivate, usePrivate) { r.ipCache.Clear() } } @@ -84,25 +84,28 @@ func (r *RDNS) isCached(ip netip.Addr) (ok bool) { ipBytes := ip.AsSlice() now := uint64(time.Now().Unix()) if expire := r.ipCache.Get(ipBytes); len(expire) != 0 { - if binary.BigEndian.Uint64(expire) > now { - return true - } + return binary.BigEndian.Uint64(expire) > now } - // The cache entry either expired or doesn't exist. - ttl := make([]byte, 8) - binary.BigEndian.PutUint64(ttl, now+defaultRDNSCacheTTL) - r.ipCache.Set(ipBytes, ttl) - return false } +// cache caches the ip address for ttl seconds. +func (r *RDNS) cache(ip netip.Addr, ttl uint64) { + ipData := ip.AsSlice() + + ttlData := [8]byte{} + binary.BigEndian.PutUint64(ttlData[:], uint64(time.Now().Unix())+ttl) + + r.ipCache.Set(ipData, ttlData[:]) +} + // Begin adds the ip to the resolving queue if it is not cached or already // resolved. func (r *RDNS) Begin(ip netip.Addr) { r.ensurePrivateCache() - if r.isCached(ip) || r.clients.exists(ip, ClientSourceRDNS) { + if r.isCached(ip) || r.clients.clientSource(ip) > ClientSourceRDNS { return } @@ -120,15 +123,21 @@ func (r *RDNS) workerLoop() { defer log.OnPanic("rdns") for ip := range r.ipCh { + ttl := uint64(revDNSCacheTTL) + host, err := r.exchanger.Exchange(ip.AsSlice()) if err != nil { log.Debug("rdns: resolving %q: %s", ip, err) - - continue - } else if host == "" { - continue + if errors.Is(err, dnsforward.ErrRDNSFailed) { + // Cache failure for a less time. + ttl = revDNSFailureCacheTTL + } } - _ = r.clients.AddHost(ip, host, ClientSourceRDNS) + r.cache(ip, ttl) + + if host != "" { + _ = r.clients.AddHost(ip, host, ClientSourceRDNS) + } } } diff --git a/internal/home/rdns_test.go b/internal/home/rdns_test.go index 8dc675b5..4e424273 100644 --- a/internal/home/rdns_test.go +++ b/internal/home/rdns_test.go @@ -76,7 +76,7 @@ func TestRDNS_Begin(t *testing.T) { ipCache := cache.New(cache.Config{ EnableLRU: true, - MaxCount: defaultRDNSCacheSize, + MaxCount: revDNSCacheSize, }) ttl := make([]byte, binary.Size(uint64(0))) binary.BigEndian.PutUint64(ttl, uint64(time.Now().Add(100*time.Hour).Unix())) @@ -153,7 +153,7 @@ func TestRDNS_ensurePrivateCache(t *testing.T) { ipCache := cache.New(cache.Config{ EnableLRU: true, - MaxCount: defaultRDNSCacheSize, + MaxCount: revDNSCacheSize, }) ex := &rDNSExchanger{ @@ -200,25 +200,29 @@ func TestRDNS_WorkerLoop(t *testing.T) { errUpstream := aghtest.NewErrorUpstream() testCases := []struct { - ups upstream.Upstream - cliIP netip.Addr - wantLog string - name string + ups upstream.Upstream + cliIP netip.Addr + wantLog string + name string + wantClientSource clientSource }{{ - ups: locUpstream, - cliIP: localIP, - wantLog: "", - name: "all_good", + ups: locUpstream, + cliIP: localIP, + wantLog: "", + name: "all_good", + wantClientSource: ClientSourceRDNS, }, { - ups: errUpstream, - cliIP: netip.MustParseAddr("192.168.1.2"), - wantLog: `rdns: resolving "192.168.1.2": test upstream error`, - name: "resolve_error", + ups: errUpstream, + cliIP: netip.MustParseAddr("192.168.1.2"), + wantLog: `rdns: resolving "192.168.1.2": test upstream error`, + name: "resolve_error", + wantClientSource: ClientSourceNone, }, { - ups: locUpstream, - cliIP: netip.MustParseAddr("2a00:1450:400c:c06::93"), - wantLog: "", - name: "ipv6_good", + ups: locUpstream, + cliIP: netip.MustParseAddr("2a00:1450:400c:c06::93"), + wantLog: "", + name: "ipv6_good", + wantClientSource: ClientSourceRDNS, }} for _, tc := range testCases { @@ -237,6 +241,10 @@ func TestRDNS_WorkerLoop(t *testing.T) { }, clients: cc, ipCh: ch, + ipCache: cache.New(cache.Config{ + EnableLRU: true, + MaxCount: revDNSCacheSize, + }), } t.Run(tc.name, func(t *testing.T) { @@ -253,11 +261,9 @@ func TestRDNS_WorkerLoop(t *testing.T) { if tc.wantLog != "" { assert.Contains(t, w.String(), tc.wantLog) - - return } - assert.True(t, cc.exists(tc.cliIP, ClientSourceRDNS)) + assert.Equal(t, tc.wantClientSource, cc.clientSource(tc.cliIP)) }) } } diff --git a/internal/home/upgrade.go b/internal/home/upgrade.go index 132a82af..0f53bcdc 100644 --- a/internal/home/upgrade.go +++ b/internal/home/upgrade.go @@ -22,7 +22,7 @@ import ( ) // currentSchemaVersion is the current schema version. -const currentSchemaVersion = 14 +const currentSchemaVersion = 16 // These aliases are provided for convenience. type ( @@ -87,6 +87,8 @@ func upgradeConfigSchema(oldVersion int, diskConf yobj) (err error) { upgradeSchema11to12, upgradeSchema12to13, upgradeSchema13to14, + upgradeSchema14to15, + upgradeSchema15to16, } n := 0 @@ -802,6 +804,107 @@ func upgradeSchema13to14(diskConf yobj) (err error) { return nil } +// upgradeSchema14to15 performs the following changes: +// +// # BEFORE: +// 'dns': +// 'querylog_enabled': true +// 'querylog_file_enabled': true +// 'querylog_interval': '2160h' +// 'querylog_size_memory': 1000 +// +// # AFTER: +// 'querylog': +// 'enabled': true +// 'file_enabled': true +// 'interval': '2160h' +// 'size_memory': 1000 +// 'ignored': [] +func upgradeSchema14to15(diskConf yobj) (err error) { + log.Printf("Upgrade yaml: 14 to 15") + diskConf["schema_version"] = 15 + + dnsVal, ok := diskConf["dns"] + if !ok { + return nil + } + + dns, ok := dnsVal.(yobj) + if !ok { + return fmt.Errorf("unexpected type of dns: %T", dnsVal) + } + + type temp struct { + from string + to string + val any + } + replaces := []temp{ + {from: "querylog_enabled", to: "enabled", val: true}, + {from: "querylog_file_enabled", to: "file_enabled", val: true}, + {from: "querylog_interval", to: "interval", val: "2160h"}, + {from: "querylog_size_memory", to: "size_memory", val: 1000}, + } + qlog := map[string]any{ + "ignored": []any{}, + } + for _, r := range replaces { + v, has := dns[r.from] + if !has { + v = r.val + } + delete(dns, r.from) + qlog[r.to] = v + } + diskConf["querylog"] = qlog + + return nil +} + +// upgradeSchema15to16 performs the following changes: +// +// # BEFORE: +// 'dns': +// 'statistics_interval': 1 +// +// # AFTER: +// 'statistics': +// 'enabled': true +// 'interval': 1 +// 'ignored': [] +func upgradeSchema15to16(diskConf yobj) (err error) { + log.Printf("Upgrade yaml: 15 to 16") + diskConf["schema_version"] = 16 + + dnsVal, ok := diskConf["dns"] + if !ok { + return nil + } + + dns, ok := dnsVal.(yobj) + if !ok { + return fmt.Errorf("unexpected type of dns: %T", dnsVal) + } + + stats := map[string]any{ + "enabled": true, + "interval": 1, + "ignored": []any{}, + } + + k := "statistics_interval" + v, has := dns[k] + if has { + stats["enabled"] = v != 0 + stats["interval"] = v + } + delete(dns, k) + + diskConf["statistics"] = stats + + return nil +} + // TODO(a.garipov): Replace with log.Output when we port it to our logging // package. func funcName() string { diff --git a/internal/home/upgrade_test.go b/internal/home/upgrade_test.go index 949dac5f..14a43f70 100644 --- a/internal/home/upgrade_test.go +++ b/internal/home/upgrade_test.go @@ -640,3 +640,110 @@ func TestUpgradeSchema13to14(t *testing.T) { }) } } + +func TestUpgradeSchema14to15(t *testing.T) { + const newSchemaVer = 15 + + defaultWantObj := yobj{ + "querylog": map[string]any{ + "enabled": true, + "file_enabled": true, + "interval": "2160h", + "size_memory": 1000, + "ignored": []any{}, + }, + "dns": map[string]any{}, + "schema_version": newSchemaVer, + } + + testCases := []struct { + in yobj + want yobj + name string + }{{ + in: yobj{ + "dns": map[string]any{ + "querylog_enabled": true, + "querylog_file_enabled": true, + "querylog_interval": "2160h", + "querylog_size_memory": 1000, + }, + }, + want: defaultWantObj, + name: "basic", + }, { + in: yobj{ + "dns": map[string]any{}, + }, + want: defaultWantObj, + name: "default_values", + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + err := upgradeSchema14to15(tc.in) + require.NoError(t, err) + + assert.Equal(t, tc.want, tc.in) + }) + } +} + +func TestUpgradeSchema15to16(t *testing.T) { + const newSchemaVer = 16 + + defaultWantObj := yobj{ + "statistics": map[string]any{ + "enabled": true, + "interval": 1, + "ignored": []any{}, + }, + "dns": map[string]any{}, + "schema_version": newSchemaVer, + } + + testCases := []struct { + in yobj + want yobj + name string + }{{ + in: yobj{ + "dns": map[string]any{ + "statistics_interval": 1, + }, + }, + want: defaultWantObj, + name: "basic", + }, { + in: yobj{ + "dns": map[string]any{}, + }, + want: defaultWantObj, + name: "default_values", + }, { + in: yobj{ + "dns": map[string]any{ + "statistics_interval": 0, + }, + }, + want: yobj{ + "statistics": map[string]any{ + "enabled": false, + "interval": 0, + "ignored": []any{}, + }, + "dns": map[string]any{}, + "schema_version": newSchemaVer, + }, + name: "stats_disabled", + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + err := upgradeSchema15to16(tc.in) + require.NoError(t, err) + + assert.Equal(t, tc.want, tc.in) + }) + } +} diff --git a/internal/home/web.go b/internal/home/web.go index 96c0a6a9..8f9b23f1 100644 --- a/internal/home/web.go +++ b/internal/home/web.go @@ -15,8 +15,8 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/NYTimes/gziphandler" - "github.com/lucas-clemente/quic-go" - "github.com/lucas-clemente/quic-go/http3" + "github.com/quic-go/quic-go" + "github.com/quic-go/quic-go/http3" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" ) diff --git a/internal/querylog/http.go b/internal/querylog/http.go index f5c2960f..e8fbbc30 100644 --- a/internal/querylog/http.go +++ b/internal/querylog/http.go @@ -44,6 +44,9 @@ func (l *queryLog) initWeb() { } func (l *queryLog) handleQueryLog(w http.ResponseWriter, r *http.Request) { + l.lock.Lock() + defer l.lock.Unlock() + params, err := l.parseSearchParams(r) if err != nil { aghhttp.Error(r, w, http.StatusBadRequest, "failed to parse params: %s", err) diff --git a/internal/querylog/qlog.go b/internal/querylog/qlog.go index 24eec40e..32ac1a73 100644 --- a/internal/querylog/qlog.go +++ b/internal/querylog/qlog.go @@ -247,3 +247,13 @@ func (l *queryLog) Add(params *AddParams) { }() } } + +// ShouldLog returns true if request for the host should be logged. +func (l *queryLog) ShouldLog(host string, _, _ uint16) bool { + return !l.isIgnored(host) +} + +// isIgnored returns true if the host is in the Ignored list. +func (l *queryLog) isIgnored(host string) bool { + return l.conf.Ignored.Has(host) +} diff --git a/internal/querylog/qlog_test.go b/internal/querylog/qlog_test.go index cc470438..75f02536 100644 --- a/internal/querylog/qlog_test.go +++ b/internal/querylog/qlog_test.go @@ -10,6 +10,7 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/dnsproxy/proxyutil" + "github.com/AdguardTeam/golibs/stringutil" "github.com/AdguardTeam/golibs/testutil" "github.com/AdguardTeam/golibs/timeutil" "github.com/miekg/dns" @@ -249,6 +250,48 @@ func TestQueryLogFileDisabled(t *testing.T) { assert.Equal(t, "example2.org", ll[1].QHost) } +func TestQueryLogShouldLog(t *testing.T) { + const ( + ignored1 = "ignor.ed" + ignored2 = "ignored.to" + ) + set := stringutil.NewSet(ignored1, ignored2) + + l := newQueryLog(Config{ + Enabled: true, + RotationIvl: timeutil.Day, + MemSize: 100, + BaseDir: t.TempDir(), + Ignored: set, + }) + + testCases := []struct { + name string + host string + wantLog bool + }{{ + name: "log", + host: "example.com", + wantLog: true, + }, { + name: "no_log_ignored_1", + host: ignored1, + wantLog: false, + }, { + name: "no_log_ignored_2", + host: ignored2, + wantLog: false, + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + res := l.ShouldLog(tc.host, dns.TypeA, dns.ClassINET) + + assert.Equal(t, tc.wantLog, res) + }) + } +} + func addEntry(l *queryLog, host string, answerStr, client net.IP) { q := dns.Msg{ Question: []dns.Question{{ diff --git a/internal/querylog/querylog.go b/internal/querylog/querylog.go index 2d8e397f..28775774 100644 --- a/internal/querylog/querylog.go +++ b/internal/querylog/querylog.go @@ -10,6 +10,7 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" + "github.com/AdguardTeam/golibs/stringutil" "github.com/AdguardTeam/golibs/timeutil" "github.com/miekg/dns" ) @@ -26,6 +27,9 @@ type QueryLog interface { // WriteDiskConfig - write configuration WriteDiskConfig(c *Config) + + // ShouldLog returns true if request for the host should be logged. + ShouldLog(host string, qType, qClass uint16) bool } // Config is the query log configuration structure. @@ -71,6 +75,10 @@ type Config struct { // AnonymizeClientIP tells if the query log should anonymize clients' IP // addresses. AnonymizeClientIP bool + + // Ignored is the list of host names, which should not be written to + // log. + Ignored *stringutil.Set } // AddParams is the parameters for adding an entry. diff --git a/internal/querylog/querylogfile.go b/internal/querylog/querylogfile.go index f46e15cd..23e750fa 100644 --- a/internal/querylog/querylogfile.go +++ b/internal/querylog/querylogfile.go @@ -155,6 +155,9 @@ func (l *queryLog) periodicRotate() { // checkAndRotate rotates log files if those are older than the specified // rotation interval. func (l *queryLog) checkAndRotate() { + l.lock.Lock() + defer l.lock.Unlock() + oldest, err := l.readFileFirstTimeValue() if err != nil && !errors.Is(err, os.ErrNotExist) { log.Error("querylog: reading oldest record for rotation: %s", err) diff --git a/internal/querylog/search.go b/internal/querylog/search.go index 8fb32e60..c1df5d5f 100644 --- a/internal/querylog/search.go +++ b/internal/querylog/search.go @@ -263,6 +263,10 @@ func (l *queryLog) readNextEntry( e = &logEntry{} decodeLogEntry(e, line) + if l.isIgnored(e.QHost) { + return nil, ts, nil + } + e.client, err = l.client(e.ClientID, e.IP.String(), cache) if err != nil { log.Error( diff --git a/internal/stats/http.go b/internal/stats/http.go index b06a7cdc..4b041455 100644 --- a/internal/stats/http.go +++ b/internal/stats/http.go @@ -5,7 +5,6 @@ package stats import ( "encoding/json" "net/http" - "sync/atomic" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" @@ -41,10 +40,11 @@ type StatsResp struct { // handleStats handles requests to the GET /control/stats endpoint. func (s *StatsCtx) handleStats(w http.ResponseWriter, r *http.Request) { - limit := atomic.LoadUint32(&s.limitHours) + s.lock.Lock() + defer s.lock.Unlock() start := time.Now() - resp, ok := s.getData(limit) + resp, ok := s.getData(s.limitHours) log.Debug("stats: prepared data in %v", time.Since(start)) if !ok { @@ -65,7 +65,13 @@ type configResp struct { // handleStatsInfo handles requests to the GET /control/stats_info endpoint. func (s *StatsCtx) handleStatsInfo(w http.ResponseWriter, r *http.Request) { - resp := configResp{IntervalDays: atomic.LoadUint32(&s.limitHours) / 24} + s.lock.Lock() + defer s.lock.Unlock() + + resp := configResp{IntervalDays: s.limitHours / 24} + if !s.enabled { + resp.IntervalDays = 0 + } _ = aghhttp.WriteJSONResponse(w, r, resp) } diff --git a/internal/stats/stats.go b/internal/stats/stats.go index b1df74c1..9b53874d 100644 --- a/internal/stats/stats.go +++ b/internal/stats/stats.go @@ -15,16 +15,10 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" + "github.com/AdguardTeam/golibs/stringutil" "go.etcd.io/bbolt" ) -// DiskConfig is the configuration structure that is stored in file. -type DiskConfig struct { - // Interval is the number of days for which the statistics are collected - // before flushing to the database. - Interval uint32 `yaml:"statistics_interval"` -} - // checkInterval returns true if days is valid to be used as statistics // retention interval. The valid values are 0, 1, 7, 30 and 90. func checkInterval(days uint32) (ok bool) { @@ -51,6 +45,12 @@ type Config struct { // LimitDays is the maximum number of days to collect statistics into the // current unit. LimitDays uint32 + + // Enabled tells if the statistics are enabled. + Enabled bool + + // Ignored is the list of host names, which should not be counted. + Ignored *stringutil.Set } // Interface is the statistics interface to be used by other packages. @@ -68,30 +68,22 @@ type Interface interface { TopClientsIP(limit uint) []netip.Addr // WriteDiskConfig puts the Interface's configuration to the dc. - WriteDiskConfig(dc *DiskConfig) + WriteDiskConfig(dc *Config) + + // ShouldCount returns true if request for the host should be counted. + ShouldCount(host string, qType, qClass uint16) bool } // StatsCtx collects the statistics and flushes it to the database. Its default // flushing interval is one hour. -// -// TODO(e.burkov): Use atomic.Pointer for accessing db in go1.19. type StatsCtx struct { - // limitHours is the maximum number of hours to collect statistics into the - // current unit. - // - // It is of type uint32 to be accessed by atomic. It's arranged at the - // beginning of the structure to keep 64-bit alignment. - limitHours uint32 - // currMu protects curr. currMu *sync.RWMutex // curr is the actual statistics collection result. curr *unit - // dbMu protects db. - dbMu *sync.Mutex // db is the opened statistics database, if any. - db *bbolt.DB + db atomic.Pointer[bbolt.DB] // unitIDGen is the function that generates an identifier for the current // unit. It's here for only testing purposes. @@ -106,6 +98,21 @@ type StatsCtx struct { // filename is the name of database file. filename string + + // lock protects all the fields below. + lock sync.Mutex + + // enabled tells if the statistics are enabled. + enabled bool + + // limitHours is the maximum number of hours to collect statistics into the + // current unit. + // + // TODO(s.chzhen): Rewrite to use time.Duration. + limitHours uint32 + + // ignored is the list of host names, which should not be counted. + ignored *stringutil.Set } // New creates s from conf and properly initializes it. Don't use s before @@ -114,11 +121,12 @@ func New(conf Config) (s *StatsCtx, err error) { defer withRecovered(&err) s = &StatsCtx{ + enabled: conf.Enabled, currMu: &sync.RWMutex{}, - dbMu: &sync.Mutex{}, filename: conf.Filename, configModified: conf.ConfigModified, httpRegister: conf.HTTPRegister, + ignored: conf.Ignored, } if s.limitHours = conf.LimitDays * 24; !checkInterval(conf.LimitDays) { s.limitHours = 24 @@ -137,7 +145,7 @@ func New(conf Config) (s *StatsCtx, err error) { var udb *unitDB id := s.unitIDGen() - tx, err := s.db.Begin(true) + tx, err := s.db.Load().Begin(true) if err != nil { return nil, fmt.Errorf("stats: opening a transaction: %w", err) } @@ -191,7 +199,7 @@ func (s *StatsCtx) Start() { func (s *StatsCtx) Close() (err error) { defer func() { err = errors.Annotate(err, "stats: closing: %w") }() - db := s.swapDatabase(nil) + db := s.db.Swap(nil) if db == nil { return nil } @@ -220,7 +228,10 @@ func (s *StatsCtx) Close() (err error) { // Update implements the Interface interface for *StatsCtx. func (s *StatsCtx) Update(e Entry) { - if atomic.LoadUint32(&s.limitHours) == 0 { + s.lock.Lock() + defer s.lock.Unlock() + + if !s.enabled || s.limitHours == 0 { return } @@ -248,14 +259,22 @@ func (s *StatsCtx) Update(e Entry) { } // WriteDiskConfig implements the Interface interface for *StatsCtx. -func (s *StatsCtx) WriteDiskConfig(dc *DiskConfig) { - dc.Interval = atomic.LoadUint32(&s.limitHours) / 24 +func (s *StatsCtx) WriteDiskConfig(dc *Config) { + s.lock.Lock() + defer s.lock.Unlock() + + dc.LimitDays = s.limitHours / 24 + dc.Enabled = s.enabled + dc.Ignored = s.ignored } // TopClientsIP implements the [Interface] interface for *StatsCtx. func (s *StatsCtx) TopClientsIP(maxCount uint) (ips []netip.Addr) { - limit := atomic.LoadUint32(&s.limitHours) - if limit == 0 { + s.lock.Lock() + defer s.lock.Unlock() + + limit := s.limitHours + if !s.enabled || limit == 0 { return nil } @@ -284,25 +303,6 @@ func (s *StatsCtx) TopClientsIP(maxCount uint) (ips []netip.Addr) { return ips } -// database returns the database if it's opened. It's safe for concurrent use. -func (s *StatsCtx) database() (db *bbolt.DB) { - s.dbMu.Lock() - defer s.dbMu.Unlock() - - return s.db -} - -// swapDatabase swaps the database with another one and returns it. It's safe -// for concurrent use. -func (s *StatsCtx) swapDatabase(with *bbolt.DB) (old *bbolt.DB) { - s.dbMu.Lock() - defer s.dbMu.Unlock() - - old, s.db = s.db, with - - return old -} - // deleteOldUnits walks the buckets available to tx and deletes old units. It // returns the number of deletions performed. func deleteOldUnits(tx *bbolt.Tx, firstID uint32) (deleted int) { @@ -358,10 +358,7 @@ func (s *StatsCtx) openDB() (err error) { // Use defer to unlock the mutex as soon as possible. defer log.Debug("stats: database opened") - s.dbMu.Lock() - defer s.dbMu.Unlock() - - s.db = db + s.db.Store(db) return nil } @@ -369,6 +366,9 @@ func (s *StatsCtx) openDB() (err error) { func (s *StatsCtx) flush() (cont bool, sleepFor time.Duration) { id := s.unitIDGen() + s.lock.Lock() + defer s.lock.Unlock() + s.currMu.Lock() defer s.currMu.Unlock() @@ -377,12 +377,12 @@ func (s *StatsCtx) flush() (cont bool, sleepFor time.Duration) { return false, 0 } - limit := atomic.LoadUint32(&s.limitHours) + limit := s.limitHours if limit == 0 || ptr.id == id { return true, time.Second } - db := s.database() + db := s.db.Load() if db == nil { return true, 0 } @@ -437,21 +437,30 @@ func (s *StatsCtx) periodicFlush() { } func (s *StatsCtx) setLimit(limitDays int) { - atomic.StoreUint32(&s.limitHours, uint32(24*limitDays)) - if limitDays == 0 { - if err := s.clear(); err != nil { - log.Error("stats: %s", err) - } + s.lock.Lock() + defer s.lock.Unlock() + + if limitDays != 0 { + s.enabled = true + s.limitHours = uint32(24 * limitDays) + log.Debug("stats: set limit: %d days", limitDays) + + return } - log.Debug("stats: set limit: %d days", limitDays) + s.enabled = false + log.Debug("stats: disabled") + + if err := s.clear(); err != nil { + log.Error("stats: %s", err) + } } // Reset counters and clear database func (s *StatsCtx) clear() (err error) { defer func() { err = errors.Annotate(err, "clearing: %w") }() - db := s.swapDatabase(nil) + db := s.db.Swap(nil) if db != nil { var tx *bbolt.Tx tx, err = db.Begin(true) @@ -495,7 +504,7 @@ func (s *StatsCtx) clear() (err error) { } func (s *StatsCtx) loadUnits(limit uint32) (units []*unitDB, firstID uint32) { - db := s.database() + db := s.db.Load() if db == nil { return nil, 0 } @@ -547,3 +556,13 @@ func (s *StatsCtx) loadUnits(limit uint32) (units []*unitDB, firstID uint32) { return units, firstID } + +// ShouldCount returns true if request for the host should be counted. +func (s *StatsCtx) ShouldCount(host string, _, _ uint16) bool { + return !s.isIgnored(host) +} + +// isIgnored returns true if the host is in the Ignored list. +func (s *StatsCtx) isIgnored(host string) bool { + return s.ignored.Has(host) +} diff --git a/internal/stats/stats_internal_test.go b/internal/stats/stats_internal_test.go index 7d5d9fef..a6ad5ee2 100644 --- a/internal/stats/stats_internal_test.go +++ b/internal/stats/stats_internal_test.go @@ -47,8 +47,6 @@ func TestStats_races(t *testing.T) { startTime := time.Now() testutil.CleanupAndRequireSuccess(t, s.Close) - type signal = struct{} - writeFunc := func(start, fin *sync.WaitGroup, waitCh <-chan unit, i int) { e := Entry{ Domain: fmt.Sprintf("example-%d.org", i), diff --git a/internal/stats/stats_test.go b/internal/stats/stats_test.go index cd88cbaf..f795c2da 100644 --- a/internal/stats/stats_test.go +++ b/internal/stats/stats_test.go @@ -53,6 +53,7 @@ func TestStats(t *testing.T) { conf := stats.Config{ Filename: filepath.Join(t.TempDir(), "stats.db"), LimitDays: 1, + Enabled: true, UnitID: constUnitID, HTTPRegister: func(_, url string, handler http.HandlerFunc) { handlers[url] = handler @@ -158,6 +159,7 @@ func TestLargeNumbers(t *testing.T) { conf := stats.Config{ Filename: filepath.Join(t.TempDir(), "stats.db"), LimitDays: 1, + Enabled: true, UnitID: func() (id uint32) { return atomic.LoadUint32(&curHour) }, HTTPRegister: func(_, url string, handler http.HandlerFunc) { handlers[url] = handler }, } diff --git a/internal/stats/unit.go b/internal/stats/unit.go index 0e39cfea..99e04429 100644 --- a/internal/stats/unit.go +++ b/internal/stats/unit.go @@ -10,6 +10,7 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" + "github.com/AdguardTeam/golibs/stringutil" "go.etcd.io/bbolt" ) @@ -341,11 +342,13 @@ type pairsGetter func(u *unitDB) (pairs []countPair) // topsCollector collects statistics about highest values from the given *unitDB // slice using pg to retrieve data. -func topsCollector(units []*unitDB, max int, pg pairsGetter) []map[string]uint64 { +func topsCollector(units []*unitDB, max int, ignored *stringutil.Set, pg pairsGetter) []map[string]uint64 { m := map[string]uint64{} for _, u := range units { for _, cp := range pg(u) { - m[cp.Name] += cp.Count + if !ignored.Has(cp.Name) { + m[cp.Name] += cp.Count + } } } a2 := convertMapToSlice(m, max) @@ -408,9 +411,9 @@ func (s *StatsCtx) getData(limit uint32) (StatsResp, bool) { BlockedFiltering: statsCollector(units, firstID, timeUnit, func(u *unitDB) (num uint64) { return u.NResult[RFiltered] }), ReplacedSafebrowsing: statsCollector(units, firstID, timeUnit, func(u *unitDB) (num uint64) { return u.NResult[RSafeBrowsing] }), ReplacedParental: statsCollector(units, firstID, timeUnit, func(u *unitDB) (num uint64) { return u.NResult[RParental] }), - TopQueried: topsCollector(units, maxDomains, func(u *unitDB) (pairs []countPair) { return u.Domains }), - TopBlocked: topsCollector(units, maxDomains, func(u *unitDB) (pairs []countPair) { return u.BlockedDomains }), - TopClients: topsCollector(units, maxClients, func(u *unitDB) (pairs []countPair) { return u.Clients }), + TopQueried: topsCollector(units, maxDomains, s.ignored, func(u *unitDB) (pairs []countPair) { return u.Domains }), + TopBlocked: topsCollector(units, maxDomains, s.ignored, func(u *unitDB) (pairs []countPair) { return u.BlockedDomains }), + TopClients: topsCollector(units, maxClients, nil, func(u *unitDB) (pairs []countPair) { return u.Clients }), } // Total counters: diff --git a/internal/tools/go.mod b/internal/tools/go.mod index bf45d275..0b4e6629 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -1,6 +1,6 @@ module github.com/AdguardTeam/AdGuardHome/internal/tools -go 1.18 +go 1.19 require ( github.com/fzipp/gocyclo v0.6.0 @@ -8,10 +8,10 @@ require ( github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 github.com/kisielk/errcheck v1.6.3 github.com/kyoh86/looppointer v0.2.1 - github.com/securego/gosec/v2 v2.14.0 - golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2 - golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33 - honnef.co/go/tools v0.3.3 + github.com/securego/gosec/v2 v2.15.0 + golang.org/x/tools v0.6.0 + golang.org/x/vuln v0.0.0-20230213165600-1a019b0c7f30 + honnef.co/go/tools v0.4.1 mvdan.cc/gofumpt v0.4.0 mvdan.cc/unparam v0.0.0-20230125043941-70a0ce6e7b95 ) @@ -24,10 +24,10 @@ require ( github.com/kyoh86/nolint v0.0.1 // indirect github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 // indirect - golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201 // indirect - golang.org/x/mod v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb // indirect + golang.org/x/exp/typeparams v0.0.0-20230213192124-5e25df0256eb // indirect + golang.org/x/mod v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.4.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + golang.org/x/sys v0.5.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 4006de44..bc821c41 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -7,6 +7,7 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0= github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc= github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= @@ -29,14 +30,14 @@ github.com/kyoh86/nolint v0.0.1 h1:GjNxDEkVn2wAxKHtP7iNTrRxytRZ1wXxLV5j4XzGfRU= github.com/kyoh86/nolint v0.0.1/go.mod h1:1ZiZZ7qqrZ9dZegU96phwVcdQOMKIqRzFJL3ewq9gtI= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= -github.com/onsi/ginkgo/v2 v2.3.1 h1:8SbseP7qM32WcvE6VaN6vfXxv698izmsJ1UQX9ve7T8= -github.com/onsi/gomega v1.22.1 h1:pY8O4lBfsHKZHM/6nrxkhVPUznOlIu3quZcKP/M20KI= +github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/securego/gosec/v2 v2.14.0 h1:U1hfs0oBackChXA72plCYVA4cOlQ4gO+209dHiSNZbI= -github.com/securego/gosec/v2 v2.14.0/go.mod h1:Ff03zEi5NwSOfXj9nFpBfhbWTtROCkg9N+9goggrYn4= +github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw= +github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -53,22 +54,22 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 h1:BEABXpNXLEz0WxtA+6CQIz2xkg80e+1zrhWyMcq8VzE= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201 h1:O1QcdQUR9htWjzzsXVFPX+RJ3n1P/u/5bsQR8dbs5BY= -golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= +golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp/typeparams v0.0.0-20230213192124-5e25df0256eb h1:WGs/bGIWYyAY5PVgGGMXqGGCxSJz4fpoUExb/vgqNCU= +golang.org/x/exp/typeparams v0.0.0-20230213192124-5e25df0256eb/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= +golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -83,35 +84,33 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2 h1:v0FhRDmSCNH/0EurAT6T8KRY4aNuUhz6/WwBMxG+gvQ= -golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= -golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33 h1:je2aB5nnlseeGvJy5clg6EyC3jjbbCNsRDroC3qQJsA= -golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33/go.mod h1:cBP4HMKv0X+x96j8IJWCKk0eqpakBmmHjKGSSC0NaYE= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/vuln v0.0.0-20230213165600-1a019b0c7f30 h1:Q4B8LhSjZGto/+P5REBb4N51ec2H4efRqjBIeJ6nv/Y= +golang.org/x/vuln v0.0.0-20230213165600-1a019b0c7f30/go.mod h1:cBP4HMKv0X+x96j8IJWCKk0eqpakBmmHjKGSSC0NaYE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= -honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +honnef.co/go/tools v0.4.1 h1:HPeloSr0mLOEMOkhT9Au5aeki44kvP6ka3v1xIsM6Zo= +honnef.co/go/tools v0.4.1/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= mvdan.cc/unparam v0.0.0-20230125043941-70a0ce6e7b95 h1:n/xhncJPSt0YzfOhnyn41XxUdrWQNgmLBG72FE27Fqw= diff --git a/scripts/README.md b/scripts/README.md index 460f5067..5b7475bb 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -205,7 +205,7 @@ code from [the repo][companiesrepo]. ### Usage ```sh -( cd scripts/companiesdb && sh ./download.sh ) +sh ./scripts/companiesdb/download.sh ``` [companiesrepo]: https://github.com/AdguardTeam/companiesdb diff --git a/scripts/companiesdb/download.sh b/scripts/companiesdb/download.sh index e56166e0..8aa8c8cb 100755 --- a/scripts/companiesdb/download.sh +++ b/scripts/companiesdb/download.sh @@ -4,11 +4,9 @@ set -e -f -u -x # This script syncs companies DB that we bundle with AdGuard Home. The source # for this database is https://github.com/AdguardTeam/companiesdb. +# +trackers_url='https://raw.githubusercontent.com/AdguardTeam/companiesdb/main/dist/trackers.json' +output='./client/src/helpers/trackers/trackers.json' +readonly trackers_url output -whotracksme='https://raw.githubusercontent.com/AdguardTeam/companiesdb/main/dist/whotracksme.json' -adguard='https://raw.githubusercontent.com/AdguardTeam/companiesdb/main/dist/adguard.json' -base_path='../../client/src/helpers/trackers' -readonly whotracksme adguard base_path - -curl -o "${base_path}/whotracksme.json" -v "$whotracksme" -curl -o "${base_path}/adguard.json" -v "$adguard" +curl -o "$output" -v "$trackers_url" diff --git a/scripts/install.sh b/scripts/install.sh index 5931fd3c..58fd37fe 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -338,6 +338,18 @@ download_wget() { wget --no-verbose -O "$wget_output" "$1" } +# download_fetch uses fetch(1) to download a file. The first argument is the +# URL. The second argument is optional and is the output file. +download_fetch() { + fetch_output="${2:-}" + if [ "$fetch_output" = '' ] + then + fetch -o '-' "$1" + else + fetch -o "$fetch_output" "$1" + fi +} + # Function set_download_func sets the appropriate function for downloading # files. set_download_func() { @@ -348,6 +360,9 @@ set_download_func() { elif is_command 'wget' then download_func='download_wget' + elif is_command 'fetch' + then + download_func='download_fetch' else error_exit "either curl or wget is required to install AdGuard Home via this script" fi diff --git a/scripts/make/go-lint.sh b/scripts/make/go-lint.sh index ff8e803f..689a0a1a 100644 --- a/scripts/make/go-lint.sh +++ b/scripts/make/go-lint.sh @@ -227,8 +227,9 @@ gocyclo --over 13 ./internal/dhcpd ./internal/filtering/ ./internal/home/ # Apply stricter standards to new or somewhat refactored code. gocyclo --over 10 ./internal/aghio/ ./internal/aghnet/ ./internal/aghos/\ ./internal/aghtest/ ./internal/dnsforward/ ./internal/filtering/rewrite/\ - ./internal/stats/ ./internal/tools/ ./internal/updater/ ./internal/version/\ - ./scripts/vetted-filters/ ./main.go + ./internal/stats/ ./internal/tools/ ./internal/updater/\ + ./internal/version/ ./scripts/blocked-services/ ./scripts/vetted-filters/\ + ./main.go ineffassign ./... diff --git a/scripts/make/go-test.sh b/scripts/make/go-test.sh index effefca8..e37c7f18 100644 --- a/scripts/make/go-test.sh +++ b/scripts/make/go-test.sh @@ -40,7 +40,7 @@ readonly go count_flags='--count=1' cover_flags='--coverprofile=./coverage.txt' shuffle_flags='--shuffle=on' -timeout_flags="${TIMEOUT_FLAGS:---timeout=30s}" +timeout_flags="${TIMEOUT_FLAGS:---timeout=90s}" readonly count_flags cover_flags shuffle_flags timeout_flags "$go" test "$count_flags" "$cover_flags" "$race_flags" "$shuffle_flags" "$timeout_flags"\