About Ads

Note: Scroll to the bottom for a tl;dr or read the whole thing. It should be a nice little read.


So for the past few weeks/months, both the entire Gravity ads team and I have been working especially hard to smooth out any kinks in the ads shown on Gravity’s pages. In this post, I’ll be explaining the steps in which an ad gets “served” to you.

Since I love candy, let’s make an analogy between ads and candy. There are high quality candy like milk chocolate that you can eat a bunch of without feeling sick. Then, there are the extra hot gumballs that make you want to puke after eating just one. Ads are like that too. There are ads that run so smoothly it’s as if all the stars have aligned. Then, there are ads that run so poorly that you can’t even access Gravity.

In the following post, these will be the comparisons:

  • Milk Chocolate = Regular Ads (static, no animations—what you should be seeing)
  • Peppermint Chocolate = Flash Ads (Animated ads that only work well on certain browsers)
  • Gumballs = Video Ads
  • Rubbish = Redirects

So, let’s start with how an ad gets served.

So at the bottom level, there are a bunch of factories making candy/ads. For example, an M&M only factory or a Swedish fish factory. Likewise, a lot of big companies makes ads that are specific to their brand. For example, Toyota would make Toyota ads and not Honda ads.

Now to go from raw candy that was just made to your hands and mine, the candy goes through a platform where they get packaged and shipped. For ads, this “place” is called an ad exchange. However, this step is a little more complex than just packaging and shipping ads. Instead of ads being sent out to your hands of you guys, it happens differently. You place “orders” for ads, and the individual factories that cater to the exchange decide who they want to give their ads to.

Let’s say that you place an order for milk chocolate which is the best candy that the exchange has. These ads don’t have anything fancy, just some colorful text. The ad exchange sees that you have placed an order and now, the factories all scramble to offer you their best milk chocolate. Some sell you their chocolate for lower prices than their competitors and now, the bidding begins. Soon enough, someone emerges victorious and their milk chocolate is now in your hands. For ads, all of this happens in a couple of milliseconds. However, what I just described is the ideal scenario.

Let’s say that no one wants to give you milk chocolate, who knows, they might be out, they might be trying to sell you gumballs, etc. Anyways, the point is, you don’t find your milk chocolate. So, what happens is that you go to the next exchange hoping that someone will give you milk chocolate and so on until you run through the list of exchanges that you were going to check out. At this point, it's already been quite a while and the delay between you jumping from exchange to exchange is hugely reflected in your load time which will be much longer than normal. The good thing from this is that you won’t be seeing an ad at the end of this since you weren’t able to secure a buy.

Next, I’ll be talking about some bad situations. Let's say the person that gives you the milk chocolate is somewhat shady and puts in some gumballs (video ads). Well, now your computer is loading something that is taking up far more data and much more annoying than what you were expecting. This is something that I’ve been trying to crack down on, and this is a major source of delays that you might have been seeing. Unfortunately, unless the “smuggling” gets caught (with details that that ad provider is the one sending the video ads), it often goes under the hood.

An extended version of what I just mentioned is if the person supplying you milk chocolate actually decides to ditch candy altogether and gives you some random rubbish they found. Yup, I’m talking about redirects. Like what I said above, redirects are just pretty much gumballs on steroids, more frustrating and intrusive. Honestly, without a stable method of reproducing the error, we almost have 0 power over the redirects. Thankfully, we were able to recently reproduce the error and now we’re on track to take out the redirects.

Now, let’s say the provider was quite professional. However, they still snuck in a couple of extra peppermint chocolates (animation/flash ads). By themselves, they are perfectly fine and compared to video ads, flash ads take up a lot less usage. However, if we imagine that you buy chocolate to roast in a pot over a slow fire (like you’re making a good fondue) and now we added in peppermint chocolate. What you have now is an ugly mess that could replace waterboarding :P.

So in this analogy, the method in which you have used to prepare the chocolate to eat is basically your browser/local connection etc. So, for me, on chrome, the load time is nearly 10 seconds with a couple of errors that cause reloads because of these flash ads. However, on windows edge, the site loads like a smooth camaro at about 2 seconds. Right now, we’re trying to fix this problem between browsers. But since peppermint chocolate is also like milk chocolate in that they are both chocolates, it's a lot harder to filter them out.

Well, you guys can help too! The best way would be for you guys to send us an email @ [email protected] whenever you guys see an error and wouldn’t trying a couple of follow up steps. However, another thing that you guys can help is introduce gravitytales to your friends! What happens with larger websites is that they can go straight to the factory. For example, they can go have direct deals with the larger companies such as Toyota. It's a lot harder for smaller sites like Gravity to have those kinds of chances because of our size which means that we have gamble with “smugglers”.

So, we’re now reaching the end of my long post about ads. Let’s tackle one last thing: your cache. Imagine a person manning the ad exchange. Every time you walk in, they serve you exactly what you had last time. So, if you ordered a pound of Swedish Fish, an ounce of milk chocolate, and an extra large bucket of ice cream, they can whip it up much quicker than if you gave your order again. However, let’s say that the Swedish Fish were actually gumballs and because the person doesn’t check, he simply serves you the gumballs again time after time. Not good.

Let’s say I find out that you guys have been getting gumballs and fix the formula that you guys use to order so you guys get swedish Fish instead of gumballs. Now, the person still keeps serving you what he did before and will do so until he checks in. That can take anywhere from a couple of minutes to days. Thus, in order to shorten this time, we delete the cache. It’s like switching a new person to do your orders. They pay extra attention the first few times but after they get familiar, they start serving you what you have always been getting without checking the formulas. However, there’s a server side cache and a user side cache. You guys have to delete the cache too to have the right formula of ads served to you guys.

And that’s it. There are a lot of smaller things about ads, but if I put them all in this post, I’m pretty sure the small number of you guys that read through the entire thing would be smacking your heads and give up. Thanks for bearing through this entire thing and hopefully this has shed some light on what’s going on.  


  • Ads are served by 3rd parties that buy “website space” from Gravity
  • A few 3rd parties are smugglers that put redirects and video ads in that “website space”
  • It is difficult to track every ad if only 1% are smuggled
  • If you’re having trouble accessing Gravity, clear your cache or try using another browser
  • Introduce Gravity to your friends for better ads/smaller chance of having bad ads

Milk Chocolate is the best chocolate.

PS: If you guys would like to know more, the smaller things, feel free to email me about your interest and I’d be happy to expand on a couple of these aspects/describe something new.