Is this serious?

I actually did not realize how boggy the internet has become until, after years, i turned off the script blockers out of curiosity and visited a random mainstream website. It was rather disturbing. It takes quite some effort to dive into this topic, and the extent and complexity of interconnected ad and profilig networks is simply crazy and probably out of control.

Just an example

Here’s the roundup of about 90 newspaper and magazine websites. They have been chosen using public (ad-related) databases with the restriction to have at least 50,000 printed copies per issue and, of course, a website. They needed to be matched by name across two databases and this is what came out. Some websites have been added by hand. (source code and notebook)

On each site, Alice

  • clicked the yes-accept-all-just-leave-me-alone button
  • scrolled the page down to the bottom
  • clicked one article and scrolled about

The following table is conveniently ordered by third parties, but can be ordered in any way you like if javascript is enabled. Third-party means anything that got requested by the browser which is from a different domain name than the actual website. To be honest, i did not distinguish between first-party CDN and true third-party requests because it would require manual examination and it was tiring enough to browse through all the pages in the first place.

(If you think one should write a script that reliably clicks the accept-all button on all pages that have one, you’re welcome to join efforts. For some reason it’s made very hard)

title shareholders third parties requests tp-requests tp-requests %
www.saarbruecker-zeitung.de Saarbrücker Zeitung 33 107 1438 1281 89.08
www.waz.de Westdeutsche Allgemeine Zeitung 10 106 1456 1272 87.36
www.general-anzeiger-bonn.de General-Anzeiger 32 105 1326 1325 99.92
www.volksfreund.de Trierischer Volksfreund 34 96 1359 1157 85.14
www.aachener-nachrichten.de Aachener Nachrichten 49 90 958 754 78.71
www.abendzeitung-muenchen.de Abendzeitung 6 89 1947 1785 91.68
www.merkur.de Dachauer Nachrichten 26 85 1415 1336 94.42
www.swp.de Alb-Bote 29 83 987 881 89.26
www.welt.de Die Welt 18 82 1238 1010 81.58
www.kreiszeitung.de Kreiszeitung 38 82 1045 984 94.16
www.all-in.de Allgäuer Zeitung 6 82 919 787 85.64
www.nordbayern.de Altmühl-Bote 14 80 1180 962 81.53
www.echo-online.de Darmstädter Echo 41 79 863 783 90.73
www.tz.de Amberger Zeitung 27 79 1245 1156 92.85
www.augsburger-allgemeine.de Augsburger Allgemeine 3 77 1072 853 79.57
www.handelsblatt.com Handelsblatt 11 75 1012 641 63.34
www.nwzonline.de Nordwest-Zeitung 9 75 1252 986 78.75
www.suedkurier.de Südkurier 5 75 841 681 80.98
www.wiesbadener-kurier.de Idsteiner Zeitung 38 74 923 851 92.20
www.bz-berlin.de B.Z. 18 72 1254 1117 89.07
www.fr.de Frankfurter Rundschau 28 72 1147 1038 90.50
spiegel.de Der Tagesspiegel 12 72 1076 759 70.54
www.azonline.de Allgemeine Zeitung 22 71 1000 905 90.50
www.main-echo.de Bote vom Unter-Main 7 71 1197 1140 95.24
www.wz.de WZ Westdeutsche Zeitung 33 70 739 604 81.73
www.freiepresse.de Freie Presse 18 70 537 418 77.84
www.lvz.de Döbelner Allgemeine 43 70 1064 991 93.14
www.rnz.de Nordbadische Nachrichten 5 69 997 810 81.24
www.mz-web.de Mitteldeutsche Zeitung 39 69 481 348 72.35
www.moz.de Gransee-Zeitung 29 69 755 645 85.43
www.westfalen-blatt.de Bünder Tageblatt 18 69 1084 937 86.44
www.donaukurier.de Donaukurier 7 67 929 747 80.41
www.stuttgarter-zeitung.de Stuttgarter Zeitung 60 67 871 694 79.68
www.ln-online.de Bad Schwartauer Nachrichten 32 67 1005 962 95.72
www.focus.de Focus 10 67 1087 802 73.78
www.stuttgarter-nachrichten.de Fellbacher Zeitung 17 66 816 619 75.86
www.lr-online.de Lausitzer Rundschau 7 66 721 595 82.52
www.noz.de Bersenbrücker Kreisblatt 10 66 789 737 93.41
www.volksstimme.de Volksstimme 6 64 1064 984 92.48
www.ovb-online.de Chiemgau-Zeitung 26 64 781 694 88.86
www.ostsee-zeitung.de Ostsee-Zeitung 35 64 936 885 94.55
www.schwarzwaelder-bote.de Schwarzwälder Bote 60 64 946 725 76.64
www.neuepresse.de Neue Presse 29 63 1113 1050 94.34
www.stimme.de Heilbronner Stimme 17 63 857 768 89.61
www.goettinger-tageblatt.de Eichsfelder Tageblatt 31 62 801 746 93.13
www.onetz.de Amberger Zeitung 13 61 834 593 71.10
www.bild.de BILD-Zeitung 18 61 1319 937 71.04
www.mainpost.de Bote vom Haßgau 6 60 694 461 66.43
www.wa.de Allgemeine Laber-Zeitung 27 60 823 751 91.25
www.freitag.de der Freitag 4 59 682 537 78.74
www.tagesspiegel.de Der Tagesspiegel 12 59 847 639 75.44
www.svz.de Der Prignitzer 16 56 1375 1081 78.62
www.rp-online.de Bergische Morgenpost 36 56 499 330 66.13
www.kn-online.de Kieler Nachrichten 30 56 909 840 92.41
www.nordkurier.de Nordkurier 35 56 520 432 83.08
www.muensterschezeitung.de Grevener Zeitung 19 55 813 659 81.06
www.maz-online.de Brandenburger Kurier 42 54 945 868 91.85
www.heise.de Heise Online 4 54 832 691 83.05
www.faz.net Frankfurter Allgemeine Sonntagszeitung 12 52 692 409 59.10
www.rheinpfalz.de Die Rheinpfalz 17 50 682 511 74.93
www.badische-zeitung.de Badische Zeitung 12 49 648 470 72.53
www.infranken.de Bayerische Rundschau 25 46 515 417 80.97
www.zeit.de Die Zeit 16 45 719 452 62.87
www.morgenweb.de Bergsträßer Anzeiger 26 44 628 625 99.52
www.berliner-kurier.de Berliner Kurier 4 41 329 303 92.10
www.nw.de Bad Oeynhausener Kurier 27 39 634 528 83.28
www.aerztezeitung.de Ärzte Zeitung 15 37 328 240 73.17
www.schwaebische.de Aalener Nachrichten 40 35 464 349 75.22
www.sueddeutsche.de Süddeutsche Zeitung 43 34 547 232 42.41
www.saechsische.de Chemnitzer Morgenpost 12 28 374 238 63.64
taz.de die tageszeitung 2 27 1106 839 75.86
www.berliner-zeitung.de Berliner Zeitung 4 26 236 188 79.66
bnn.de Acher- und Bühler Bote 2 23 269 208 77.32
www.epochtimes.de The Epoch Times 2 23 372 238 63.98
deutsche-wirtschafts-nachrichten.de Deutsche Wirtschaftsnachrichten 5 22 350 285 81.43
www.rhein-zeitung.de Nahe-Zeitung 5 21 311 191 61.41
www.architekturzeitung.com Architekturzeitung 0 20 797 615 77.16
www.idowa.de Allgemeine Laber-Zeitung 3 20 278 147 52.88
jungefreiheit.de Junge Freiheit 5 20 509 275 54.03
www.mittelbayerische.de Bayerwald Echo 11 18 295 150 50.85
linkezeitung.de Linke Zeitung 0 16 273 270 98.90
www.kath.net Katholische Nachrichten 0 15 158 64 40.51
www.medical-tribune.de Medical Tribune 0 14 124 84 67.74
www.sonntagsblatt.de Sonntagsblatt 1 13 314 211 67.20
www.generalanzeiger.de Generalanzeiger 32 12 240 133 55.42
www.die-tagespost.de Die Tagespost 2 12 203 84 41.38
www.boersen-zeitung.de Börsenzeitung 0 10 201 41 20.40
www.bayernkurier.de Bayernkurier 0 5 88 12 13.64
www.neues-deutschland.de Neues Deutschland 6 4 138 15 10.87
www.juedische-allgemeine.de Jüdische Allgemeine 1 2 175 15 8.57
www.das-parlament.de Das Parlament 1 1 56 4 7.14
www.jungewelt.de Junge Welt 3 0 85 0 0.00
  • shareholders: Number of shareholders with at least 1% of capital share
  • third parties: Number of networks requested that are not the main server
  • requests: Number of network requests during the visit of the website
  • tp-requests: Number of network requests to third-party servers during the visit of the website
  • tp-requests %: Percent of network request to third-party servers compared to first-party servers

So imagine, there are people just using their browser as-is, reading an article in the Saarbrücker Zeitung and tell over a hundred other networks or companies what they are doing.

What exactly happens there is subject of more research but the majority of those third-party requests can be attributed to ads/header bidding and profiling. You can type these words into the major search engine and it will gladly invite you with tutorials and documentation to setup these amazing technologies on your own page. My humble understanding at the moment is that whenever a browser displays one of those websites it screams out:

“I have these blank spaces in between my articles! Anybody any ad you wanna display? Let’s say for a dollar per click?”

Eventually a third-party ad exchange network will deliver a piece of html that contains an ad. The website runner is called the publisher, the blank spaces are inventory and it’s sold to advertisers which in turn work on behalf of the brands. And because it’s all done algorithmically it’s called programmatic.

For quite some time, the waterfall method was the widely used method for maximizing income of all participants in the advertising process.

“Does my trusted first-party ad supplier has an ad for this user? No? Well, how about my second-loveliest worldwide-top-ads supplier? A dollar, great!”

This method was argued to be a bit slow. Also, the publisher may miss ads for a higher price by not looking into the 5th remnant-crap-exchange. So it got gradually replaced by organizing auctions:

“Hey everyone! Anybody an ad? Floor price one dollar. Oh, you there would pay 1.20? Congratulations! Now gimme that ad.”

And why would anyone pay those 1.20? Because it’s a well measured prosperous website. Because an ad might perfectly fit to the content of the visited page or sub-page and therefore must generate a high level of leads. And because something in all the data bits transmitted from the browser to the advertisers tells them which ad might be most successful for the particular and potential customer using the browser. This is archived by the even more complicated and mysterious art of profiling and combination of several first-party publisher data with whatever else can be collected and attributed to a digital identity.

So here’s already a good explanation for most of the thrird-party web traffic: The more, the better!

Advertisers and exchangers are a bit concerned since a couple of years because publishers not only relied on the bidding process of exchange networks to deliver the best ads for the best price but they actually started to waterfall the exchanges:

“Hey, would someone please run an auction at 2 dollars? Nothing today? Well, i was just thinking, maybe someone had the perfect ad for this identity. 1.75 then? Great! I’ll keep your ad for the moment and just run another auction to make sure..”

And most of this happens in the browser, not on the publisher’s server. In part you can even see the prices for the delivered ads when reading through the network log.

The list of all third-party networks is below.

remark about shareholders

The shareholders column in above table shows the number of shareholders with at least 1% of capital share. This data is compiled by an institution called Kommission zur Ermittlung der Konzentration im Medienbereich (KEK). For example, you can look up the ownership of Saarbrücker Zeitung on their interactive webpage. They also have an undocumented API where the shareholder data was scraped from. There’s only six websites/papers in my dataset which are not covered by the KEK data. They have zero shareholders in the table.

Here is a complete shareholder graph for the mentioned paper:

(online) www.saarbruecker-zeitung.de
└─Saarbrücker Zeitung Verlag und Druckerei GmbH
  ├─56.07 Rheinisch-Bergische Verlagsgesellschaft mbH
  │ ├─21.92 Befa Beteiligungs-GmbH
  │ │ ├─22.1 Merz-Betz, Florian
  │ │ ├─11.25 Merz, Thomas
  │ │ ├─11.25 Sader-Merz, Caroline
  │ │ ├─11.25 Merz, Esther
  │ │ ├─7.0 Stilz, Clara
  │ │ ├─7.0 Stilz, Leoni
  │ │ ├─6.0 Berger, Sarina
  │ │ ├─6.0 Berger, Viola
  │ │ ├─6.0 Berger, Thalita
  │ │ ├─5.35 Stilz, Markus
  │ │ ├─3.95 Stilz, Andreas
  │ │ ├─1.85 Stilz, Eva
  │ │ └─1.0 Betz, Esther
  │ ├─20.87 Wenderoth GmbH & Co KG
  │ │ ├─24.75 Ebel, Martin
  │ │ ├─24.75 Ebel, Stefan
  │ │ ├─24.75 Ebel, Johannes
  │ │ ├─24.75 Breitkreutz, Elisabeth
  │ │ ├─1.0 Wenderoth-Alt, Irene
  │ │ └─0.0 Wenderoth Verwaltungs-GmbH
  │ ├─9.9 Büro Dr. M. Droste GmbH & Co KG
  │ │ ├─89.6 Droste, Manfred
  │ │ ├─2.6 Droste, Tilman
  │ │ ├─2.6 Droste-Zobel, Lieselotte
  │ │ ├─2.6 Droste, Alexander
  │ │ ├─2.6 Droste, Felix
  │ │ └─0.0 Dr. M. Droste Verwaltungs GmbH
  │ ├─6.12 Girardet Verlag KG
  │ │ ├─35.8 Girardet, Klaus
  │ │ ├─28.0 Girardet, Rainer
  │ │ ├─12.2 Rheinische Post Verlagsgesellschaft mbH
  │ │ │ └─100.0 Rheinisch-Bergische Verlagsgesellschaft mbH
  │ │ │   └─...
  │ │ ├─8.2 Girardet, Nikolaus
  │ │ ├─8.2 Girardet, Isabelle
  │ │ ├─2.6 Girardet-Seiffert, Annette
  │ │ ├─2.6 Böhmer, Bärbel
  │ │ ├─2.6 Joens-Girardet, Christina
  │ │ ├─0.0 Girardet Verlag Verwaltungs GmbH
  │ │ └─0.0 Girardet, Dr. Michael
  │ ├─4.28 Lohse, Stephan
  │ ├─4.16 Klostermann, Thomas
  │ ├─4.16 Seifert, Katja
  │ ├─3.33 Droste, Tilman
  │ ├─3.33 Droste-Zobel, Lieselotte
  │ ├─3.33 Droste, Alexander
  │ ├─3.33 Droste, Felix
  │ ├─3.1 Arnold, Philipp
  │ ├─3.1 Arnold, Dr. Karl Hans
  │ ├─2.5 Lohse, Julia
  │ ├─2.5 Lohse, Benedikt
  │ ├─1.58 Rauert, Stephanie
  │ ├─0.97 Seifert, Felix
  │ ├─0.51 Rauert, Annabelle
  │ ├─0.51 Rauert, Konstantin
  │ └─0.51 Rauert, Robert
  ├─27.86 Gesellschaft für staatsbürgerliche Bildung Saar mbH
  │ ├─40.0 Union Stiftung e.V.
  │ ├─40.0 Demokratische Gesellschaft Saarland e. V.
  │ └─20.0 Villa Lessing Liberale Stiftung Saar e.V.
  └─16.07 Beteiligungsgesesellschaft Saarbrücker Zeitung GbR
    └─100.0 ca. 1.000 Mitarbeiter der Unternehmensgruppe Saarbrücker Zeitung

On first inspection i thought the number of shareholders is somehow related to the number of third-party servers but apart from the marketing outliers on the left side there does not seem to be a tight relation.

It would be interesting to inspect individual ownerships related to individual third party companies but right now i’m still trying to figure out how to make a blog post with so much interactive data.

third parties

The following table lists all third party servers from the dataset, which are over 500. I do not know about an ownership database for these kind of servers except search engines and whois servers. The latter ones do actually not allow anything with that data except checking for validity of domain names. In the course of privacy enhancements in the internet the whois-information is now largly hidden from public access. Especially in europe. Especially in germany. I align with the call for privacy of individuals in the face of evil programmatic exploitation by experts and fraudsters and all that, but why should they hide the registrant organization of google.de? That does not make me feel safer. Anyways, since the whois-data is now redacted for privacy i will just include what i got from the individual servers.

registrant network websites websites % requests requests % article_referer bytes_sent bytes_received
doubleclick.net (US) Google Inc. (US) Google LLC 86 93.4783 3453 4.88036 187 40172 107540109
google.com (US) Google LLC (US) Google LLC 85 92.3913 1349 1.90663 119 5274 4706433
google.de (US) Google LLC 84 91.3043 636 0.898902 204 3387 61170
googlesyndication.com (US) Google LLC (US) Google LLC 82 89.1304 5820 8.2258 92 35506 93549606
google-analytics.com (US) Google LLC (US) Google LLC 82 89.1304 1693 2.39283 24 42808 19755536
googletagservices.com (US) Google LLC (US) Google LLC 81 88.0435 988 1.39641 6 1058 74692769
googleapis.com (US) Google LLC (US) Google LLC 80 86.9565 480 0.678416 59 2583 26467641
gstatic.com (US) Google LLC (US) Google LLC 78 84.7826 1360 1.92218 46 8230 27916889
googletagmanager.com (US) Google LLC (US) Google LLC 73 79.3478 279 0.39433 93 1420 38415640
ioam.de (DE) INFOnline GmbH 72 78.2609 554 0.783006 89 22115 6801898
adnxs.com (US) AppNexus Inc (NL) AppNexus, Inc. 69 75 1691 2.39 64 69121 26236152
cloudfront.net (US) Amazon.com, Inc. (US) Amazon.com, Inc. 62 67.3913 601 0.849434 134 13519 8322958
smartadserver.com (fr) Smartadserver (US) Sucuri 60 65.2174 593 0.838127 43 41971 499934
pubmatic.com (US) PubMatic, Inc. (US) Amazon Technologies Inc. 58 63.0435 766 1.08264 43 2565 10785118
adsrvr.org (US) The Trade Desk (US) Amazon Technologies Inc. 57 61.9565 312 0.440971 11 38437 41313
amazon-adsystem.com (US) Amazon Technologies, Inc. (US) Amazon Technologies Inc. 56 60.8696 635 0.897488 25 64867 15117800
casalemedia.com (CA) Index Exchange Inc. (CA) Comspec Communications 56 60.8696 586 0.828233 8 91229 402461
yieldlab.net (DE) Yieldlab AG (DE) myLoc managed IT AG 54 58.6957 242 0.342035 16 69775 36620
rubiconproject.com (US) The Rubicon Project, Inc. (US) Google LLC 54 58.6957 721 1.01904 20 21344 3483276
openx.net (US) (US) Google LLC 54 58.6957 869 1.22822 21 53415 570619
ampproject.org (US) Google LLC (US) Google LLC 53 57.6087 908 1.28334 72 0 52052365
2mdn.net (US) Google Inc. (US) Google LLC 48 52.1739 718 1.0148 0 40 32892092
scorecardresearch.com (US) TMRG, Inc (US) CenturyLink Communications, LLC 45 48.913 217 0.306701 14 16747 79011
criteo.com (FR) Criteo SA (FR) Criteo Europe Infrastructures 45 48.913 765 1.08123 108 11019 1992635
adform.net (US) Savvy Investments, LLC Privacy ID# 10439376 (DK) Adform DTC IPv4 Network 44 47.8261 547 0.773112 17 20413 8666567
xplosion.de (US) Amazon Technologies Inc. 44 47.8261 264 0.373129 24 63005 515038
mookie1.com (US) Xaxis (US) Google LLC 44 47.8261 124 0.175258 1 22925 350797
adsafeprotected.com (US) Integral Ad Science, Inc. (CA) Aptum Technologies 43 46.7391 619 0.874875 19 32507 18214704
mxcdn.net (DE) (DE) RIPE Network Coordination Centre 41 44.5652 158 0.223312 60 0 13322411
outbrain.com (US) Outbrain, Inc. 41 44.5652 1468 2.07482 375 37293 33136032
facebook.net (US) Facebook, Inc. (US) Facebook, Inc. 40 43.4783 214 0.302461 6 722 31032898
facebook.com (US) Facebook, Inc. (US) Facebook, Inc. 40 43.4783 315 0.445211 7 2122 6319522
outbrainimg.com (US) Fastly 39 42.3913 1392 1.96741 1145 28942 36550701
adscale.de (DE) Patrick Kambach 38 41.3043 539 0.761805 35 41070 1798945
meetrics.net (DE) (DE) Hetzner Online GmbH 36 39.1304 839 1.18582 285 44729 36077
media01.eu (DE) Hetzner Online GmbH 36 39.1304 76 0.107416 0 5718 0
indexww.com (CA) Index Exchange Inc. (US) Akamai Technologies, Inc. 36 39.1304 166 0.234619 77 7 295682
medialead.de (FR) EASY Marketing GmbH 36 39.1304 127 0.179498 0 2701 18320
privacy-mgmt.com (PA) (US) Amazon.com, Inc. 35 38.0435 296 0.418357 48 14961 19372039
nativendo.de (DE) diva-e Datacenters GmbH 35 38.0435 920 1.3003 281 10130 8174361
jsdelivr.net (PA) (US) Fastly 35 38.0435 73 0.103176 22 240 844910
adition.com (DE) Virtual Minds AG (DE) HostPress GmbH, Kossmannstr. 7, 66571 Eppelborn 34 36.9565 259 0.366062 4 15059 3926763
otto.de (US) Amazon Technologies Inc. 34 36.9565 272 0.384436 111 0 107863
awin1.com (US) (US) Amazon.com, Inc. 34 36.9565 132 0.186565 0 2762 265979
criteo.net (FR) Criteo SA (FR) Criteo Europe Infrastructures 33 35.8696 170 0.240272 9 1176 7372263
dnacdn.net (FR) CRITEO SA (FR) Criteo Europe Infrastructures 32 34.7826 130 0.183738 0 3871 4903
taboola.com (DE) (US) Fastly 31 33.6957 1772 2.50449 238 33983 88840637
bidswitch.net (US) (GB) UKFast Admin 31 33.6957 167 0.236032 10 17594 6493
spotxchange.com (US) SpotX, Inc (US) SpotX, Inc. 30 32.6087 262 0.370302 3 15494 5095
mathtag.com (US) MediaMath Inc 30 32.6087 57 0.080562 0 15481 6952
googleadservices.com (US) Google LLC (US) Google LLC 30 32.6087 78 0.110243 2 4432 157805
redintelligence.net (DE) Hetzner Online GmbH 28 30.4348 436 0.616228 1 2851 6353547
id5-sync.com (DE) OVH GmbH 28 30.4348 38 0.053708 1 24858 6228
360yield.com (US) (US) Amazon Technologies Inc. 27 29.3478 126 0.178084 0 10036 5629
teads.tv (LU) Teads SA (US) Amazon Technologies Inc. 25 27.1739 203 0.286914 0 2765 10234391
ad-server.eu (US) Amazon Technologies Inc. 25 27.1739 49 0.069255 0 0 23184
advertising.com (US) Verizon Media Inc. (US) Oath Holdings Inc. 25 27.1739 219 0.309528 7 12216 0
theadex.com (DE) The ADEX GmbH (DE) HostPress GmbH, Kossmannstr. 7, 66571 Eppelborn 24 26.087 421 0.595028 60 13840 1923018
1rx.io (US) RhythmOne (NL) CUSTOMER-LAN 24 26.087 209 0.295394 1 3599 258
cleverpush.com (PA) (US) Cloudflare, Inc. 24 26.087 177 0.250166 84 458 29352102
fastly.net (US) DNStination Inc (US) Fastly 23 25 137 0.193631 59 323 5356970
f11-ads.com (US) (US) Amazon Technologies Inc. 23 25 410 0.579481 119 5812 5885858
yahoo.com (US) Oath Inc. (US) Oath Holdings Inc. 22 23.913 38 0.053708 1 14702 10914
vgwort.de (DE) Neue Medien Muennich GmbH 21 22.8261 42 0.0593614 38 0 1806
semasio.net (DE) (DK) Netic A/S 21 22.8261 80 0.113069 18 21009 3360
cdntrf.com (PA) (US) Cloudflare, Inc. 21 22.8261 181 0.25582 84 0 26885721
emetriq.de (US) Amazon Technologies Inc. 20 21.7391 36 0.0508812 14 2278 31248
webgains.com (GB) Webgains Ltd (US) Cloudflare, Inc. 20 21.7391 159 0.224725 0 7002 553514
chartbeat.net (US) Amazon Technologies Inc. 20 21.7391 140 0.197871 0 10063 4988
chartbeat.com (US) Amazon.com, Inc. 20 21.7391 109 0.154057 0 1484 2418102
prebid.org (US) (US) Pantheon 20 21.7391 38 0.053708 18 0 51022
webgains.io (GB) Webgains (US) Amazon Technologies Inc. 20 21.7391 149 0.210592 0 0 4045062
lp4.io (US) (NO) GLOBALCONNECT AS 20 21.7391 204 0.288327 73 5037 3292737
justpremium.com (NL) (US) Amazon Technologies Inc. 19 20.6522 346 0.489025 89 4073 9537495
trmcdn.eu (US) Cloudflare, Inc. 19 20.6522 142 0.200698 11 22 12599930
yieldlove-ad-serving.net (US) (US) Amazon Technologies Inc. 19 20.6522 352 0.497505 116 0 1722
lead-alliance.net (DE) lead alliance GmbH (DE) Bloonix GmbH 19 20.6522 59 0.0833887 0 2407 17169
twitter.com (US) Twitter, Inc. (US) Twitter Inc. 19 20.6522 167 0.236032 4 2835 22764247
userreport.com (DK) AudienceProject A/S (US) Amazon Technologies Inc. 19 20.6522 161 0.227552 51 13617 4778490
m-t.io (GB) Tech Essence Limited (US) Squarespace, Inc. 19 20.6522 76 0.107416 0 2976 2645
telefonica-partner.de (DE) Bloonix GmbH 18 19.5652 57 0.080562 0 2382 2365
sascdn.com (fr) Smartadserver (FR) SafeBrands S.A.S. 18 19.5652 153 0.216245 1 0 3616931
blau.de (DE) o2 Germany GmbH & Co. OHG 18 19.5652 61 0.0862154 0 4621 2537
transmatico.com (DE) (DE) digitalocean 18 19.5652 57 0.080562 4 2649 3454429
m6r.eu (US) Akamai Technologies, Inc. 18 19.5652 91 0.128616 21 15217 19417
ad4m.at (US) Cloudflare, Inc. 18 19.5652 337 0.476305 0 935 7904111
purelocalmedia.de (DE) Strato AG 18 19.5652 133 0.187978 68 19587 873774
ad.gt (US) Amazon Technologies Inc. 18 19.5652 18 0.0254406 0 1060 774
ad4mat.net (CA) (US) Cloudflare, Inc. 17 18.4783 37 0.0522946 8 0 51652
lijit.com (US) (US) Amazon Technologies Inc. 17 18.4783 28 0.0395743 2 13908 385
stroeerdigitalgroup.de (DE) InterNetX GmbH 17 18.4783 64 0.0904555 26 0 21128028
ad-production-stage.com (US) (US) Amazon.com, Inc. 17 18.4783 708 1.00066 11 0 36391734
everesttech.net (US) Adobe Inc. (US) Adobe Inc. 16 17.3913 37 0.0522946 7 12481 2844
o2online.de (DE) o2 Germany GmbH & Co. OHG 16 17.3913 53 0.0749085 0 4332 2236
rqtrk.eu (DE) OVH GmbH 16 17.3913 23 0.0325075 0 16152 828
amazonaws.com (US) Amazon.com, Inc. (US) Amazon.com, Inc. 16 17.3913 79 0.111656 7 338 1927079
bttrack.com (GB) (US) Bidtellect Inc. 16 17.3913 16 0.0226139 0 3590 105
exactag.com (DE) (DE) conversis GmbH 16 17.3913 21 0.0296807 5 6648 23115
recognified.net (DE) Online Solution Int Ltd (US) Cloudflare, Inc. 15 16.3043 60 0.0848021 48 3852 2823824
stroeerdigital.de (US) Amazon.com, Inc. 15 16.3043 27 0.0381609 10 0 57219
videoreach.com (DE) (DE) RIPE Network Coordination Centre 15 16.3043 27 0.0381609 25 17380 38906
emxdgt.com (US) Engine (US) Amazon Technologies Inc. 14 15.2174 130 0.183738 13 683 86973
mfadsrvr.com (IL) (US) Amazon Technologies Inc. 14 15.2174 20 0.0282674 0 1766 258
contextweb.com (US) Amazon Technologies Inc. 14 15.2174 34 0.0480545 0 2516 258
cloudflare.com (US) (US) Cloudflare, Inc. 14 15.2174 46 0.0650149 13 6 1591093
cheqzone.com (IL) cheq.ai (DE) CDN77 Frankfurt - Bunny CDN 14 15.2174 86 0.12155 35 13565 1488678
adkernel.com (US) Adkernel, LLC (US) Webair Internet Development Company Inc. 14 15.2174 14 0.0197871 0 1092 0
tremorhub.com (US) Telaria (US) Amazon.com, Inc. 14 15.2174 29 0.0409877 0 24541 1247
serving-sys.com (US) Andreas Acquisition LLC (GB) TeleCity Group Customer - Sizmek 13 14.1304 18 0.0254406 0 2096 31428
zemanta.com (US) Cloudflare, Inc. 13 14.1304 46 0.0650149 0 1619 36184
exelator.com (US) The Nielsen Company (US) Amazon Technologies Inc. 13 14.1304 28 0.0395743 3 949 0
appier.net (SG) Appier Pte. Ltd. (US) Amazon.com, Inc. 13 14.1304 13 0.0183738 0 0 0
stickyadstv.com (FR) STICKY ADS TV S.A.S. (FR) OVH SAS 13 14.1304 104 0.14699 16 3912 3125553
vidazoo.com (IL) Vidazoo Ltd (US) Amazon Technologies Inc. 13 14.1304 392 0.55404 340 112 25220402
opencmp.net (US) (DE) dogado GmbH 13 14.1304 156 0.220485 65 0 15430612
plista.com (DE) plista GmbH (DE) Hetzner Online GmbH 12 13.0435 170 0.240272 9 5568 4360795
weekli.systems (DE) mcosys GmbH (DE) mcosys GmbH 12 13.0435 143 0.202112 2 62 3078102
demdex.net (US) Adobe Inc. (US) Amazon Technologies Inc. 12 13.0435 54 0.0763219 2 1696 93495
podigee.io (DE) Podigee GmbH (DE) Hetzner Online GmbH 12 13.0435 29 0.0409877 0 363 1496569
opinary.com (PA) (DE) HEG Mass 12 13.0435 82 0.115896 27 751 770722
podigee-cdn.net (DE) (DE) RIPE Network Coordination Centre 12 13.0435 88 0.124376 9 18 8749750
twiago.com (GB) DFL-NET 12 13.0435 213 0.301047 90 1022 1834433
sp-prod.net (PA) (US) Amazon.com, Inc. 12 13.0435 28 0.0395743 10 0 4286072
technoratimedia.com (US) Synacor, Inc. (US) Synacor, Inc. 11 11.9565 11 0.015547 0 1969 0
onetag-sys.com (GB) CrossReactive LTD (DE) OVH GmbH 11 11.9565 67 0.0946956 32 90 58453
dwcdn.net (US) (DE) RIPE Network Coordination Centre 11 11.9565 234 0.330728 2 42 22377324
sonobi.com (US) Sonobi, Inc (US) Google LLC 11 11.9565 11 0.015547 0 1320 0
aniview.com (US) (US) Amazon Technologies Inc. 11 11.9565 291 0.41129 273 4919 19411300
podigee.com (US) Amazon Technologies Inc. 11 11.9565 31 0.0438144 7 125 4755630
adrtx.net (DE) (US) Amazon Technologies Inc. 11 11.9565 36 0.0508812 0 165 15822
visx.net (DE) YOC AG (US) Google LLC 11 11.9565 67 0.0946956 28 6680 1311
consensu.org (BE) IAB Europe (US) Google LLC 11 11.9565 175 0.247339 56 1450 7956314
weekli.de (DE) mcosys GmbH 11 11.9565 37 0.0522946 0 768 426866
datawrapper.de (US) Cloudflare, Inc. 11 11.9565 20 0.0282674 0 46 860
doubleverify.com (US) DoubleVerify (US) Unified Layer 10 10.8696 40 0.0565347 1 1676 1111373
perfectmarket.com (US) Taboola, Inc (US) Media Temple, Inc. 10 10.8696 34 0.0480545 8 0 2031828
polyfill.io (GB) The Financial Times Limited (US) Fastly 10 10.8696 48 0.0678416 10 360 7686
office-partner.de (DE) SysEleven GmbH 10 10.8696 12 0.0169604 0 380 17413
cxense.com (US) Piano Software (US) Amazon.com, Inc. 10 10.8696 211 0.298221 13 3749 4329922
glomex.com (DE) (US) Amazon.com, Inc. 10 10.8696 322 0.455104 42 7995 6481377
dspx.tv (US) Cloudflare, Inc. 9 9.78261 29 0.0409877 9 7306 48963
glomex.cloud (DE) Glomex GmbH (US) Amazon Technologies Inc. 9 9.78261 212 0.299634 46 637 87452426
smartclip.net (DE) (US) Amazon.com, Inc. 9 9.78261 54 0.0763219 24 1118 800829
disqus.com (US) Disqus, Inc. (US) Fastly 8 8.69565 42 0.0593614 33 54 255392
boltdns.net (US) (US) Fastly 8 8.69565 52 0.0734951 0 142 3584040
bluekai.com (US) (US) Oracle Corporation 8 8.69565 8 0.0113069 0 2981 26
adsafety.net (DE) (US) Cloudflare, Inc. 8 8.69565 49 0.069255 23 295 7152
oadts.com (DE) ATG Ad Tech Group GmbH (DE) Wavecon GmbH 8 8.69565 27 0.0381609 21 9363 395954
de.com (UK) (US) Amazon Technologies Inc. 8 8.69565 127 0.179498 11 3523 282891
f11-ads.net (US) (US) Amazon Technologies Inc. 8 8.69565 52 0.0734951 32 14783 798579
onetrust.com (PA) (US) Cloudflare, Inc. 8 8.69565 30 0.042401 5 0 38288
ytimg.com (US) Google LLC (US) Google LLC 8 8.69565 26 0.0367476 0 0 633045
ml314.com (US) Amazon Technologies Inc. 7 7.6087 7 0.00989357 0 875 0
adobedtm.com (US) Adobe Inc. (US) Akamai Technologies, Inc. 7 7.6087 86 0.12155 17 0 5284195
madsack-native.de (US) Google LLC 7 7.6087 54 0.0763219 0 492 624148
haz.de (DE) Verlagsgesellschaft Madsack GmbH & Co. 7 7.6087 16 0.0226139 0 0 340384
agkn.com (US) Neustar, Inc. (US) Amazon Technologies Inc. 7 7.6087 7 0.00989357 0 455 0
rndtech.de (US) Amazon.com, Inc. 7 7.6087 665 0.939889 27 0 13055046
instagram.com (US) Instagram LLC (US) Amazon Technologies Inc. 7 7.6087 31 0.0438144 10 0 484127
youtube.com (US) Google LLC (US) Google LLC 7 7.6087 147 0.207765 0 1772 29393519
sphere.com (US) Akamai Technologies, Inc. 7 7.6087 121 0.171017 0 0 5734795
liadm.com (US) Amazon Technologies Inc. 7 7.6087 7 0.00989357 0 511 0
crwdcntrl.net (US) (US) Lotame Solutions, Inc. 7 7.6087 7 0.00989357 0 0 0
mlsat02.de (FR) OVH SAS 7 7.6087 24 0.0339208 0 369 16492
unrulymedia.com (US) Amazon Technologies Inc. 7 7.6087 27 0.0381609 0 2865 33921
opecloud.com (CH) 1plusX AG (US) Amazon Technologies Inc. 7 7.6087 44 0.0621882 13 4183 28882
zeotap.com (US) Cloudflare, Inc. 7 7.6087 13 0.0183738 0 6040 0
cookielaw.org (PA) (US) Cloudflare, Inc. 7 7.6087 123 0.173844 40 0 14940745
smartstream.tv (DE) OVH GmbH 7 7.6087 47 0.0664283 1 8303 81843
pushwoosh.com (NZ) Arello Mobile (ZZ) APNIC-STUB 7 7.6087 113 0.159711 54 0 5703273
akamaihd.net (US) Akamai Technologies, inc. (DE) Telefonica Germany GmbH & Co. OHG 7 7.6087 50 0.0706684 2 438 21894460
showheroes.com (DE) ShowHeroes GmbH (DE) Hetzner Online GmbH 6 6.52174 81 0.114483 51 3366 4823990
ibillboard.com (CZ) Internet BillBoard a.s. (CZ) Internet BillBoard a.s. 6 6.52174 11 0.015547 6 546 0
googlevideo.com (US) Google LLC (US) Google LLC 6 6.52174 16 0.0226139 0 3586 15736828
turn.com (US) Google LLC 6 6.52174 9 0.0127203 0 4553 46
aticdn.net (FR) Applied Technologies Internet SAS (US) Amazon.com, Inc. 6 6.52174 12 0.0169604 6 0 618942
trmads.eu (US) Cloudflare, Inc. 6 6.52174 67 0.0946956 18 663 12500359
usercentrics.eu (US) Google LLC 6 6.52174 213 0.301047 67 0 13762583
bing.com (US) Microsoft Corporation (US) Microsoft Corporation 6 6.52174 37 0.0522946 12 2507 373529
telekom.de (DE) T-Systems International GmbH 6 6.52174 8 0.0113069 0 1482 301
omtrdc.net (US) Adobe Inc. (US) Amazon Technologies Inc. 6 6.52174 15 0.0212005 1 1022 31127
ggpht.com (US) Google LLC (US) Google LLC 6 6.52174 11 0.015547 0 0 26322
3lift.com (US) (US) Amazon Technologies Inc. 6 6.52174 27 0.0381609 4 5868 152
idcdn.de (DE) Ippen Digital GmbH & Co. KG 6 6.52174 285 0.40281 139 0 2491269
ippen.space (DE) Ippen Digital GmbH & Co. KG (US) Amazon Technologies Inc. 6 6.52174 33 0.0466411 11 0 331597
xiti.com (FR) Applied Technologies Internet SAS (FR) AT INTERNET Network Team 6 6.52174 29 0.0409877 6 3435 980
geoedge.be (US) Amazon Technologies Inc. 6 6.52174 116 0.163951 40 0 5801128
reisereporter.de (DE) Verlagsgesellschaft Madsack GmbH & Co. 5 5.43478 20 0.0282674 0 20 384314
brillen.de (US) Amazon Technologies Inc. 5 5.43478 8 0.0113069 4 265 344
yieldscale.com (DE) (DE) Neue Medien Muennich GmbH 5 5.43478 13 0.0183738 6 0 4118992
nuggad.net (US) Amazon.com, Inc. 5 5.43478 5 0.00706684 0 3880 5331
artefact.com (FR) ARTEFACT (FR) OVH SAS 5 5.43478 7 0.00989357 0 290 0
tinypass.com Piano Software (US) Cloudflare, Inc. 5 5.43478 114 0.161124 26 1713 11362571
wetterkontor.de (DE) Strato AG 5 5.43478 7 0.00989357 0 0 28057
pressekompass.net (DE) (DE) SHARED WEBHOSTING 5 5.43478 68 0.096109 1 1732 6025805
cxpublic.com (US) (US) Akamai Technologies, Inc. 5 5.43478 28 0.0395743 17 8 481892
twimg.com (US) Twitter, Inc. (US) ANS Communications, Inc 5 5.43478 122 0.172431 0 40 2412954
wt-safetag.com (DE) Webtrekk GmbH (DE) Webtrekk GmbH 5 5.43478 12 0.0169604 5 338 1145194
infogram.com (US) (US) Amazon Technologies Inc. 5 5.43478 153 0.216245 0 0 10031759
unpkg.com (US) (US) Cloudflare, Inc. 5 5.43478 18 0.0254406 8 0 1273714
adup-tech.com (US) (US) Google LLC 5 5.43478 50 0.0706684 18 912 512538
clarium.io (FR) ClarityAd (US) Amazon Technologies Inc. 5 5.43478 22 0.0310941 5 2085 1360
technical-service.net (DE) CBC Cologne Broadcasting Center GmbH (US) Amazon Technologies Inc. 5 5.43478 6 0.00848021 2 3774 1879
flashtalking.com (US) Flashtalking, Inc. (US) Squarespace, Inc. 5 5.43478 106 0.149817 1 1237 2817598
jifo.co (LV) INFOGRAM SIA (US) Cloudflare, Inc. 5 5.43478 262 0.370302 0 0 118091311
contentspread.net (DE) (DE) RIPE Network Coordination Centre 4 4.34783 10 0.0141337 0 0 522050
kameleoon.eu (DE) Hetzner Online GmbH 4 4.34783 112 0.158297 37 1060 3148663
yieldlove.com (US) (US) Amazon Technologies Inc. 4 4.34783 55 0.0777352 11 40 8801612
gscontxt.net (US) (US) Oracle Corporation 4 4.34783 5 0.00706684 3 430 4238
bootstrapcdn.com (PA) (US) Cloudflare, Inc. 4 4.34783 11 0.015547 3 6 435314
cdn-solution.net (DE) Online Solution Int Ltd (US) RIPE Network Coordination Centre 4 4.34783 252 0.356169 16 0 24064433
stroeerdigitalmedia.de (DE) InterNetX GmbH 4 4.34783 5 0.00706684 2 0 245
moatads.com (US) Amazon Technologies Inc. 4 4.34783 30 0.042401 0 5218 615304
fanmatics.com (DE) (NL) TransIP BV 4 4.34783 28 0.0395743 8 0 367541
creativecdn.com (PL) RTB House S.A. (NL) RTB-HOUSE (DC-AMS) 4 4.34783 8 0.0113069 2 32 336
tchibo.de (US) Google LLC 4 4.34783 4 0.00565347 0 387 172
rp-online.de (DE) circ IT GmbH & Co KG 4 4.34783 21 0.0296807 0 0 1411033
cloudfunctions.net (US) Google LLC (US) Google LLC 4 4.34783 64 0.0904555 29 507 2240
quantserve.com (US) Quantcast (GB) Quantcast Ltd. 4 4.34783 12 0.0169604 0 1662 48152
sqrt-5041.de (US) Amazon Technologies Inc. 4 4.34783 4 0.00565347 0 3131 12498
jquery.com (US) Cloudflare, Inc. 4 4.34783 10 0.0141337 5 0 879226
localhost 4 4.34783 7 0.00989357 3 0 0
creative-serving.com (NL) Platform161 BV (US) Amazon Technologies Inc. 4 4.34783 8 0.0113069 0 0 400
retailads.net (DE) (DE) Hetzner Online GmbH 4 4.34783 8 0.0113069 0 0 19112
futalis.de (ZZ) APNIC-STUB 4 4.34783 4 0.00565347 0 280 1400
zenaps.com (US) (US) Amazon.com, Inc. 4 4.34783 5 0.00706684 0 433 21046
yumpu.com (CH) (US) Amazon.com, Inc. 4 4.34783 42 0.0593614 0 88 2163015
upscore.com (US) (DE) Asia Pacific Network Information Centre 4 4.34783 69 0.0975224 25 0 383909
vlyby.com (DE) (US) Amazon.com, Inc. 4 4.34783 24 0.0339208 9 7 5753893
sportbuzzer.de (DE) Verlagsgesellschaft Madsack GmbH & Co. 4 4.34783 24 0.0339208 0 0 459325
districtm.io (CA) District M Inc. (US) Cloudflare, Inc. 4 4.34783 8 0.0113069 0 0 0
imgix.net (US) Zebrafish Labs (US) Fastly 4 4.34783 120 0.169604 7 149 11872463
akamaized.net (US) Akamai Technologies, inc. (DE) Telefonica Germany GmbH & Co. OHG 3 3.26087 11 0.015547 2 239 23235862
yimg.com (US) Oath Inc. (US) Oath Holdings Inc. 3 3.26087 38 0.053708 3 0 666371
ablida.net (DE) (US) Cloudflare, Inc. 3 3.26087 7 0.00989357 3 17 11168
plenigo.com (DE) ProfitBricks Customers Karlsruhe 2 3 3.26087 9 0.0127203 3 0 583074
bidr.io (FR) (US) Amazon Technologies Inc. 3 3.26087 11 0.015547 0 1665 0
c-i.as (DE) Filoo GmbH 3 3.26087 6 0.00848021 3 0 19494
ad-srv.net (DE) (DE) Hetzner Online GmbH 3 3.26087 15 0.0212005 0 135 56963
sitescout.com (US) Zayo Bandwidth 3 3.26087 6 0.00848021 0 1656 0
vtracy.de (DE) myLoc managed IT AG 3 3.26087 4 0.00565347 0 3089 34512
tiqcdn.com (US) (US) Akamai Technologies, Inc. 3 3.26087 61 0.0862154 28 66 1854881
clickagy.com (US) (US) Cloudflare, Inc. 3 3.26087 6 0.00848021 0 1812 0
rfihub.com (US) Zeta Global (NL) Sizmek DSP, Inc. 3 3.26087 6 0.00848021 0 1671 0
df-srv.de (DE) Filoo GmbH 3 3.26087 6 0.00848021 1 0 7820
_.rocks 3 3.26087 5 0.00706684 2 0 0
ctnsnet.com (GB) Crimtan (US) Google LLC 3 3.26087 6 0.00848021 0 1803 0
resetdigital.co (US) Reset Digital (US) Google LLC 3 3.26087 6 0.00848021 0 1653 258
hotjar.com (US) Amazon.com, Inc. 3 3.26087 27 0.0381609 0 0 1848512
rlcdn.com (US) (US) Google LLC 3 3.26087 6 0.00848021 2 1623 0
hariken.co (BR) Hariken (US) Google LLC 3 3.26087 3 0.0042401 0 156 0
crazyegg.com (US) (US) Amazon Technologies Inc. 3 3.26087 16 0.0226139 0 6 164408
asadcdn.com (DE) (DE) Telefonica Germany GmbH & Co. OHG 3 3.26087 613 0.866394 305 0 3808455
npttech.com Piano Software (US) Cloudflare, Inc. 3 3.26087 7 0.00989357 3 0 53319
unicef.de (DE) OpenIT GmbH 3 3.26087 5 0.00706684 0 1663 215
fbcdn.net (US) Facebook, Inc. (US) Facebook, Inc. 3 3.26087 6 0.00848021 0 383 55562
truste.com (US) TekTonic 3 3.26087 3 0.0042401 1 270 84432
viralize.tv (US) (US) Rackspace Hosting 3 3.26087 57 0.080562 34 1388 1804954
mycleverpush.com (PA) (DE) RIPE Network Coordination Centre 3 3.26087 6 0.00848021 3 81 949326
hs-data.com (US) (US) Cloudflare, Inc. 3 3.26087 58 0.0819753 0 9 1566184
krxd.net (US) Salesforce.com, Inc. (US) Amazon Technologies Inc. 3 3.26087 4 0.00565347 0 1481 0
brealtime.com (US) Engine (US) Amazon Technologies Inc. 3 3.26087 9 0.0127203 4 1638 8334
content-garden.com (DE) Hetzner Online GmbH 3 3.26087 8 0.0113069 0 0 274721
kobel.io (DE) Axel Springer SE (US) Amazon Technologies Inc. 3 3.26087 3 0.0042401 0 219 45
urban-media.com (DE) (FR) OVH SAS 3 3.26087 22 0.0310941 5 0 1852492
loggly.com (US) SolarWinds Worldwide, LLC (US) SolarWinds, Inc. 3 3.26087 5 0.00706684 2 308 95
piano.io (US) Piano Software (US) Pantheon 3 3.26087 101 0.14275 50 402 1794240
mateti.net (DE) Webtrekk GmbH 2 2.17391 25 0.0353342 8 636 771414
biallo.de (DE) 1&1 IONOS SE 2 2.17391 4 0.00565347 2 0 57090
welect.de (US) Amazon Technologies Inc. 2 2.17391 3 0.0042401 1 0 65503
msgp.pl (DE) RIPE Network Coordination Centre 2 2.17391 8 0.0113069 2 0 3309327
meinsol.de (DE) Netzindianer sp. z o. o. 2 2.17391 13 0.0183738 0 0 98541
atdmt.com (US) Facebook, Inc. (US) MCI Communications Services, Inc. d/b/a Verizon Business 2 2.17391 2 0.00282674 1 0 86
atonato.de (DE) RIPE Network Coordination Centre 2 2.17391 2 0.00282674 2 0 42
wp.com (US) Automattic, Inc. (US) Automattic, Inc 2 2.17391 57 0.080562 21 175 1492228
biallo3.de (DE) 1&1 IONOS SE 2 2.17391 2 0.00282674 1 26 8067
omnitagjs.com (FR) Omnitag JS (FR) Iguane Solutions Technical Team 2 2.17391 6 0.00848021 0 608 2057
getback.ch (US) Amazon Technologies Inc. 2 2.17391 33 0.0466411 7 264 760372
cmcdn.de (US) Cloudflare, Inc. 2 2.17391 9 0.0127203 0 0 201506
tiktok.com (KY) TIKTOK LTD (SG) Asia Pacific Network Information Centre 2 2.17391 4 0.00565347 2 0 189844
addthisedge.com (US) (US) Akamai Technologies, Inc. 2 2.17391 2 0.00282674 0 0 5114
addthis.com (US) Akamai Technologies, Inc. 2 2.17391 12 0.0169604 2 0 778767
fontawesome.com (US) (US) StackPath, LLC. 2 2.17391 7 0.00989357 1 0 290737
ligatus.com (US) Akamai Technologies, Inc. 2 2.17391 2 0.00282674 1 30 0
wordlift.io (IT) InsideOut10 (US) Cloudflare, Inc. 2 2.17391 4 0.00565347 2 0 626840
awin.com (US) (GB) AWIN LTD 2 2.17391 3 0.0042401 0 0 94680
onesignal.com (US) (US) Cloudflare, Inc. 2 2.17391 10 0.0141337 3 26 902090
googleoptimize.com (US) Google LLC (US) Google LLC 2 2.17391 6 0.00848021 3 26 517348
scdn.co (SE) SPOTIFY AB (US) Fastly 2 2.17391 52 0.0734951 0 0 4075139
adcell.com (DE) (DE) Soprado GmbH 2 2.17391 3 0.0042401 1 0 21975
spotify.com (SE) Spotify AB (US) Google LLC 2 2.17391 16 0.0226139 0 78 262594
youtube-nocookie.com (US) Google LLC (US) Google LLC 2 2.17391 62 0.0876288 1 98 14150252
meine-vrm.de (DE) evolver services GmbH 2 2.17391 227 0.320834 8 0 4152880
allgemeine-zeitung.de (DE) evolver services GmbH 2 2.17391 12 0.0169604 0 0 727776
nexx.cloud (DE) 3Q GmbH (US) Microsoft Corporation 2 2.17391 18 0.0254406 0 0 7976388
bannersnack.com (US) Smarketer LLC. (US) Amazon Technologies Inc. 2 2.17391 24 0.0339208 0 58 648234
icony.com (DE) ICONY GmbH (US) Amazon Technologies Inc. 2 2.17391 6 0.00848021 0 694 26364
tiktokcdn.com (KY) TIKTOK LTD (US) Akamai Technologies, Inc. 2 2.17391 6 0.00848021 2 0 55592
richaudience.com (ES) (ES) Red de CanalPyme 2 2.17391 4 0.00565347 0 1257 7318
uri.sh (US) (US) Cloudflare, Inc. 2 2.17391 4 0.00565347 0 0 1033042
disquscdn.com (US) Disqus, Inc. (US) Fastly 2 2.17391 29 0.0409877 8 0 2427487
kaspersky.com (RU) AO Kaspersky Lab (RU) Kaspersky Lab AO 2 2.17391 2 0.00282674 0 0 44237
ravenjs.com (US) (US) GitHub, Inc. 2 2.17391 3 0.0042401 2 0 75510
h-cdn.com (IL) Hola Networks Ltd. (US) Fastly 2 2.17391 32 0.0452278 6 186 4860962
welt.de (DE) Boreus Rechenzentrum GmbH 2 2.17391 12 0.0169604 6 34 580712
onaudience.com (UK) (US) Amazon Technologies Inc. 2 2.17391 2 0.00282674 0 140 0
s-i-r.de (DE) Stuttgart Internet Regional GmbH 2 2.17391 19 0.026854 6 451 411410
licdn.com (US) LinkedIn Corporation (US) Akamai Technologies, Inc. 2 2.17391 3 0.0042401 0 0 12966
ads-twitter.com (US) Twitter, Inc. (US) Fastly 2 2.17391 4 0.00565347 0 0 20640
linkedin.com (US) LinkedIn Corporation (US) Microsoft Corporation 2 2.17391 9 0.0127203 2 183 0
stellenanzeigen.de (DE) stellenanzeigen.de GmbH & Co. KG 2 2.17391 3 0.0042401 0 0 221790
t.co (US) Twitter, Inc. (US) Twitter Inc. 2 2.17391 4 0.00565347 2 473 172
s-onetag.com (US) sovrn Holdings, Inc (US) Amazon.com, Inc. 2 2.17391 28 0.0395743 4 0 262201
netpoint-media.de (DE) RIPE Network Coordination Centre 2 2.17391 10 0.0141337 9 553 332526
vi-serve.com (GB) (US) Highwinds Network Group, Inc. 2 2.17391 24 0.0339208 24 938 641092
inforsea.com (GB) (US) Amazon.com, Inc. 2 2.17391 18 0.0254406 18 0 1173768
ln-online.de (DE) Verlagsgesellschaft Madsack GmbH & Co. 2 2.17391 2 0.00282674 0 0 27697
dwin1.com (US) (US) Amazon.com, Inc. 2 2.17391 3 0.0042401 0 0 50741
rvty.net (DE) (DE) myLoc managed IT AG 2 2.17391 8 0.0113069 0 14 97889
prmutv.co (US) (US) Google LLC 2 2.17391 2 0.00282674 0 74 92
ibytedtos.com (KY) Lemon Inc (US) Akamai Technologies, Inc. 2 2.17391 8 0.0113069 4 44 190016
onthe.io (GB) (DE) Hetzner Online GmbH 2 2.17391 29 0.0409877 16 461 218906
flourish.studio (FR) Kiln Enterprises Ltd (US) Amazon.com, Inc. 2 2.17391 6 0.00848021 0 0 32450
permutive.com (US) (US) Google LLC 2 2.17391 44 0.0621882 0 110 837775
trustarc.com (US) TrustArc Inc. (US) TekTonic 2 2.17391 10 0.0141337 4 48 94878
bitmovin.com (US) Cloudflare, Inc. 2 2.17391 4 0.00565347 0 0 92
noz-cdn.de (DE) Boreus Rechenzentrum GmbH 2 2.17391 146 0.206352 21 0 6541572
createjs.com (PA) (US) Media Temple, Inc. 2 2.17391 3 0.0042401 0 0 623317
pingdom.net (SE) Pingdom AB (US) Cloudflare, Inc. 1 1.08696 2 0.00282674 0 341 6294
app.link (US) Branch (US) Amazon.com, Inc. 1 1.08696 2 0.00282674 0 109 180
vxcp.de (DE) i12 GmbH 1 1.08696 11 0.015547 0 0 496505
wlct-one.de (US) Amazon Technologies Inc. 1 1.08696 2 0.00282674 1 11 45272
main-echo-cdn.de (DE) diva-e Datacenters GmbH 1 1.08696 157 0.221899 34 17 7867878
rnd.de (DE) Verlagsgesellschaft Madsack GmbH & Co. 1 1.08696 99 0.139923 0 0 7020483
cookiepro.com (US) (US) Cloudflare, Inc. 1 1.08696 18 0.0254406 8 0 1749103
abtasty.com (FR) Liwio (US) Google LLC 1 1.08696 7 0.00989357 2 0 335350
akstat.io (CA) (US) Akamai Technologies, Inc. 1 1.08696 3 0.0042401 0 0 0
intellitxt.com (GB) Vibrant Media Limited (US) Amazon.com, Inc. 1 1.08696 2 0.00282674 0 563 4158
branch.io (US) Branch (US) Amazon.com, Inc. 1 1.08696 7 0.00989357 0 0 161575
go-mpulse.net (US) Akamai Technologies, inc. (US) Akamai Technologies, Inc. 1 1.08696 4 0.00565347 0 324 415578
googleusercontent.com (US) Google LLC (US) Google LLC 1 1.08696 2 0.00282674 0 0 141288
emsservice.de (EU) Akamai Technologies 1 1.08696 39 0.0551213 0 0 291022
kaltura.com (US) Kaltura Inc (US) Kaltura Inc 1 1.08696 1 0.00141337 0 0 1758993
dymatrix.cloud (DE) Dymatrix Consulting Group GmbH (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 2 0 246
ix.de (DE) Heise Gruppe GmbH & Co. KG 1 1.08696 2 0.00282674 0 0 7980
lr-digital.de (FR) RIPE Network Coordination Centre 1 1.08696 12 0.0169604 1 0 285286
cloudimg.io (FR) REFLUENCE (FR) virtualisation 1 1.08696 156 0.220485 8 0 1518568
bluesummit.de (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 0 0 14804
igstatic.com (FR) i-graal (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 0 0 17584
aspnetcdn.com (US) Microsoft Corporation (US) ANS Communications, Inc 1 1.08696 2 0.00282674 1 0 42136
offerista.com (DE) (US) Google LLC 1 1.08696 6 0.00848021 0 0 599910
stackpathdns.com (US) NetDNA, LLC. (US) StackPath, LLC. 1 1.08696 3 0.0042401 0 6 15560
intercom.io (IE) Intercom Ops (US) Amazon.com, Inc. 1 1.08696 4 0.00565347 0 0 22928
noz.de (DE) Boreus Rechenzentrum GmbH 1 1.08696 9 0.0127203 0 0 797776
shz.de (DE) Boreus Rechenzentrum GmbH 1 1.08696 10 0.0141337 0 0 71503
icony-hosting.de (US) Amazon Technologies Inc. 1 1.08696 14 0.0197871 0 0 40853
intercomcdn.com (US) (US) Amazon.com, Inc. 1 1.08696 3 0.0042401 0 0 531004
ovb24.de (US) Google LLC 1 1.08696 3 0.0042401 1 0 76152
hotjar.io (MT) Hotjar Ltd (US) Amazon.com, Inc. 1 1.08696 1 0.00141337 0 25 0
selfcampaign.com (DE) B2B Media Group EMEA GmbH (DE) RIPE Network Coordination Centre 1 1.08696 1 0.00141337 0 422 43
3qsdn.com (DE) (DE) 3Q Medien GmbH 1 1.08696 1 0.00141337 1 0 810425
marktjagd.de (US) Amazon.com, Inc. 1 1.08696 15 0.0212005 0 0 72721
motoso.de (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 0 0 49172
wcfbc.net (DE) Webtrekk GmbH 1 1.08696 2 0.00282674 0 85 138
sparwelt.click (DE) SPARWELT GmbH (US) Amazon Technologies Inc. 1 1.08696 8 0.0113069 0 0 1050862
marktjagd.com (DE) (US) Amazon.com, Inc. 1 1.08696 48 0.0678416 0 0 365986
adspirit.de (DE) Host Europe GmbH 1 1.08696 11 0.015547 0 0 177832
adlooxtracking.com (FR) Adloox (FR) RIPE Network Coordination Centre 1 1.08696 4 0.00565347 0 117 86783
jobs-im-suedwesten.de (DE) Hetzner Online GmbH 1 1.08696 5 0.00706684 0 12 30734
stuttgarter-zeitung.de (DE) Boreus Rechenzentrum GmbH 1 1.08696 3 0.0042401 1 0 109330
oberpfalzmedien.de (DE) Der neue Tag Oberpfaelzischer Kurier Druck- und Verlagshaus GmbH 1 1.08696 4 0.00565347 2 366 123960
heilbronnerstimme.de (DE) fidion GmbH 1 1.08696 95 0.13427 25 17 3770129
conrad.de (US) Cloudflare, Inc. 1 1.08696 1 0.00141337 0 71 0
mediamathtag.com (US) (US) Amazon Technologies Inc. 1 1.08696 13 0.0183738 0 307 124781
conrad.com (DE) Conrad Electronic SE (US) Cloudflare, Inc. 1 1.08696 1 0.00141337 0 9 20917
unbounce.com (PA) (US) Google LLC 1 1.08696 1 0.00141337 0 13 120361
alexametrics.com (US) Alexa Internet (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 0 450 43
omsnative.de 1 1.08696 2 0.00282674 1 1 0
pinpoll.com (US) Microsoft Corporation 1 1.08696 13 0.0183738 2 0 100822
omny.fm (US) Cloudflare, Inc. 1 1.08696 6 0.00848021 0 0 632507
scene7.com (US) Adobe Inc. (IN) Asia Pacific Network Information Centre 1 1.08696 1 0.00141337 0 51 67965
omnycontent.com (US) The E. W. Scripps Company (US) Amazon.com, Inc. 1 1.08696 6 0.00848021 0 20 138086
s-p-m.ch (CH) Beja Group GmbH 1 1.08696 2 0.00282674 1 0 19734
commander1.com (FR) Fjord Technologies (FR) FJORD TECHNOLOGIES 1 1.08696 2 0.00282674 0 13 86
lkqd.net (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 0 324 22
trustcommander.net (FR) Fjord Technologies (US) MCI Communications Services, Inc. d/b/a Verizon Business 1 1.08696 5 0.00706684 2 0 633205
windows.net (US) Microsoft Corporation (US) Microsoft Corporation 1 1.08696 4 0.00565347 2 0 309732
slgnt.eu (US) Tiggee LLC 1 1.08696 4 0.00565347 2 0 1242
rackcdn.com (US) Rackspace US, Inc. (US) Akamai Technologies, Inc. 1 1.08696 1 0.00141337 1 0 15160
kaloo.ga 1 1.08696 1 0.00141337 1 0 0
contentinsights.com (BG) Content Insights (US) Amazon Technologies Inc. 1 1.08696 6 0.00848021 6 290 0
omniv.io (DE) DDV Mediengruppe GmbH & Co. KG (US) Cloudflare, Inc. 1 1.08696 4 0.00565347 0 0 15488
artikelscore.de (DE) RIPE Network Coordination Centre 1 1.08696 12 0.0169604 4 354 529635
rawr.at (US) Google LLC 1 1.08696 11 0.015547 11 0 426
batch.com (CA) (FR) Dedicated Servers 1 1.08696 10 0.0141337 4 0 227720
mannheimer-morgen.de (DE) Newsfactory GmbH - housing 1 1.08696 139 0.196458 0 0 5136170
myfonts.net (US) MyFonts Inc. (US) Cloudflare, Inc. 1 1.08696 2 0.00282674 0 0 0
eon.de (DE) Adacor Hosting GmbH 1 1.08696 1 0.00141337 0 93 0
audiencemanager.de (US) Amazon Technologies Inc. 1 1.08696 13 0.0183738 5 178 278218
tickaroo.com (US) (US) Amazon.com, Inc. 1 1.08696 34 0.0480545 34 0 444243
yoochoose.net (US) (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 1 55 0
imrworldwide.com (US) The Nielsen Company (US) Amazon.com, Inc. 1 1.08696 1 0.00141337 0 893 44
adalliance.io (DE) G+J Electronic Media Sales GmbH (DE) RIPE Network Coordination Centre 1 1.08696 9 0.0127203 0 162 22358
hscta.net (US) HUBSPOT INC. (US) Cloudflare, Inc. 1 1.08696 2 0.00282674 0 0 18482
consentric.de (GB) Microsoft Limited 1 1.08696 1 0.00141337 0 88 43
pubmine.com (US) Automattic, Inc. (IE) Amazon Web Services, Elastic Compute Cloud, EC2, EU 1 1.08696 14 0.0197871 0 56 399097
iqdigital.de (DE) Mittwald CM Service GmbH und Co.KG 1 1.08696 12 0.0169604 3 22 225161
typekit.net (US) Adobe Inc. (US) Oracle Corporation 1 1.08696 22 0.0310941 0 77 594754
ebayadservices.com (US) eBay Inc. (US) eBay, Inc 1 1.08696 1 0.00141337 0 96 43
ebaystatic.com (CH) eBay Marketplaces GmbH (US) Akamai Technologies, Inc. 1 1.08696 1 0.00141337 0 0 43
pushengage.com (PA) (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 0 0 166936
paypal.com (US) PayPal Inc. (US) PayPal, Inc. 1 1.08696 2 0.00282674 0 0 1492
rumble.com (CA) (US) RIPE Network Coordination Centre 1 1.08696 9 0.0127203 0 50 261556
paypalobjects.com (US) PayPal Inc. (US) PayPal, Inc. 1 1.08696 2 0.00282674 0 0 1492
rmbl.ws (US) SoftLayer Technologies Inc. 1 1.08696 13 0.0183738 0 4 13868249
wordpress.com (US) Automattic, Inc. (US) Automattic, Inc 1 1.08696 74 0.104589 7 13 349085
gravatar.com (US) Automattic, Inc. (US) Automattic, Inc 1 1.08696 19 0.026854 5 10 78989
voltairenet.org (FR) (US) Cloudflare, Inc. 1 1.08696 9 0.0127203 9 0 243547
goo.gl (US) Google LLC (US) Google LLC 1 1.08696 1 0.00141337 0 15 0
dumontnet.de (DE) united-domains AG 1 1.08696 4 0.00565347 2 0 61
springer.com (NL) Springer Nature B.V. (NL) Springer Nature B.V. 1 1.08696 1 0.00141337 0 113 159733
dumontnext.de (DE) ProfitBricks Management Karlsruhe 8 1 1.08696 8 0.0113069 8 17 159156
warenform.de (DE) virtual hosting platforms 1 1.08696 4 0.00565347 2 343 123758
architekturzeitung.net (DE) (DE) Infrastructure 1 1.08696 112 0.158297 59 111 669454
addtoany.com (US) (US) Cloudflare, Inc. 1 1.08696 3 0.0042401 2 0 247493
ethinking.de (DE) Strato AG 1 1.08696 1 0.00141337 0 2 56086
yagiay.com (DE) RIPE Network Coordination Centre 1 1.08696 4 0.00565347 2 0 272
aws-cbc.cloud (FR) CBC Cologne Broadcasting Center GmbH (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 0 181 2
nmrodam.com (US) The Nielsen Company US, LLC (US) Amazon.com, Inc. 1 1.08696 7 0.00989357 0 1225 224248
e-pages.dk (DK) Visiolink 1 1.08696 1 0.00141337 0 0 56703
typography.com (US) (US) Amazon Technologies Inc. 1 1.08696 1 0.00141337 1 10 17
brightcove.com (US) Google LLC 1 1.08696 7 0.00989357 0 581 9137
zencdn.net (FR) Brightcove, Inc. (US) Fastly 1 1.08696 1 0.00141337 0 0 20751
brightcove.net (US) Amazon.com, Inc. 1 1.08696 1 0.00141337 0 14 849718
wallstreet-online.de (DE) SOPRADO GmbH 1 1.08696 11 0.015547 0 136 44127
hubspot.com (US) HUBSPOT INC. (US) Cloudflare, Inc. 1 1.08696 6 0.00848021 0 99 81433
finance.si (SI) Posta Slovenije, d.o.o. 1 1.08696 2 0.00282674 2 0 128391
cookiebot.com (DK) CYBOT (US) Amazon Technologies Inc. 1 1.08696 12 0.0169604 3 0 379611
theepochtimes.com (US) (US) Google LLC 1 1.08696 1 0.00141337 0 11 41669
quantcount.com (US) Quantcast (US) Internap Holding LLC 1 1.08696 2 0.00282674 0 0 6
hstrck.com (DE) HEIMSPIEL Medien GmbH & Co. KG (DE) PlusServer GmbH 1 1.08696 2 0.00282674 0 11 86
fazcdn.net (DE) F.A.Z. Electronic Media GmbH (US) PSINet, Inc. 1 1.08696 1 0.00141337 0 0 12714
appspot.com (US) Google LLC (US) Google LLC 1 1.08696 4 0.00565347 0 0 23818
hs-edge.net (DE) HEIMSPIEL Medien GmbH & Co. KG (DE) PlusServer GmbH 1 1.08696 2 0.00282674 0 0 89927
dotomi.com (US) Conversant LLC (US) Conversant, LLC 1 1.08696 2 0.00282674 0 492 0
bildstatic.de (EU) Akamai Technologies 1 1.08696 40 0.0565347 6 0 3255291
rawgit.com (US) (US) Cloudflare, Inc. 1 1.08696 3 0.0042401 1 8 16641
vodafone.de (DE) RIPE Network Coordination Centre 1 1.08696 1 0.00141337 1 24 0
usabilla.com (NL) (US) Amazon.com, Inc. 1 1.08696 3 0.0042401 1 3 116406
igodigital.com (US) Salesforce.com, Inc. (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 0 203 17698
arcgis.com (US) ESRI (US) Amazon Technologies Inc. 1 1.08696 30 0.042401 0 51 2384232
githubusercontent.com (US) GitHub, Inc. (US) GitHub, Inc. 1 1.08696 2 0.00282674 0 0 540740
wrzmty.com (US) (FR) OVH SAS 1 1.08696 2 0.00282674 1 6 304
rtmark.net (US) Amazon Technologies Inc. 1 1.08696 4 0.00565347 2 232 1480
vhb.de (US) Microsoft Corp 1 1.08696 45 0.0636015 16 362 1376
rtclx.com (US) (US) Amazon Technologies Inc. 1 1.08696 2 0.00282674 1 5 0
parsely.com (CA) (US) Amazon Technologies Inc. 1 1.08696 6 0.00848021 0 618 102944
derwesten.de (DE) Hetzner Online GmbH 1 1.08696 1 0.00141337 0 0 2430
nrz.de (DE) Hetzner Online GmbH 1 1.08696 1 0.00141337 0 0 2025
wp.de (DE) Hetzner Online GmbH 1 1.08696 1 0.00141337 0 0 1785
chimpstatic.com (US) THE ROCKET SCIENCE GROUP LLC (US) Akamai Technologies, Inc. 1 1.08696 2 0.00282674 1 0 3390
list-manage.com (US) THE ROCKET SCIENCE GROUP LLC (US) The Rocket Science Group, LLC 1 1.08696 2 0.00282674 0 127 6448
media-amazon.com (US) Amazon Technologies, Inc. (US) Amazon.com, Inc. 1 1.08696 2 0.00282674 0 0 63840
ssl-images-amazon.com (US) Amazon Technologies, Inc. (US) Amazon.com, Inc. 1 1.08696 1 0.00141337 0 0 1873
leasewebultracdn.com (NL) (US) Highwinds Network Group, Inc. 1 1.08696 3 0.0042401 3 0 5890441
bundestag.de (DE) Babiel GmbH 1 1.08696 4 0.00565347 2 286 138764
pnp.de (DE) evolver services GmbH 1 1.08696 15 0.0212005 4 507 143631
allesregional.de (DE) SPIEGLHOF media GmbH 1 1.08696 44 0.0621882 0 6 4573985
s4p-iapps.com (DE) (DE) Hetzner Online GmbH 1 1.08696 4 0.00565347 0 0 426390
freiepresse-display.de (DE) RIPE Network Coordination Centre 1 1.08696 2 0.00282674 0 28 17788
plyr.io (PA) (US) Amazon.com, Inc. 1 1.08696 2 0.00282674 2 0 11570
bf-ad.net (DE) (EU) Akamai Technologies 1 1.08696 6 0.00848021 3 0 1300521
finanzen100.de (DE) RIPE Network Coordination Centre 1 1.08696 5 0.00706684 0 27 25328
bf-tools.net (DE) (EU) Akamai Technologies 1 1.08696 10 0.0141337 4 0 49840
wfxtriggers.com (US) TWC Product and Technology, LLC (US) RIPE Network Coordination Centre 1 1.08696 3 0.0042401 2 62 699
netdna-ssl.com (US) NetDNA, LLC. (US) Highwinds Network Group, Inc. 1 1.08696 2 0.00282674 1 0 58538
speedcurve.com (US) (US) Amazon Technologies Inc. 1 1.08696 2 0.00282674 1 10 43450
brandmetrics.com (SE) (US) Cloudflare, Inc. 1 1.08696 5 0.00706684 3 70 88562
erne.co (SC) (BE) OVH BE 1 1.08696 2 0.00282674 0 97 0
aminopay.net (US) Integral Ad Science, Inc. (US) Amazon Technologies Inc. 1 1.08696 2 0.00282674 1 94 86
bfops.io (DE) BurdaForward GmbH (US) Akamai Technologies, Inc. 1 1.08696 2 0.00282674 2 1014 0
ga.de (DE) circ IT GmbH & Co KG 1 1.08696 182 0.257233 0 0 9162252
conative.de (DE) netcup GmbH 1 1.08696 18 0.0254406 0 14 965760
bit.ly (US) Bitly (US) Bitly Inc 1 1.08696 2 0.00282674 0 0 70
mailchimp.com (US) Akamai Technologies, Inc. 1 1.08696 10 0.0141337 0 0 483624
indivsurvey.de (DE) ZeuSWarE GmbH 1 1.08696 12 0.0169604 6 0 517294
wr.de (DE) Hetzner Online GmbH 1 1.08696 1 0.00141337 0 0 1720
fonts.net (US) Monotype Imaging Inc (US) CenturyLink Communications, LLC 1 1.08696 2 0.00282674 1 55 0
ikz-online.de (DE) Hetzner Online GmbH 1 1.08696 1 0.00141337 0 0 1703
permutive.app (CA) (US) Cloudflare, Inc. 1 1.08696 2 0.00282674 1 0 430490
abendblatt.de (DE) Hetzner Online GmbH 1 1.08696 2 0.00282674 1 0 17870
mpnrs.com (DE) M,P,NEWMEDIA, GmbH (DE) rh-tec Business GmbH 1 1.08696 4 0.00565347 2 0 63438
hubspotusercontent20.net (US) HUBSPOT INC. (US) Cloudflare, Inc. 1 1.08696 2 0.00282674 0 0 39594
aachener-zeitung.de (DE) Zeitungsverlag Aachen 1 1.08696 28 0.0395743 0 0 887369
dreilaenderschmeck.de (DE) Zeitungsverlag Aachen 1 1.08696 11 0.015547 0 0 176607
oecherdeal.de (DE) Hetzner Online GmbH 1 1.08696 10 0.0141337 0 0 141813
medienhausaachen.de (DE) Zeitungsverlag Aachen 1 1.08696 1 0.00141337 0 0 3863
uobsoe.com (DE) RIPE Network Coordination Centre 1 1.08696 2 0.00282674 1 0 136
abendzeitung.de (DE) Medien System Haus internal network 1 1.08696 2 0.00282674 0 0 195123
az-muenchen.de (DE) Medien System Haus internal network 1 1.08696 1 0.00141337 0 0 116836
congstar.de (DE) T-Systems Multimedia Solution GmbH 1 1.08696 3 0.0042401 0 79 0
71i.de (DE) ProSiebenSat.1 Tech Solutions GmbH 1 1.08696 5 0.00706684 0 0 911057
rta-design.de (ZZ) APNIC-STUB 1 1.08696 4 0.00565347 2 0 52184
mgaz.de (DE) Infrastructure 1 1.08696 8 0.0113069 0 0 136385
trauer-im-allgaeu.de (DE) ProfitBricks Customers Karlsruhe 2 1 1.08696 17 0.0240272 0 0 1647144
wbtrk.net (DE) Webtrekk GmbH (DE) Webtrekk GmbH 1 1.08696 2 0.00282674 1 0 18
peiq.de (DE) RIPE Network Coordination Centre 1 1.08696 1 0.00141337 1 0 7
bottalk.io (US) (US) DigitalOcean, LLC 1 1.08696 6 0.00848021 6 0 1345182
b-cdn.net (US) (DE) CDN77 Frankfurt - Bunny CDN 1 1.08696 1 0.00141337 0 3 10608
fupa.net (US) (DE) nbsp GmbH 1 1.08696 25 0.0353342 0 0 244240
berliner-zeitung.de (US) Cloudflare, Inc. 1 1.08696 1 0.00141337 0 0 13962
wz-media.de (DE) Hetzner Online GmbH 1 1.08696 2 0.00282674 0 0 107023
  • registrant: The registrant country and name - the organisation that registered the domain name
  • network: The country and name of the network operator of the IP
  • websites: Number of websites where this network was used
  • websites %: Percentage of all visited websites where this network was used
  • requests: Percentage of network requests this server received during all visits
  • article_referer: The number requests that contained the URL of a visited article as 'Referer' header
  • bytes_sent: The number of bytes sent to this server during all visits (via query parameters and POST data)
  • bytes_received: The number of bytes received from this server during all visits

the complete matrix

The tables provide some overview and the matrix below provides us with the actual facts of who used whom. You can hover over the heatmap to see the names. X is website, Y is third party.

I’d like to leave the reader alone now in her/his attempts to detect structure and find understanding in all this.

oh, you made it this far?

Just one more puzzle piece.

Mit der anonymen Messung bieten wir Ihnen das optimale Fundament, um Ihre Nutzungswerte mit 100% Datenschutzkonformität – ohne Opt-In-Pflicht – zuverlässig zu erheben.

That’s what https://www.infonline.de/ explains. They are behind ioam.de which lurks on over 70 websites in this dataset. So here is one of the scripts they deliver. In constrast to most other scripts it is not obfuscated. ‘Guess because they are 100% data protecion compliant.

https://script.ioam.de/iam.js
/*DO NOT HOST THIS SCRIPT ON YOUR OWN SERVER*/
var szmvars = "";
(function(global) {
  var iomnames = "iom".split(',') || ['iom'];
  iomnames = iomnames.length > 4 ? iomnames.slice(0, 3) : iomnames;
  for (var i = 0, iLen = iomnames.length; i < iLen; i +=1) {
    global[iomnames[i]] = (function () {
      var dummySite = "dummy",
          baseUrlDE = "de.ioam.de/tx.io",
          baseUrlLSO = "de.ioam.de/aid.io",
          optinUrl = "de.ioam.de/optin.php?re=",
          qdsUrl = "irqs.ioam.de",
          deBaseUrl = ".ioam.de/tx.io",
          deBaseUrlLSO = ".ioam.de/aid.io",
          deOptinUrl = ".ioam.de/optin.php?re=",
          deSubdomain = ["imarex"],
          cntBaseUrl = ".iocnt.net/tx.io",
          cntBaseUrlLSO = ".iocnt.net/aid.io",
          cntOptinUrl = ".iocnt.net/optin.php?re=",
          cntQdsUrl = "irqs.iocnt.net",
          cntSubdomain = ["at"],
          eventList = ["", "inst", "init","open", "clse", "play", "resm", "stop", "fowa", "bakw", "recd", "paus", "forg", "bakg", "dele", "refr", "kill", "view", "alve", "fini", "mute", "aforg", "abakg", "aclse", "sple", "scvl", "serr", "spyr", "smdr", "sfpl", "sfqt", "ssqt", "stqt", "soqt", "sofc", "scfc", "scqt", "splr", "spli", "sprs", "spre", "smrs", "smre", "sors", "sore", "sack", "sapl", "sapa", "snsp"],
          LSOBlacklist = [],
          checkEvents = 1,
          tb = 0,
          sv = 1,
          lastEvent = "",
          emptyCode = "Leercode_nichtzuordnungsfaehig",
          autoEvents = {
            onfocus:"aforg",
            onblur:"abakg",
            onclose:"aclse"
          },
          nt = 2,
          cookiewhitelist = '[]'.match(/[A-Za-z0-9]+/g) || [],
          cookieName = "ioam2018",
          cookieMaxRuns = 0,
          socioToken = "9103153f604dfc245e460102ec6ec60b",
          OptoutCookieName = "ioamout",
          frequency = 60000,
          hbiAdShort = 5000,
          hbiAdMedium = 10000,
          hbiAdLong = 30000,
          hbiShort = 10000,
          hbiMedium = 30000,
          hbiLong = 60000,
          hbiExtraLong = 300000,
          heart,
          maxSendBoxes = 10;

      var IAMPageElement = null,
          IAMQSElement = null,
          qdsParameter = {},
          qdsPopupBlockDuration = 86400000,
          result = {},
          mode,
          eventsEnabled = 0,
          surveyCalled = 0,
          inited = 0;

      var lsottl = 86400000,
          lsottlmin = 180000,
          ioplusurl = "me.ioam.de";

      var fpCookieDomain = getFpcd(location.hostname),
          consentVendors = ('[730, 785]'.match(/[0-9]+/g) || []).map(function(vendor) { return parseInt(vendor, 10) }),
          consentMaxCheckIntervals = parseInt('10', 10) || 10,
          consentCheckIntervalLength = parseInt('60', 10) || 60,
          cmpUiShownHandler = false,
          consentCookieExpire = new Date();
      consentCookieExpire.setDate(28);
      var consentCookieOptions = {
            name: 'iom_consent',
            domain: fpCookieDomain.length > 0 ? fpCookieDomain.slice(7, fpCookieDomain.length - 1) : '',
            expires: consentCookieExpire.toUTCString(),
            path: '/'
          };
      function setConsent(ct) {
        processConsent(ct, { vendors: consentVendors, cookie: consentCookieOptions, resultKey: 'ct' }, result);
      }
      function loadConsentFromCookie(options) {
        var value = '';
        var date;
        var valueMatch = document.cookie.match(new RegExp('(^| )' + options.name + '=([^;]+)'));
        var valueParts;
        if (valueMatch) {
          valueParts = valueMatch[2].split('&');
          value = valueParts[0];
          date = valueParts[1];
        }
        return {
          value: value,
          date: date
        };
      }
      function writeConsentToCookie(consent, options) {
        var now = Date.now();
        var cookie = '';
        Object.keys(options).forEach(function(key, index, keys) {
          var option = options[key];
          if (key === 'name') {
            cookie += option + '=' + consent + '&' + now;
            cookie += index < keys.length ? '; ' : ''
          } else {
            if (option) {
              cookie += key + '=' + option;
              cookie += index < keys.length ? '; ' : ''
            }
          }
        })
        document.cookie = cookie;
      }
      function checkForConsent(consentString, vendors, vendor, purpose,offset) {
        var result = false;
        if (typeof consentString === 'string' && consentString.length === 2 + vendors.length * 4) {
          var vendorIndex = vendors.indexOf(vendor);
          if (vendorIndex > -1) {
            var start = 2;
            var end = start + ((vendorIndex + 1) * 4);
            var consentVendorPart = parseInt(consentString.slice(start, end), 16);
            var purposeBit = Math.pow(2, (purpose + offset));
            result = (consentVendorPart & purposeBit) === purposeBit;
          }
        }
        return result;
      }
      function processConsent(consentString, consentOptions, iamResultSet) {
        function extractConsentFromCmp(tcData, vendors) {
          function extractPurposes(vendor, hasLegitimateInterest, hasSpecialFeatureOptins) {
            function filter(data) {
              return function(value) {
                return data[value] === true;
              };
            }
            function mapper(offset) {
              return function(value) {
                var exp = (parseInt(value) + offset);
                return Math.pow(2, exp);
              };
            }
            function merge(purposes1, purposes2) {
              return purposes1.concat(purposes2.filter(function(item) {
                return purposes1.indexOf(item) < 0;
              }));
            }
            var purposes;
            var legitimateInterests = [];
            purposes = Object
              .keys(tcData.purpose.consents)
              .filter(filter(tcData.purpose.consents))
              .map(mapper(-1));
            if (hasLegitimateInterest) {
              legitimateInterests = Object
                .keys(tcData.purpose.legitimateInterests)
                .filter(filter(tcData.purpose.legitimateInterests))
                .map(mapper(-1));
            }
            if (legitimateInterests.length > 0) {
              purposes = merge(purposes, legitimateInterests);
            }
            if (hasSpecialFeatureOptins) {
              purposes = purposes.concat(Object.keys(tcData.specialFeatureOptins)
                .filter(filter(tcData.specialFeatureOptins))
                .map(mapper(9)));
            }
            return purposes;
          }
          function createPurposesBitfield(purposes) {
            var result = 0x0000;
            for (var i = 0, iLen = purposes.length; i < iLen; i += 1) {
              result |= purposes[i];
            }
            return result;
          }
          function convertToConsentString(consent) {
            function padStart(str, size) {
              while (str.length < size) {
                str = '0' + str;
              }
              return str;
            }
            var result = '';
            for (var i = 0, iLen = consent.length; i < iLen; i += 1) {
              var hex = consent[i].toString(16);
              var hexLen = 4;
              if (i === 0) {
                hexLen = 2;
              }
              hex = padStart(hex, hexLen);
              result += hex;
            }
            return result;
          }
          var consent = [0x01];
          for (var i = 0, iLen = vendors.length; i < iLen; i += 1) {
            var vendor = vendors[i];
            if (tcData.vendor.consents[vendor] === true || tcData.vendor.legitimateInterests[vendor] === true) {
              var purposes = [];
              var hasLegitimateInterests = tcData.vendor.legitimateInterests[vendor];
              var hasSpecialFeaturesOptins = Object.keys(tcData.specialFeatureOptins).length > 0;
              purposes = extractPurposes(vendors[i], hasLegitimateInterests, hasSpecialFeaturesOptins);
              consent.push(createPurposesBitfield(purposes));
            } else {
              consent.push(0x0000);
            }
          }
          return convertToConsentString(consent);
        }
        function createDefaultConsentString(vendors, hasApi) {
          var result = '';
          for(var i = 0, iLen = vendors.length; i < iLen; i += 1) {
            result += '0000';
          }
          result = (hasApi ? '01' : '00') + result;
          return result;
        }
        function handleConsentLoaded(currentConsentString, options, resultSet) {
          return function(tcData, success) {
            var noop = function() {};
            if (success && ['tcloaded', 'useractioncomplete'].indexOf(tcData.eventStatus) > -1) {
              var extractedConsentString = tcData.gdprApplies
                ? extractConsentFromCmp(tcData, options.vendors)
                : createDefaultConsentString(options.vendors, true);
              if (extractedConsentString !== currentConsentString) {
                if (resultSet && options.resultKey) {
                  resultSet[options.resultKey] = extractedConsentString;
                }
                writeConsentToCookie(extractedConsentString, consentOptions.cookie);
              }
              __tcfapi('removeEventListener', 2, noop, tcData.listenerId);
            } else {
              var failedConsentString = createDefaultConsentString(options.vendors, true);
              if (resultSet && options.resultKey) {
                resultSet[options.resultKey] = failedConsentString;
              }
              writeConsentToCookie(failedConsentString, consentOptions.cookie);
            }
          };
        }
        function handleCmpUiShown(currentConsentString, options, resultSet) {
          return function(tcData, success) {
            if (success && tcData.eventStatus === 'cmpuishown') {
              __tcfapi('addEventListener', 2, handleConsentLoaded(currentConsentString, options, resultSet));
            }
          }
        }
        function hasTcfApi() {
          return '__tcfapi' in window;
        }
        var interval = 0;
        var intervalCount = 0;
        var storedConsentString = loadConsentFromCookie(consentOptions.cookie).value;
        var defaultConsentString = createDefaultConsentString(consentOptions.vendors, hasTcfApi());
        if (hasTcfApi()) {
          if (iamResultSet && consentOptions.resultKey) {
            iamResultSet[consentOptions.resultKey] = storedConsentString || defaultConsentString;
          }
          __tcfapi('addEventListener', 2, handleConsentLoaded((storedConsentString || defaultConsentString), consentOptions, iamResultSet));
          if (cmpUiShownHandler === false) {
            __tcfapi('addEventListener', 2, handleCmpUiShown((storedConsentString || defaultConsentString), consentOptions, iamResultSet));
            cmpUiShownHandler = true;
          }
        } else if (!hasTcfApi()){
          interval = setInterval(function() {
            intervalCount += 1;
            if (hasTcfApi() || intervalCount >= consentMaxCheckIntervals) {
              clearInterval(interval);
              processConsent(consentString, consentOptions, iamResultSet);
            }
          }, consentCheckIntervalLength);
        }
        if (consentString && consentString !== storedConsentString && hasTcfApi() === false) {
          writeConsentToCookie(consentString, consentOptions.cookie);
          if (iamResultSet && consentOptions.resultKey) {
            iamResultSet[consentOptions.resultKey] = consentString;
          }
        } else if (!consentString && storedConsentString && hasTcfApi() === false) {
          if (iamResultSet && consentOptions.resultKey) {
            iamResultSet[consentOptions.resultKey] = storedConsentString;
          }
        } else if (!consentString && !storedConsentString && hasTcfApi() === false) {
          writeConsentToCookie(defaultConsentString, consentOptions.cookie);
          if (iamResultSet && consentOptions.resultKey) {
            iamResultSet[consentOptions.resultKey] = defaultConsentString;
          }
        }
      }
      function enableEvents() {
        if ((tb == 1 || result.tb == "on") && result.tb != "off" && !eventsEnabled) {
          eventsEnabled = 1;
          mode = 1;
          for(var e in autoEvents) {
            (function(e) {
              var oldEvent = window[e];
              window[e] = function() {
                if (lastEvent != autoEvents[e]) {
                  lastEvent = autoEvents[e];
                  event(autoEvents[e]);
                }
                if (typeof oldEvent == "function") oldEvent();
              };
            })(e);
          }
        }
      }

      function isDoNotTrack() {
        if ((nt & 2) ? ((typeof result.nt == "undefined") ? (nt & 1) : result.nt) : nt & 1) {
          if (window.navigator.msDoNotTrack && window.navigator.msDoNotTrack == "1") return true;
          if (window.navigator.doNotTrack && (window.navigator.doNotTrack == "yes" || window.navigator.doNotTrack == "1")) return true;
        }
        return false;
      }

      var getInvitation = function (response) {
        if (response && response.hasOwnProperty("block-status")){
          var isEligibleForInvitation = ( "NONE" === response['block-status'].toUpperCase() );
          if (isEligibleForInvitation) {
            if (IAMQSElement) {
              IAMQSElement.parentNode.removeChild(IAMQSElement);
            }
            IAMQSElement = createScriptTag(response['invite-url']);
          }
        }
      };

      function loadSurvey() {
        szmvars = result.st + "//" + result.pt + "//" + result.cp + "//VIA_SZMNG";
        var sampleType = (result.sv == "i2") ? "in" : result.sv;
        var qdsHost = qdsUrl;
        if (result.cn) {
          sampleType += "_"+result.cn;
          if (result.cn == "at") {
            qdsHost = cntQdsUrl;
          }
        }

        qdsParameter = {
          siteIdentifier: result.cp,
          offerIdentifier: result.st,
          sampleType: sampleType,
          pixelType: result.pt,
          contentType: result.cp,
          host: qdsHost,
          port: "",
          isFadeoutFlash: true,
          isFadeoutFrame: true,
          isFadeoutForm: true,
          positionTop: 10,
          positionLeft: 100,
          zIndex: 1100000,
          popupBlockDuration: qdsPopupBlockDuration,
          keysForQueryParam : [
            "offerIdentifier",
            "siteIdentifier",
            "sampleType",
            "pixelType",
            "isFadeoutFlash",
            "isFadeoutFrame",
            "isFadeoutForm",
            "positionTop",
            "positionLeft",
            "zIndex"]
        };

        if(typeof window.iam_zindex !== 'undefined') {
          qdsParameter.zIndex = window.iam_zindex;
        }

        if(typeof window.iam_fadeout_flash !== 'undefined') {
          qdsParameter.isFadeoutFlash = window.iam_fadeout_flash;
        }

        if(typeof window.iam_fadeout_iframe !== 'undefined') {
          qdsParameter.isFadeoutFrame = window.iam_fadeout_iframe;
        }

        if(typeof window.iam_fadeout_form !== 'undefined') {
          qdsParameter.isFadeoutForm = window.iam_fadeout_form;
        }

        if(typeof window.iam_position_top !== 'undefined') {
          qdsParameter.positionTop = window.iam_position_top;
        }

        if(typeof window.iam_position_left !== 'undefined') {
          qdsParameter.positionLeft = window.iam_position_left;
        }

        var filterObjectByKeys = function (obj, keysToFilter) {
          var result = {}, key;
          var arrayLength = keysToFilter.length;
          for (var i = 0; i < arrayLength; i++) {
            key = keysToFilter[i];
            if (obj.hasOwnProperty(key)) {
              result[key] = obj[key];
            }
          }
          return result;
        };

        var serializeToQueryString = function (obj) {
          var str = [];
          for (var key in obj)
            if (obj.hasOwnProperty(key)) {
              str.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]));
            }
          return str.join("&");
        };

        var createPopupcheckCookie = function (blockDuration) {
          var blockedUntilDate = new Date();
          blockedUntilDate.setTime(blockedUntilDate.getTime() + blockDuration);
          var expires = "expires=" + blockedUntilDate.toUTCString();
          document.cookie = "POPUPCHECK=" + blockedUntilDate.getTime().toString() + ";" + expires + ";path=/";
        };

        var hasPopupcheckCookie = function () {
          var cookie = document.cookie.split(";");
          for (var i = 0; i < cookie.length; i++) {
            if (cookie[i].match("POPUPCHECK=.*")) {
              var currentDate = new Date();
              var now = currentDate.getTime();
              currentDate.setTime(cookie[i].split("=")[1]);
              var blockedUntilTime = currentDate.getTime();
              if (now <= blockedUntilTime) {
                return true;
              }
            }
          }
          return false;
        };

        if (hasPopupcheckCookie()) {
          return;
        }

        if (sv && !surveyCalled && result.sv !== "ke" && result.sv === "dz") {
          surveyCalled = 1;
          iam_ng_nxss();
        }

        if (sv && !surveyCalled && result.sv !== "ke" && (result.sv === "in" || result.sv === "mo" || result.sv === "i2" )) {
          surveyCalled = 1;
          createPopupcheckCookie(qdsParameter.popupBlockDuration);
          // var protocol = window.location.protocol;
          var protocol = "https:";
          var pathOfCheckInvitation = "identitystatus";
          var queryParameter = filterObjectByKeys(qdsParameter, qdsParameter.keysForQueryParam);
          var queryParameterString = "?" + serializeToQueryString(queryParameter);
          if (window.XDomainRequest && document.documentMode === 9) {
            var checkForInvitationUrl = protocol + '//' + qdsParameter.host + '/' + pathOfCheckInvitation + '/identity.js' + queryParameterString+'&callback=iom.gi&c='+Math.random();
            createScriptTag(checkForInvitationUrl);
          } else {
            var checkForInvitationUrl = protocol + '//' + qdsParameter.host + '/' + pathOfCheckInvitation + queryParameterString+'&c='+Math.random();
            var httpRequest = new XMLHttpRequest();
            httpRequest.onreadystatechange = function () {
              if (httpRequest.readyState === XMLHttpRequest.DONE && 200 === httpRequest.status) {
                var response = JSON.parse(httpRequest.responseText);
                getInvitation(response);
              }
            };
            httpRequest.open('GET', checkForInvitationUrl, true);
            httpRequest.withCredentials = true;
            httpRequest.send(null);
          }

        }
      }

      function hash(key) {
        var hash = 0;
        for (var i=0; i<key.length; ++i) {
          hash += key.charCodeAt(i);
          hash += (hash << 10);
          hash ^= (hash >> 6);
        }
        hash += (hash << 3);
        hash ^= (hash >> 11);
        hash += (hash << 15);
        hash = Math.abs(hash & hash);
        return hash.toString(36);
      }

      function activeXDetect() {
        var result = "",
            componentVersion,
            components =[
              "7790769C-0471-11D2-AF11-00C04FA35D02", "89820200-ECBD-11CF-8B85-00AA005B4340",
              "283807B5-2C60-11D0-A31D-00AA00B92C03", "4F216970-C90C-11D1-B5C7-0000F8051515",
              "44BBA848-CC51-11CF-AAFA-00AA00B6015C", "9381D8F2-0288-11D0-9501-00AA00B911A5",
              "4F216970-C90C-11D1-B5C7-0000F8051515", "5A8D6EE0-3E18-11D0-821E-444553540000",
              "89820200-ECBD-11CF-8B85-00AA005B4383", "08B0E5C0-4FCB-11CF-AAA5-00401C608555",
              "45EA75A0-A269-11D1-B5BF-0000F8051515", "DE5AED00-A4BF-11D1-9948-00C04F98BBC9",
              "22D6F312-B0F6-11D0-94AB-0080C74C7E95", "44BBA842-CC51-11CF-AAFA-00AA00B6015B",
              "3AF36230-A269-11D1-B5BF-0000F8051515", "44BBA840-CC51-11CF-AAFA-00AA00B6015C",
              "CC2A9BA0-3BDD-11D0-821E-444553540000", "08B0E5C0-4FCB-11CF-AAA5-00401C608500",
              "D27CDB6E-AE6D-11CF-96B8-444553540000", "2A202491-F00D-11CF-87CC-0020AFEECF20"
            ];
        document.body.addBehavior( "#default#clientCaps" );
        for (var i = 0; i < components.length; i++) {
          componentVersion = document.body.getComponentVersion('{' + components[i] + '}', 'ComponentID');
          if ( componentVersion !== null ) {
            result += componentVersion;
          } else {
            result += "null";
          }
        }
        return result;
      }

      function fingerprint() {
        var nav = window.navigator, t = nav.userAgent;
        t += getScreen();
        if (nav.plugins.length > 0 ) {
          for (var i = 0; i < nav.plugins.length; i++ ) {
            t += nav.plugins[i].filename + nav.plugins[i].version + nav.plugins[i].description;
          }
        }
        if (nav.mimeTypes.length > 0 ) {
          for (var i = 0; i < nav.mimeTypes.length; i++ ) {
            t += nav.mimeTypes[i].type;
          }
        }
        if ( /MSIE (\d+\.\d+);/.test(nav.userAgent) ) {
          try {
            t += activeXDetect();
          }
          catch(e) {
            // ignore
          }
        }
        return hash(t);
      }

      function createScriptTag(url){
        var el = document.createElement("script");
        el.type = "text/javascript";
        el.src = url;
        var head = document.getElementsByTagName("head")[0];
        if(head) {
          head.appendChild(el);
          return el;
        }
        else return false;
      }

      function createScriptTagAsync(url, cb){
        var el = document.createElement("script");
        el.type = "text/javascript";
        el.src = url;
        el.onload = cb;
        el.async = true;
        var head = document.getElementsByTagName("head")[0];
        if(head) {
          head.appendChild(el);
          return el;
        }
        else return false;
      }

      function createIamSendBox(url) {
        function appendSendBox(url) {
          var sendBox = document.createElement("iframe");
          sendBox.className = 'iamsendbox';
          sendBox.style.position = 'absolute';
          sendBox.style.left = sendBox.style.top = '-999px';
          sendBox.src = url + '&mo=1';
          document.body.appendChild(sendBox);
        }
        var sendBoxes = document.querySelectorAll('.iamsendbox');
        if (sendBoxes.length < maxSendBoxes) {
          appendSendBox(url);
        } else {
          sendBoxes[0].remove();
          appendSendBox(url);
        }
      }

      function transmitData(url, mode) {
        if (url.split("/")[2].slice(url.split("/")[2].length-8) == ".ioam.de" || url.split("/")[2].slice(url.split("/")[2].length-10) == ".iocnt.net") {
          switch (mode) {
            case 1:
              if (IAMPageElement) {
                IAMPageElement.parentNode.removeChild(IAMPageElement);
              }
              IAMPageElement = createScriptTag(url+'&mo=1');
              if (!IAMPageElement) (new Image()).src = url+'&mo=0';
              break;
            case 2:
              (new Image()).src = url+'&mo=0';
              break;
            case 3:
              createIamSendBox(url);
              break;
            case 0:
            default:
              document.write('<script src="'+url+'&mo=1"></script>');
          }
        }
      }

      function getScreen() {
        return screen.width + "x" + screen.height + "x" + screen.colorDepth;
      }

      function arrayContains(arr, obj) {
        var i;
        for (i=0;i<arr.length;i++) {
          if (arr[i]==obj) return true;
        }
        return false;
      }

      function transformVar(value) {
        if (!value) value = "";
        value = value.replace(/[?#].*/g, "");
        value = value.replace(/[^a-zA-Z0-9,_\/-]+/g, ".");
        if (value.length > 255) value = value.substr(0,254) + '+';
        return value;
      }

      function transformRef(value) {
        if (!value) value = "";
        //value = value.replace(/[?#].*/g, "");
        value = value.replace(/[^a-zA-Z0-9,_\/:-]+/g, ".");
        if (value.length > 255) value = value.substr(0,254) + '+';
        return value;
      }

      function getRefHost() {
        var url = document.referrer.split("/");
        return (url.length >= 3) ? url[2] : "";
      }

      function buildResult(params) {
        result = {};
        var i;
        for (i in params) {
          if (params.hasOwnProperty(i)) {
            if (i != "cn" || (i == "cn" && (arrayContains(deSubdomain, params[i])) || (arrayContains(cntSubdomain, params[i])))) {
              result[i] = params[i];
            }
          }
        }
        if (result.hasOwnProperty("fp")) {
          result.fp = (result.fp != "" && typeof result.fp != "undefined") ? result.fp : emptyCode;
          result.fp = transformVar(result.fp);
          result.pt = "FP";
        }
        if (result.hasOwnProperty("np")) {
          result.np = (result.np != "" && typeof result.np != "undefined") ? result.np : emptyCode;
          result.np = transformVar(result.np);
          result.pt = "NP";
        }
        if (result.hasOwnProperty("xp")) {
          result.xp = (result.xp != "" && typeof result.xp != "undefined") ? result.xp : emptyCode;
          result.xp = transformVar(result.xp);
          result.pt = "XP";
        }
        if (result.hasOwnProperty("cp")) {
          result.cp = (result.cp != "" && typeof result.cp != "undefined") ? result.cp : emptyCode;
          result.cp = transformVar(result.cp);
          result.pt = "CP";
        }
        if (result.hasOwnProperty("ms")) {
          result.ms = (result.ms != "" && typeof result.ms != "undefined") ? result.ms : "";
        }
        if (!result.pt) {
          result.cp = emptyCode;
          result.pt = "CP";
          result.er = "N13";
        }
        if (!result.hasOwnProperty("ps")) {
          result.ps = "lin";
          result.er = "N22";
        } else {
          if (!(arrayContains(['ack', 'lin', 'pio', 'out'], result.ps))) {
            result.ps = "lin";
            result.er = "N23";
          }
        }
        result.rf = getRefHost();
        if (!result.hasOwnProperty("sur") || (result.hasOwnProperty("sur") && result.sur != "yes")) {
          result.r2 = transformRef(document.referrer);
        }
        result.ur = document.location.host;
        result.xy = getScreen();
        result.lo = "DE/Berlin";
        result.cb = "001d";
        result.i2 = "001dd5cb280c42a79604dfc24";
        result.ep = parseInt('1645866271', 10);
        result.vr = "423";
        result.id = fingerprint();
        result.st = result.st ? result.st : dummySite;
        if (!result.hasOwnProperty("sc") || (result.hasOwnProperty("sc") && result.sc != "no")) {
          var cookie = getFirstPartyCookie();
          result.i3 = cookie.cookie;
          result.n1 = cookie.length;
        }
        if (((arrayContains(cookiewhitelist, result.st)) || (result.hasOwnProperty("sc") && result.sc == "yes")) && result.i3 == "nocookie") {
          result.i3 = setFirstPartyCookie();
        }

        if (!result.hasOwnProperty("cn") && result.st.charAt(2) == "_") {
          var cn = result.st.substr(0,2);
          if (arrayContains(deSubdomain, cn) || arrayContains(cntSubdomain, cn)) {
            result.cn = cn;
          } else {
            result.er = "E12";
          }
        }

        // DNT dissemination survey
        try {
          result.dntt = ((window.navigator.msDoNotTrack && window.navigator.msDoNotTrack == "1") || (window.navigator.doNotTrack && (window.navigator.doNotTrack == "yes" || window.navigator.doNotTrack == "1"))) ? "1" : "0";
        } catch(e) {
          // ignore
        }
      }

      function event(event) {
        var payLoad = "";
        var i;
        event = event || "";
        stopHeart();
        if (inited && !isDoNotTrack() && (!checkEvents || (checkEvents && arrayContains(eventList, event))) && result.ps !== "out") {
          result.lt = (new Date()).getTime();
          result.ev = event;
          // var proto = ( window.location.protocol.slice(0,4) === 'http' ) ? window.location.protocol : "https:";
          var proto = "https:";
          var baseUrl = baseUrlDE;
          if (result.cn && arrayContains(deSubdomain, result.cn)) {
            baseUrl = result.cn + deBaseUrl;
          } else if (result.cn && arrayContains(cntSubdomain, result.cn)) {
            baseUrl = result.cn + cntBaseUrl;
          }
          if ( !(arrayContains(LSOBlacklist, result.st)) && ( ((/iPhone/.test(window.navigator.userAgent) || /iPad/.test(window.navigator.userAgent)) && /Safari/.test(window.navigator.userAgent) && !(/Chrome/.test(window.navigator.userAgent)) && !(/CriOS/.test(window.navigator.userAgent))) || ( /Maple_201/.test(window.navigator.userAgent) || /SMART-TV/.test(window.navigator.userAgent) || /SmartTV201/.test(window.navigator.userAgent) ) ) ) {
            if (result.cn && arrayContains(deSubdomain, result.cn)) {
              baseUrl = result.cn + deBaseUrlLSO;
            } else if (result.cn && arrayContains(cntSubdomain, result.cn)) {
              baseUrl = result.cn + cntBaseUrlLSO;
            } else {
              baseUrl = baseUrlLSO;
            }
            mode = 3;
            if (result.hasOwnProperty("sur") && result.sur == "yes") {
              result.u2 = window.location.origin;
            } else {
              result.u2 = document.URL;
            }
          }
          for (i in result) {
            if (result.hasOwnProperty(i) && i!="cs" && i!="url") {
              payLoad = payLoad + encodeURIComponent(i).slice(0,8) + "=" + encodeURIComponent(result[i]).slice(0,2048) + "&";
            }
          }
          payLoad = payLoad.slice(0,4096);
          result.cs = hash(payLoad);
          result.url = proto + "//" + baseUrl + "?" + payLoad + "cs=" + result.cs;
          transmitData(result.url, mode);
          if (arrayContains(['play', 'resm', 'alve', 'mute', 'sfqt', 'ssqt', 'stqt', 'sapl', 'snsp'], event) && (mode === 1 || mode === 3) && result.hasOwnProperty('hb')) {
            startHeart();
          }
          return result;
        }
        return {};
      }

      function forwardToOldSZM() {
        if (result.oer === "yes" && !window.IVW && !document.IVW) {
          var SZMProtocol = (window.location.protocol.slice(0,4) === 'http') ? window.location.protocol : "https:";
          var SZMComment = (result.co) ? result.co + "_SENT_VIA_MIGRATION_TAG" : "SENT_VIA_MIGRATION_TAG";
          var SZMCode = (result.oc) ? result.oc : ((result.cp) ? ((result.cp == emptyCode) ? "" : result.cp) : "");
          var SZMContType = (result.pt !== null) ? result.pt : "CP";
          (new Image()).src = SZMProtocol + "//" + result.st + ".ivwbox.de/cgi-bin/ivw/" + SZMContType.toUpperCase() + "/" + SZMCode + ";" + SZMComment + "?r=" + escape(document.referrer) + "&d=" + (Math.random()*100000);
        }
      }

      function count(params, m) {
        init(params,m);
        return event(result.ev);
      }

      function init(params,m) {
        if (!params.cn || params.cn !== 'at') {
          processConsent(params.ct, { vendors: consentVendors, cookie: consentCookieOptions, resultKey: 'ct' }, params);
        }
        // Remove AMP consent string when provided
        if (params.act) {
          delete params.act;
        }
        mode = m;
        buildResult(params);
        if (result.sv) {
          result.sv = (result.sv == "in" && mode == 1) ? "i2" : result.sv;
        }
        if (result.sv && result.sv !== 'ke' && checkForConsent(params.ct, consentVendors, 785, 9, -1) === false) {
          result.sv = 'ke';
        }
        enableEvents();
        loadSurvey();
        checkOptoutCookie();
        inited = 1;
        forwardToOldSZM();
        return {};
      }

      function hybrid(params,m) {
        init(params,m);
        var ioam_smi = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_smi") : null;
        var ioam_site = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_site") : null;
        var ioam_bo = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_bo") : null;
        if ( ioam_smi !== null && ioam_site !== null && ioam_bo !== null ) {
          result.mi = ioam_smi;
          result.fs = result.st;
          result.st = ioam_site;
          result.bo = ioam_bo;
          if (result.fs == result.st) {
            result.cp = (result.cp.slice(0,10) !== "___hyb2___") ? "___hyb2___"+result.fs+"___"+result.cp : result.cp;
          } else {
            result.cp = (result.cp.slice(0,9) !== "___hyb___") ? "___hyb___"+result.fs+"___"+result.cp : result.cp;
          }
          return event(result.ev);
        } else if ( ioam_smi !== null && ioam_bo !== null ) {
          return {};
        } else {
          if ( window.location.protocol.slice(0,4) !== 'http' || /IOAM\/\d+\.\d+/.test(window.navigator.userAgent) ) {
            return {};
          } else {
            return event(result.ev);
          }
        }
      }

      function setMultiIdentifier(midentifier) {
        if ( localStorage.getItem("ioam_smi") === null || localStorage.getItem("ioam_site") === null || localStorage.getItem("ioam_bo") === null || localStorage.getItem("ioam_smi") !== midentifier ) {
          result.fs = result.st;
          var JsonMIndetifier = null;
          var NewSite = null;
          if ( typeof midentifier === 'string' && typeof JSON === 'object' && typeof JSON.parse === 'function' ) {
            try {
              JsonMIndetifier = JSON.parse(midentifier);
              if (JsonMIndetifier.hasOwnProperty( 'library' )) {
                if (JsonMIndetifier.library.hasOwnProperty( 'offerIdentifier' )) {
                  if ( JsonMIndetifier.library.offerIdentifier ) {
                    NewSite = JsonMIndetifier.library.offerIdentifier;
                  } else {
                    result.er = "JSON(E10): offerIdentifier not valid";
                  }
                } else {
                  result.er = "JSON(E10): no key offerIdentifier";
                }
              } else {
                result.er = "JSON(E10): no key library";
              }
            } catch(err) {
              result.er = "JSON(E10): "+err;
            }
          }
          if ( NewSite !== null ) {
            localStorage.setItem("ioam_site", NewSite);
          }
          result.st = NewSite;
          result.mi = midentifier;
          result.bo = (new Date()).getTime();
          localStorage.setItem("ioam_smi", result.mi);
          localStorage.setItem("ioam_bo", result.bo);
          if (result.fs == result.st) {
            result.cp = (result.cp.slice(0,10) !== "___hyb2___") ? "___hyb2___"+result.fs+"___"+result.cp : result.cp;
          } else {
            result.cp = (result.cp.slice(0,9) !== "___hyb___") ? "___hyb___"+result.fs+"___"+result.cp : result.cp;
          }
          return event(result.ev);
        }
        return {};
      }

      if (window.postMessage || window.JSON && {}.toString.call(window.JSON.parse) !== '[object Function]' && {}.toString.call(window.JSON.stringify) !== '[object Function]') {
        var listener = function(msg) {
          try {
            var msgdata = JSON.parse(msg.data);
          } catch(e) {
            msgdata = { type:false };
          }
          if ({}.toString.call(msgdata) === '[object Object]' && msgdata.type == "iam_data") {
            var respObj = {
              seq : msgdata.seq,
              iam_data : {
                st: result.st,
                cp: result.cp
              }
            };
            msg.source.postMessage(JSON.stringify(respObj),msg.origin);
          }
        };
        if (window.addEventListener) {
          window.addEventListener("message", listener);
        } else {
          window.attachEvent("onmessage", listener);
        }
      }

      function optin() {
        var oiurl = ( window.location.protocol.slice(0,4) === 'http' ) ? window.location.protocol : "https:" + "//" + optinUrl;
        var win = window.open(oiurl, '_blank');
        win.focus();
      }

      function startHeart() {
        // IE 9 Compatible
        function heartbeat() {
          return event("alve");
        }
        switch (result.hb) {
          case "adshort":
            frequency = hbiAdShort;
            break;
          case "admedium":
            frequency = hbiAdMedium;
            break;
          case "adlong":
            frequency = hbiAdLong;
            break;
          case "short":
            frequency = hbiShort;
            break;
          case "medium":
            frequency = hbiMedium;
            break;
          case "long":
            frequency = hbiLong;
            break;
          case "extralong":
            frequency = hbiExtraLong;
            break;
          default:
            frequency = 0;
        }
        if (frequency != 0) {
          try {
            heart = setInterval(heartbeat, frequency);
          } catch(e) {
            // pass
          }
        }
      }

      function stopHeart() {
        try {
          clearInterval(heart);
        } catch(e) {
          // pass
        }
      }

      function stringtohex(str) {
        var res = [];
        for (var n = 0, l = str.length; n < l; n ++) {
          var hex = Number(str.charCodeAt(n)).toString(16);
          res.push(hex);
        }
        return res.join('');
      }

      function getUniqueID() {
        var max = 999999999999;
        var min = 100000000000;
        return (Math.floor(Math.random() * (max - min + 1)) + min).toString(16) + (Math.floor(Math.random() * (max - min + 1)) + min).toString(16) + stringtohex(result.cb) + (Math.floor(Math.random() * (max - min + 1)) + min).toString(16);
      }

      function expireDays() {
        var max = 365;
        var min = 300;
        return Math.floor(Math.random() * (max - min + 1)) + min;
      }

      function getFirstPartyCookie() {
        //FF Patch
        try {
          var cookie = document.cookie.split(";");
          for (var i = 0; i < cookie.length; i++) {
            if (cookie[i].match(cookieName + "=.*")) {
              var ourcookie = cookie[i].split("=")[1].replace("!", ":");
              var cookieParts = ourcookie.split(":");
              var firstCookieParts = cookieParts.slice(0, cookieParts.length - 1).join(':');
              var lastCookiePart = cookieParts.slice(-1).pop();
              if (hash(firstCookieParts) === lastCookiePart) {
                if (!result.hasOwnProperty("i3") || !result.i3) {
                  updateFirstPartyCookie(ourcookie);
                }
                return {
                  cookie: ourcookie,
                  length: cookie.length
                };
              } else {
                // checksum failed, cookie not trusted, delete cookie
                result.er = "N19";
                try {
                  if (cookieMaxRuns < 3) {
                    cookieMaxRuns++;
                    setFirstPartyCookie(2000);
                  } else {
                    result.er = "N20";
                  }
                } catch(e) {
                  result.er = "N20";
                }
              }
            }
          }
        } catch(e) {
          return {cookie: "nocookie", length: 0};
        }
        return {cookie: "nocookie", length: cookie.length};
      }

      function checkFirstPartyCookie() {
        var cookie = getFirstPartyCookie();
        if (cookie.cookie != "nocookie") {
          return true;
        } else {
          return false;
        }
      }

      function getFpcd(cd) {
        var ctld ='acadaeafagaialamaoaqarasatauawaxazbabbbdbebfbgbhbibjbmbnbobrbsbtbwbybzcacccdcfcgchcickclcmcncocrcucvcwcxcyczdjdkdmdodzeceeegereseteufifjfkfmfofrgagdgegfggghgiglgmgngpgqgrgsgtgugwgyhkhmhnhrhthuidieiliminioiqirisitjejmjojpkekgkhkikmknkpkrkwkykzlalblclilklrlsltlulvlymamcmdmemgmhmkmlmmmnmompmqmrmsmtmumvmwmxmymznancnenfngninlnonpnrnunzompapepfpgphpkplpmpnprpsptpwpyqarerorsrurwsasbscsdsesgshsiskslsmsnsosrssstsvsxsysztctdtftgthtjtktltmtntotrtttvtwtzuaugukusuyuzvavcvevgvivnvuwfwsyeytzazmzw'.match(/.{1,2}(?=(.{2})+(?!.))|.{1,2}$/g),
            blkPrefixes = ['www', 'm', 'mobile'],
            urlParts = cd.split('.'),
            fpcd,
            ctldParts = [],
            hostParts = [],
            ctldPart = '',
            hostPart = '',
            i = 0,
            iLen = 0;
        if (!cd) return '';
        if (arrayContains(ctld, urlParts[urlParts.length -1])) {
          for (i = urlParts.length -1; i >= 0; i -= 1) {
            if ( i >= urlParts.length - 3 && urlParts[i].length <= 4) {
              ctldParts.push(urlParts[i]);
            } else {
              hostParts.push(urlParts[i]);
              break;
            }
          }
          ctldParts = ctldParts.reverse();
          for (i = 0, iLen = ctldParts.length;i < iLen; i += 1) {
            if (!arrayContains(blkPrefixes, ctldParts[i])) {
              ctldPart += i < iLen ? '.' + ctldParts[i] :  ctldParts[i];
            }
          }
          hostParts = hostParts.reverse();
          hostPart = hostParts[hostParts.length - 1] || '';
          if (arrayContains(blkPrefixes, hostPart)) {
            hostPart = '';
          }
        } else {
          hostPart = urlParts
          .slice(urlParts.length - 2, urlParts.length)
          .join('.') || '';
        }
        fpcd = hostPart + ctldPart;
        if (fpcd && fpcd.length > 4 && fpcd.split('.').length > 1) {
          // RFC 2109
          return 'domain=' + (fpcd[0] === '.' ? fpcd : (fpcd ? '.' + fpcd : '')) + ';';
        }
        return '';
      }

      function updateFirstPartyCookie(cookievalue) {
        var domain = getFpcd(location.hostname);
        var expireValue = cookievalue.split(":")[1];
        var events = parseInt(cookievalue.split(":")[4]) + 1;
        var expireDate = new Date(new Date().setTime(expireValue));
        var now = new Date();
        var site = (result.st) ? result.st : "nosite";
        var code = (result.cp) ? result.cp : (result.np) ? result.np : (result.fp) ? result.fp : "nocode";
        var evnt = (result.ev) ? result.ev : "noevent";
        var cookval = cookievalue.split(":").slice(0,4).join(":") + ":" + events + ":" + site + ":" + code + ":" + evnt + ":" + now.getTime().toString();
        cookval = cookval + ":" + hash(cookval);
        document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;";
      }

      function setFirstPartyCookie(expire) {
        if (!expire) {
          expire = expireDays()*24*60*60*1000;
        }
        var domain = getFpcd(location.hostname);
        var expireDate = new Date(new Date().setTime(new Date().getTime()+expire));
        var setDate = new Date();
        var identifier;
        var site = (result.st) ? result.st : "nosite";
        var code = (result.cp) ? result.cp : (result.np) ? result.np : (result.fp) ? result.fp : "nocode";
        var evnt = (result.ev) ? result.ev : "noevent";
        if (result.hasOwnProperty("i2")) {
          identifier = result.i2;
        } else {
          identifier = getUniqueID();
        }
        var cookreturnval = identifier + ":" + expireDate.getTime().toString() + ":" + setDate.getTime().toString() + ":" + domain.replace("domain=", "").replace(";", "") + ":1:" + site + ":" + code + ":" + evnt + ":" +  setDate.getTime().toString();
        var cookval = identifier + ":" + expireDate.getTime().toString() + ":" + setDate.getTime().toString() + ":" + domain.replace("domain=", "").replace(";", "") + ":2:" + site + ":" + code + ":" + evnt + ":" +  setDate.getTime().toString();
        cookval = cookval + ":" + hash(cookval);
        document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;";
        if (!checkFirstPartyCookie()) {
          // cookie not found, try it without domain
          document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";path=/;";
          result.er = "N25";
          if (!checkFirstPartyCookie()) {
            result.er = "N26";
            return "nocookie";
          }
        }
        return cookreturnval;
      }

      function createCORSRequest(method, url) {
        var xdhreq = new XMLHttpRequest();
        if ("withCredentials" in xdhreq) {
          xdhreq.open(method, url, true);
          xdhreq.withCredentials = true;
        } else if (typeof XDomainRequest != "undefined") {
          xdhreq = new XDomainRequest();
          xdhreq.open(method, url);
        } else {
          xdhreq = null;
        }
        return xdhreq;
      }

      function setOptout(expire) {
        if (!expire) {
          // Year(s)*Days*Hours*Minutes*Seconds*1000
          expire = 1*24*60*60*1000;
        }
        var domain = getFpcd(location.hostname);
        var expireDate = new Date(new Date().setTime(new Date().getTime()+expire));
        document.cookie = OptoutCookieName + "=stop;expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;";
        // delete 1st-Party-Cookie
        setFirstPartyCookie(2000);
      }

      function checkOptoutCookie() {
        try {
          var cookie = document.cookie.split(";");
          for (var i = 0; i < cookie.length; i++) {
            if (cookie[i].match(OptoutCookieName + "=.*")) {
              result.ps = "out";
              return true;
            }
          }
          return false;
        } catch(e) {
          return false;
        }
      }

      function delOptout() {
        setOptout(2000);
        // delete 1st-Party-Cookie
        setFirstPartyCookie(2000);
      }

      function getPlus() {
        if (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') {
          if (localStorage.getItem("ioamplusdata") !== null && localStorage.getItem("ioamplusttl") !== null) {
            var currentDate = new Date();
            var now = currentDate.getTime();
            currentDate.setTime(localStorage.getItem("ioamplusttl"));
            if (now <= currentDate.getTime()) {
              return true;
            }
          }
          var checkForSocio = 'https:' + '//' + ioplusurl + '/soziodata2.php?sc=' + socioToken + '&st=' + result.st + '&id=' + result.id;
          var XHR = createCORSRequest('GET', checkForSocio);
          if (XHR) {
            XHR.onload = function() {
              var response = XHR.responseText;
              var blockedUntilDate = new Date();
              try {
                if ((response.split(":")[1].split(",")[0]) == "0") {
                  blockedUntilDate.setTime(blockedUntilDate.getTime() + lsottlmin);
                  localStorage.setItem("ioamplusttl", blockedUntilDate.getTime().toString());
                  if (localStorage.getItem("ioamplusdata") == null) {
                    localStorage.setItem("ioamplusdata", response);
                  }
                } else {
                  blockedUntilDate.setTime(blockedUntilDate.getTime() + lsottl);
                  localStorage.setItem("ioamplusdata", response);
                  localStorage.setItem("ioamplusttl", blockedUntilDate.getTime().toString());
                }
              } catch(e) {
                // pass
              }
            };
            XHR.send();
            return true;
          }
        }
        return false;
      }
      return {
        count: count,
        c: count,
        i: init,
        init: init,
        e: event,
        event: event,
        h: hybrid,
        hybrid: hybrid,
        setMultiIdentifier: setMultiIdentifier,
        smi: setMultiIdentifier,
        oi: optin,
        optin: optin,
        setoptout: setOptout,
        soo: setOptout,
        deloptout: delOptout,
        doo: delOptout,
        getInvitation: getInvitation,
        gi: getInvitation,
        getPlus: getPlus,
        gp: getPlus,
        consent: setConsent,
        ct: setConsent
      };
    })();
  }
})(window)