Slashdot Mirror


How Much Are Ad Servers Slowing the Web?

vipermac writes "Most of the times I have a problem with a Web page loading slow or freezing temporarily, I look down at the status bar and see that it's waiting on an ad server, Google Analytics, or the like. It seems to me that on popular Web sites the bottleneck is overwhelmingly on the ad servers now and not on the servers of the site itself. In my opinion we need a better model for serving ads — or else these services need to add more servers/bandwidth. Are there any studies on the delay that 3rd-party ad servers are introducing, or any new models that are being introduced to serve ads?"

14 of 363 comments (clear)

  1. use firefox and adblocker! by fred+fleenblat · · Score: 5, Funny

    problem solved.

    1. Re:use firefox and adblocker! by skoaldipper · · Score: 5, Funny

      Pipelining? So Ted Stevens was right!

      By the way, I set pipelining.tube.maxrequests to 128. The googles, they do nothing...

      --
      I hope, when they die, cartoon characters have to answer for their sins.
    2. Re:use firefox and adblocker! by Anonymous Coward · · Score: 5, Funny

      Kleptomaniac? Is the the KDE p2p app?

    3. Re:use firefox and adblocker! by Kadin2048 · · Score: 5, Informative

      You mean some browsers serialize that? My browser appears to fetch multiple hosts concurrently.... Unfortunately, it still won't render the page with certain missing content (e.g. slow-loading javascript crap from ad servers). Well, the RFCs only allow 2 connections per client to one webserver; any more is considered abusive. And to support some older webservers, most browsers only get one page element per connection. So they open a connection, send one GET request, let the server respond, close the connection ... rinse, repeat.

      This was OK on narrowband/dialup connections (in fact, most browsers used to render the page between elements by default, so that it would show you the whole page, then re-render as various images or other elements were downloaded and ready to display -- although as connections got faster relative to rendering time, most browsers switched to only rendering the page once when it was complete), but it sucks on broadband. As the amount of time each data transfer takes drops relative to the time required to establish the connection, the establishment and resetting of the connections for each page element becomes more "expensive."

      So in HTTP/1.1 they introduced a way of making multiple requests in one connection. (It may have predated HTTP/1.1 but I think that was when it was first formalized). Basically the web browser opens a connection to the server and make multiple requests at once. Then the server will respond with all the requested elements. Then the connection will close. This is considered kosher and non-abusive because it doesn't require spawning a whole lot of connections at the server; everything is done in one.

      However this isn't enabled in default in Firefox; you have to go into the about:config page and turn it on, and set the number of requests per connection to something reasonable (I think 8 is the max).

      Also, it requires a certain amount of intelligence on the part of the browser to do this correctly. There are certain kinds of requests that shouldn't be pipelined (PUT requests, for instance), and some older servers may not like it. However, I think we're moving pretty quickly towards a time where it can be made the default.
      --
      "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
  2. 0 slowdown for me by jandrese · · Score: 5, Informative

    For the reasons mentioned in the op I have several notorious slow adservers in my /etc/hosts. I don't know if they're still a problem, but doubleclick used to be horrible about taking 10 or 15 seconds to get their ad bits back to you. I'm not even particularly zealous about killing ads, but if you're stalling out my webpage then it's in /etc/hosts for you.

    --

    I read the internet for the articles.
    1. Re:0 slowdown for me by LiquidCoooled · · Score: 5, Informative

      Additional to my note, looking through the specific host file you reference I see it blocks a load of porn sites.

      These are wanted and are not crappy adverts

      ahem..

      --
      liqbase :: faster than paper
  3. High-CPU Flash Ads by Kenshin · · Score: 5, Insightful

    What pisses me off are badly designed Flash ads. They use plenty of CPU power just to animate something completely useless. Last year Dell was running this ad on my local newspaper's site that took 80% of my CPU just to animate FALLING SNOWFLAKES. I complained to the website, and they took it down.

    Some Flash ads barely take any CPU at all, and those are honestly fine by me, but some just hog my resources. The problem is that the people who DESIGN these ads typically have cutting-edge machines, so they don't know what it's like to run them on a shitty office machine. So, please, TEST your ads on a shitbox average computer before you force them on us!

    --

    Does it make you happy you're so strange?

  4. Re:Browser's fault? by Anonymous Coward · · Score: 5, Informative

    Is it possible for browsers to render everything *else* on a page while awaiting the ads to be served?

    It depends how the ad is served. If it's served as an external piece of JavaScript (using a script element), then most browsers will reach the script tag and won't render anything else until the script has been downloaded. This can cause a delay if the ad server is slow or down.

    If the ad is served using an img, iframe or object element, you generally don't have this problem, as the browser can leave a space for the advert and carry on rendering the rest of the page.

    I work for an ad serving company and most of the ads we serve are in iframe elements. The growing popularity of script elements (they seem to be used for most third-party ads now) confounds me. Generally, I'm continually surprised at how much control over the user experience most websites are willing to give to ad serving companies.

  5. what ads? by ianare · · Score: 5, Funny

    What ads are you guys talking about, I see barely any at all. *turns off ad block plus, refreshes* Holy crap! How do you even go online like this? You might as well just watch TV.

  6. Re:Browser's fault? by pedramnavid · · Score: 5, Funny

    I work for an ad serving company and
    release the hounds.
  7. Re:Browser's fault? by dpu · · Score: 5, Interesting

    Another option is to use the "DEFER" option in the script tag. Any script within the tags will wait until the page loads before executing. I wish ad companies would start using that *sigh*

    --
    Dammit, I meant to post that anonymously!
  8. Blocked because I'm paying for the pipe by schwit1 · · Score: 5, Insightful

    My internet connection ain't free. If the ad folks want to use MY bandwidth they should pay me for the privilege.

    1. Re:Blocked because I'm paying for the pipe by Anonymous Coward · · Score: 5, Insightful

      If the ad folks want to use MY bandwidth they should pay me for the privilege.

      How about they give you free content instead of paying in cash?

  9. Re:Browser's fault? by FireFury03 · · Score: 5, Interesting

    Is it possible for browsers to render everything *else* on a page while awaiting the ads to be served?

    Most ad systems seem to work by placing a <script> tag where you want the ad to appear which loads a script from the ad server that does a document.write() to insert the actual code. This is very bad practice (and explicitly disallowed for XHTML) but even Google do it (which sucks since I have to jump through all sorts of hoops to get AdSense to work on my XHTML site).

    document.write() works by actually writing out HTML and feeding it into the parser and thus parsing the page must be suspended at that point until it's finished executing, so you can't render the page until the advert has loaded.

    The _correct_ way to do this is for the ad-serving Javascript to actually modify the DOM tree. But that requires the ad server developers to not be lazy and have clue, which seems to be asking too much. (or alternatively, don't use Javascript at all).