Banner Ad: Please Fix Your Pacing Algorithm
Decorative Header Image

Real-Time Bidding: The Stack Class Video

You may have heard of this being referred to as Stack Class. These white-board sessions originated in the early days of Real-Time Bidding (RTB), before the dark times… before The Empire, er.. Header Bidding. Before Header Bidding.

This video is a little dated, but it covers the technical basics of RTB. I’ve been toting it around for years privately. I figured it’s about time to set it free.

I called it Stack Class in the beginning because I was describing all the components of RTB, you know… the stack upon which everything is built. In this video you’ll find SSPs, DSPs, user synchronization (cookies?!%$#@!), bids, responses, PMPs, ad markup… you know, all the things.

Is it Fraud? Illustrating some marginal to bad practices in ad-tech

A couple weeks ago I was looking over geographic location data to inform the return on investment of an advertising campaign. A significant portion of metropolitan data was showing a large percentage of the users sitting in the exact same location. It was as if they all checked-in on their apps while they were standing at the center of the city. That seemed unlikely. Was there something wrong with the data? Well, yes and no. More importantly: was it fraud?

Was it fraud? Welcome to the gray area of ad-tech. eMarketer shows that display advertising fraud loss is hovering around $6 billion worldwide. This data is likely derived from very black and white definitions of what is and what isn’t fraud. In this post I’ll be lining up not only explicitly fraudulent behavior, but also some marginal tactics of media owners, supply side companies, advertisers and demand side companies to illuminate the fringes of acceptable behavior. Read on for geo stuffing, bid caching and more…

Pacing Algorithm for Advertising Campaigns and Inventory Allocations

I’ve was trying to figure out what to do with my Sunday. My options were: build a little header bidding ad server plugin for WordPress; run, sleep and eat; or write up some blog post on a pacing algorithm, because people still seem to be producing crappy ones. Since you’re reading this, you can probably guess which choice I made. I mean, it’s not the first post I’ve written on the subject.

It showed up again last week. I didn’t expect it, but I guess I never do. A saw-tooth pattern on a chart, indicative of a capping of sorts. A chart that says, “I want a thing to happen, but only so much.” In this case it was a traffic allocation. This was a surprise.

A little history

Most of the time when I run into a bad pacing algorithm it’s in the form of a campaign trying to limit itself. It only needs to acquire a few thousand impressions every five minutes, for example. So the hastily written algorithm might divvy up the impression allocation into five minutes buckets. Effectively that’s 12 buckets every hour. So it takes an hour’s worth of impression needs and divides it by twelve. One twelfth of the impressions are purchased every five minutes. Unfortunately at that point it switches to a simple counter that says, “for the next five minutes buy impressions until the number purchased reaches 1/12th of what I need in this hour.”

You end up with a purchase graph that looks like this.
Sawtooth Pattern exposes a bad pacing algorithm

See that blue spiky thing? That’s the one that’ll get ya. Read on to find out how this impacts the industry and how to fix it

Tokyo Tourist

Having just returned from my fifth trip to Tokyo, I think I’m finally comfortable offering some tips, tricks and a short-list of fun sights to see. This is by no means a comprehensive list. It’s just enough to facilitate your basic mobility needs and your curiosity. I’ll start with the airport.


Tokyo Travel StickerTerminal One at Narita International Airport is part airport, part train station, and part shopping mall. Your other international hubs have cute stores and all, but how many choices of kitch and foodstuffs and ramen shops can you find? Chances are you won’t find half as many as you do at Narita. The trick is that you have to hit both sides of T1 if you want to catch ‘em all. Unfortunately you’ll be locked into one or the other, depending on your airline. Worry not, wayward traveler, you win on either side.


I’m still searching for the best way to get to downtown Tokyo from the airport. Right now I’m getting a full-fare ticket on the Narita Express (NEX) on the JR East railway. Unfortunately you have to pay cash, about 3,000 yen, if you want to use the automated machines. Your western credit cards won’t work in them. If all you’ve got is your Visa, you’ll have to wait in line and get it from an agent. If it’s your first time in JP, you might want to do that anyway. Some of the machine jibber jabber can be a bit confusing for a non-native, even when you set the language to English. Read on to find out the easy math of the Japanese Yen and how you might encounter more than a few smokers indoors


Stepping off the plane, I couldn’t help but notice that Basel airport bears a striking similarity to many rural, American airports. There are few gates, limited services, and only the essential airport staff. This might not be your point of entry, but if it is know that you’re not actually in Switzerland just yet. You’re in France.

Basel airport, if you didn’t guess by the name, services the Swiss city of Basel primarily, but at some point the lords of the air decided that it should be located outside the bounds of Europe’s favorite neutral country.

Catching a cab might be difficult here, and there’s no train to the city to speak of. I found a taxi sign sitting atop a weathered Tesla S-series sedan. Sadly, no driver was in sight. That was okay, I had my Lyft app – but they don’t. It was another dead end. Thankfully Uber had penetrated the market, and while I’d prefer not to use their service due to the reported corporate culture, I was out of alternatives.

Switzerland and the EU

Switzerland flag flanked by bicyclesSwitzerland is the first European country I’ve visited that went mostly untouched by the second world war. I say mostly because there several Allied bombings of Switzerland. One notable incident hit Schaffhausen. Stories are mixed. At the time the Allies cited bad weather that threw the bombers off course and confused the navigators. Others say it became a target when it started producing arms for the Axis. It almost makes me want to put “neutral” in quotes, and there I just did.

In any case, those days are long in the past and we’re all good friends now. Existing treaties do not make the country part of the EU, but they do keep up with most of the laws. Read on to find out the language and understand a how there’s more cheese than you can poke a hole in