Company Blog
- experiences from random adtech guys

Thursday, March 17, 2016


Here at realzeit, we believe that most things in the world of performance display marketing can be solved via RTB. We strive to build a fully automatised service buying traffic most efficiently according to a specific campaign goal. Not clicks, but actually hard performance KPIs like installs or sales should be used to measure the effectiveness of a campaign, if possible. Of course, we think that machine learning is expected to make way smarter decisions than any human could.

However, many things run in the background. Buying interesting traffic is not as straightforward as one may think. Being on the demand side actually requires close relationships with the publishers and therefore is not only tech-focused. Furthermore, pitching our product to potential clients, we heard of all these competitors that offered magically low CPIs without any technology at all. Is it even possible to run user acquisition via RTB?


We actually did find that large problems of finding new users or clients can be solved by algorithms. I will show you on the example of a simple app install campaign how one can reach the goal of finding new and active users of an app. This is not magic, but much rather good craftsmanship. It is necessary to tackle the not only mobile specific problems:
  • avoid fraud and (more importantly) accidental clicks
  • find interesting inventory for your app's target group
  • optimise on real users
Our example at hand is a simple app install campaign. Our data comes from a live campaign running in Europe, but all numbers are presented in completely arbitrary units.  The goal in this case is to reach the minimal CPI for the sake of simplicity.

First of all, lets distinguish between server-side clicks and real clicks. Server-side clicks are all events that trigger the click tracking url. Such events may be a either real or a accidental click (not even talking about fraud for now). Especially accidental clicks are a problem in the mobile world that does not appear so much in desktop campaigns. This is due to relatively large fingers in combination with small screens. Real clicks in our terminology are clicks by users that are actually intended. These are the interested users we have to focus on.

The first plot shows the CPI of our example campaign over time. Here we used a standard optimization with server-side clicks as input for the learning. 

We see that the performance decreases over time. Why would that be? Are we not continuously optimizing? Obviously, several things are done wrong in this campaign.

First of all, every optimization is prone to get stuck in a local minimum where it is difficult to get out. The main problem, however, is that we did use server-side clicks as an input. Placements that generate accidental clicks will be valued more importantly than others which could produce fewer but more interesting clicks. Solving these two problems is straightforward. We need to identify real clicks and we need to better explore our inventory to find new apps and mobile sites all the time to feed our algorithm constantly with new information.

The exploration problem is most easily solved. A fixed percentage of all bids should be randomly chosen not to bid according to the active optimization. Much rather they should be used to test out new placements and users all the time. 
To solve the problem of finding actual interested users is more complicated. As a solution, we have developed specific rich media banners that we use as sensors to find apps and sites populated by  users actually interested in the campaign. We use them on a random subset of bids and obtain information about the real click rates of each ad-slot. Both, the information that we collect about new users and placements and the real click information can be fed seamlessly into the optimization algorithm.

The effects of exploration and optimization on real clicks can be seen directly in our data. The second figure shows the CPI in arbitrary units over time, same as in the first figure. The purple data corresponds to the exploration part of our campaign (about 10% of all impressions bought). It uses our sensor creatives to identify interesting placements and users. The green dots show the overall campaign performance (including the exploration). Datapoints have been fitted with a quadratic polynomial for the sake of simplicity to visualize the changes over time.

First of all, lets discuss the behavior of the exploration part of the campaign. It starts its search on inexpensive placements and explores from there. We see that the CPI increases slowly over time. This is expected behavior since we want to explore more and more parts of the inventory and we need to invest money. The main result, however, is that by optimizing, using the data from the exploration campaign and focusing on real and interested users, we can improve the overall CPI considerably. We also see that we get considerably better by automatically selecting the best placements and users from all price classes


We used the three main ingredients (avoid accidental clicks, exploration, strong algorithmic optimization) to run a successful user acquisition campaign in the RTB universe and have shown our results on an example. Doing user acquisition in RTB is actually not easy. Nonetheless, it is straightforward craftsmanship combining a suitable exploration, the identification of real clicks and a strong algorithmic optimization.

If you, dear reader, are interested in finding out more about our approaches, please do not hesitate to contact us at We would love to show you more insights. 

Friday, August 14, 2015


Most of the things we do here at realzeit are tech-focused. We write and test code and great things are done which nobody outside of our office (except our customers who look at our awesome performance) appreciates. However, there is a small outward-facing topic that I would like to elaborate in this blog post - the mystery of banner design. For us this is an interesting topic since an important product of our company is retargeting and re-engaging users inside apps. Of course, we do so using personalized banners and, yes, we design them in-house.

Just to put this up-front: this post will not answer your most urgent questions regarding banner design. In the following we will merely show several approaches how to approach the problem of banner design. Our focus is performance, so we will judge based on that. All designs will be tested eventually and, finally, in an undisclosed future, another blog post will reveal our test results . Then you might find all the answer you were longing for. Until then ...


How should a banner look like (and how does it have to look like)? Lets start with the basics to get it over with. First of all, all images used in the creative should be of the following 4 types:

  • JPEG
  • JPG
  • PNG
  • GIF

and not be larger than 150kb. For the gifs, we have special restrictions. Animation length must be less than 30s. Even when they are looped, they should stop after that time. In general, it is advised to have gif ads to be slower than 5FPS.

Also, there are other components that are necessary, because of different reasons. First of all, it is important to add the company logo. It must be included for two distinct but equally important reasons. First of all, although strictly speaking retargeting is a performance channel, you still take the free branding and build brand awareness. The other reason is much more pragmatic - ad exchanges take this as a quality measure. If there is no brand logo on the banner, it might no be able to bid on all inventory (and this especially goes for the so-called premium).

The second ingredient is a call-to-action. It may be a button that says something like "Shop Now", "Learn More" or whatever you can think of. This is part of 99% of all banners that at least I have seen (and trust me, I have seen a lot), so I will not argue with the need for the call-to-action. Intuitively I do understand that you tend to click on buttons in the internet, so I'll take it as a given.

The third ingredient to a personalized banner are the products that the user has viewed last. This is the core component of a dynamic ad and many things have been tried, some of them, admittedly, not really easy on the eye.


I read up on banner design, e.g. in this blog post by 99designs. They gave me some tips to make a more clickable banner. Some are very obvious, some I do not see immediately. Do they apply for mobile, as well?

In any case, down here in our Kreuzberg office we appreciate simplicity. Let me start the discussion with a banner I really like. This is the gif version of a retargeting banner we have been using for Vinterior

320x100 moebel whiteThey have a very reduced design where they show their logo and one product. They have a nice call-to-action ("Jetzt Einkaufen") and a really nice look and feel. Love it. Thats how I would do it. Thats how nobody else does it.

Vinterior actually violates a couple of 99designs rules of thumb. They use a white background and have no clearly defined frame. Also, they write in uppercase.


To check how current state of the art banners look like, I have been visiting several shops and allowed them to retarget me. Look below at two specimen of retargeting banners I have seen. They are quite common, would you not agree?

First of all I see a standard Leaderboard (728x90) banner of beloveth Otto. We see the logo and eight different product photos on there. Apparently there are some offers that are interesting for me and Otto was so nice as to indicate them with a red percentage sign.
Nothing against our grandmaster of eCommerce, but these banners are a bit ugly. Do people really click more often on such ads?

Another style I have found (amongst many) was from Walbusch. The products came with name, large photos and the price. A whole lot of information, but the whole package seems alright. Very conservative the whole appearance, but I guess that is what they are going for.

Here comes another example by Here we have a standard 320x50 banner in the mobile web. Plain and simple: 4 products, a gray frame, logo and again the blinking percentage.

The small screen is a real challenge and at the same time an opportunity. Especially in-app the sizes are small, but as the screen is small, as well, ads are very visible. Most frequently the format is 320x50 and in the case of it seems that 4 products are too many. It is very difficult to recognize and differentiate them.

An actually really positive example of a retargeting banner I have found at Fashion For Home. We see our recently looked-at products inside a frame and also, all are presnted with a nice rounded frame themselves. Without claim and call-to-action, we notice only the brand logo. For me, this also is a very elegant look that is not too annoying (nice-looking products do help, as well). What you cannot see is that the banner is interactive. Once you scroll over one of the products with your mouse, the respective frame glows red. Unfortunately, such effects are not see easily adapted to the mobile screen.

In any case, we have a nice looking banner that somehow, by its simple design, sticks out from the usual display ads that you see all over town.


I like good design, but I am not a designer by heart. I would easily ditch a beautiful banner for a ugly one that performs awesomely. However, I do believe that users appreciate a nicer and more natural feel for their advertising.

Here is something we would design. A banner for the infamous realzeit interior brand, a company providing a unique real-time furniture experience.

We did not use the overall frame, but we added logo, call-to-action and a claim. Since we are doing retargeting, we are also showing a couple of products. We think that such a minimalistic design fits nicely into the actual text and therefore does not disturb the user experience.

Fortunately, you will not have to trust our ability to design things nicely. We much rather will use exhaustive A/B testing on different banner sets and styles. We will add prices, blinking squares, the obligatory red percentage signs, different kind of movements and so on and we will find the best-performing one for each campaign.

Right here in our company blog you will eventually find our results. Does the same stuff that works for desktop work on mobile? Are in-app and mobile web similar? Stay tuned for some exciting numbers!

Tuesday, July 21, 2015


Advertising on mobile devices in the US will reach $29 Billion this year and is forecasted to hit $65 Billion in 2019. According to eMarketer, mobile ad spend in Germany will reach $2 Billion this year and over $5 Billion in 2018. It can be seen quite plainly that there is a lot of money going into the mobile marketing business. From the perspective of interface design and usability, the mobile marketing universe however is still in its infant state and there is much room for improvement and progress.


The industry has not yet found best practices how and where to place ads on mobile devices attracting the users attention instead of annoying him. This current experimental phase of visual layout of ad placements might trigger unintentional clicks. Although Ad-Exchanges impose placement restrictions to prevent such impression or click inflation, in reality it seems to be hard to control such problems. Microsoft Advertising says that developers must not “edit, resize, modify, filter, obscure, hide, make transparent, or reorder any advertising” and Google states “Ads should not be placed very close to or underneath buttons or any other object which users may accidentally click while interacting with your application“. There are several ways to misread or violate these rules, by e.g. placing too many ads or ads hidden behind other controls. Furthermore, ads may be placed outside the screen, they may overlap with control buttons or many other mistakes can be made. There is active research going on in order to identify apps that are getting into the Google Play Store, iTunes, or third party app stores [1, 2]. Whether unintentional clicks simply come from bad UX design or whether they are intentional, these clicks are not wanted and, thus, of no real value to the marketer.

Traffic generating accidental clicks is a serious problem in the space of programmatic buying. By wasting precious marketing budget without added value, these clicks create a bad reputation and perception of mobile advertising in general. At realzeit we can confirm these problems for unfiltered and unscreened traffic. We have built corresponding filters and screening algorithms deep into the core of our bidding system because we are aware of such problems. As we are measured in terms of performance, we have to make sure that spent budgets actually deliver valuable results. In this post we describe two very basic patterns that will help to get rid of a large percentage of unintentional clicks in a simple way.


Let’s have a look into our data to describe two very basic patterns that help to classify accidental clicks. How do we ensure the quality of our clicks while delivering ads 24/7 in many different countries in tens of thousands of different apps? To see if we find any suspicious pattern we do not have to go very far. Lets have a look at the actual CTR we measure for different placements over all exchanges.

The plot shows a histogram of CTR per placement with an arbitrary unit on the y-axis.  The main part of placements has a reasonable CTR of < 1% and there is a reasonable exponential decrease up to 10% CTR. As if 10% would not be extremely high already, we see some very clear and impressive patterns of high CTRs that appear way more frequently than an exponential decrease would suggest. There are clear peaks at 50%, 33% and 25% CTR. These are strong indicators that something is wrong, since the CTR of these placements is unreasonable high and they deviate clearly from the power law fit. We take that as a hint into the direction that the ad is probably placed close to some important button of the app, or it is difficult to close the banner without clicking on it. For one of those peaks we actually checked and saw that the high CTR corresponds very well with a recent change in UX design that placed the add next to the Home button. Fortunately, after some annoyed comments in the play store, the makers of the app did not that pattern later as well, and switched back to the old UX.

As a second detail we have looked into the time difference between the ad impression and the actual click. Assuming misleading ad placements, people will click accidentally on ads without the intention of any further action. The median human reaction time is approximately 250ms if the click is intentional. We still have to take into account that it will take some time to process the banner and the person to decide if she or he wants to click. Everything below 300-400ms seems just not like an active decision.

The plot shows the distribution of impression-to-click time difference for two groups of placements where the difference is maximal 1s. The grey line represents timestamps from placements we have classified as suspicious and the green line shows timestamps from premium apps from gaming, social network, and information verticals. There is a very clear peak at timestamps below 100ms indicating that the click happens way to fast to be related to a conscious decision. We were quite surprised of this very clear pattern after seeing the data of placements we previously declared as fraudulent.

Looking at the CDF of the time-difference distribution, we can show the difference even stronger. The premium placements are more or less equally distributed between the time window of 0-1000ms, where the fraudulent placements are grouping clearly towards a very short time difference. Even the premium placements have significant impression-to-click time differences at very small values, indicating that even those users accidentally hit the ads sometimes. We have to have a very close look to understand which clicks are intentionally and where is the fat finger.


We have shown that it is not difficult to find strange patterns in the CTR that are a clear indication of accidental clicks. Furthermore, we looked a bit deeper into our data and find that an impression-to-click time difference that is way below the human reaction time is also a good indication that something is wrong. We also see though that  premium apps deliver clicks that are way below the normal human reaction time. It is not that easy to distinguish between good and bad guys and one needs a detailed analysis. A recent study by Forrester Research shows that the problem of fat fingers is rather widespread in the mobile advertising space, but we accept no excuse. We believe that the whole business needs to become aware of it and everyone should start dealing with it.

We at realzeit are committed to deliver the best results for our customers. Our automated fraud and accidental click detection use various statistical patterns and advanced machine learning to identify fraud in real-time. However, as we have shown you in the above example, we do not even have to do rocket science to filter out the majority of all accidental clicks. Simple algorithms are able to reduce accidental clicks after a very short learning period by about 80%, thus providing marketers with real users and intentional clicks. Please contact us if you have questions, ideas, critics and we are happy to chat with you in person about mobile advertising, fraud prevention, and everything else.

[1] MAdFraud: Investigating Ad Fraud in Android Applications, ACM 978-1-4503-2793-0/14/06 (2014)
[2] DECAF: Detecting and Characterizing Ad Fraud in Mobile Apps, 11th USENIX Symposium on Networked Systems Design and Implementation, ISB N 978 -1- 931971- 0 9 – 6 (2014)

Friday, June 26, 2015


Having been invited to the Criteo Live days we were also very lucky to get a first glimpse at Criteo's highly relevant market insights with respect to mobile commerce in order to have some time to think about its implications before it was released officially.
You can download the full presentation here:


It is definitely worth a read for executives and marketers, especially since the underlying data represents hundreds of millions' worth of transactions worldwide. In a nutshell it says:
  • mCommerce is growing
  • Smartphones are the devices to run the growth
  • There actually is a mobile conversion funnel and Asian markets show us how the future might look like
While the first two findings are hardly suprising, we'd like to elaborate on the mobile conversion funnel, especially the upper part of it.
First off, the US vs. Japan situation:Comparing Desktop and Smartphone funnels in US and Japan.
In the US we see almost similar product views in desktop compared to mobile with lower completion rates down the funnel that finally result in 40-50% lower conversion rates. The reasons for this are the typical ones of worse experience on mobile devices and lack of simplicity in payments which slows down the conversion flow. If we compare the mobile funnels between the US and Japan, we see that in Japan, which in terms of mCommerce is a leading market, the upper funnel is significantly stronger with stronger lower funnel completions leading to significant diffenrences in overall conversion rates.
If we compare this to our (FMCG eCommerce) customers in Germany, France and UK we actually see two things - a high number of product views in mobile and a lower conversion rate. But also we see something else:
  • Mobile views that don't lead to conversions on the same device are being completed on desktop*
  • Customer journeys that begin in the app sphere (on in-app adspaces) end on mWeb destinations and are completed there or via desktop*
*We analyzed the (hashed) advertiser log-in data and matched it with our cross-device and cross channel (app2mWeb) identifiers
So where does it leave us? What we believe to happen is that in the current state of mobile adoption we obviously have problems with good mobile experiences. Nonetheless it is good enough to get users in touch with the brand and its products. And also it is good enough to finally buy that product in a channel that is easier to complete, i.e. desktop for the time being.


While the C-level executive might be somewhat happy to hear it, marketers still have huge problems fitting those findings into their day-to-day activity with regard to customer journey modelling and budget allocation. We have a couple of suggestions we'd like to present here:
  • Don't think mobile first, think user first: realzeit's big asset is its capability to match unique users between channels (app vs. mWeb) and devices (smartphone vs. tablet vs. desktop). Some advertisers start to build generalized journey models which give some empirical evidence about mobile upper funnel activity and its contribution to overall conversions based on log-in data. That again empowers them to allocate upper funnel or prospecting budgets towards mobile.
  • Address the upper funnel correctly: While you are optimizing the mobile experience for your user to get to Japanese figures, why don't you help them with trackable prospecting engagements like newsletter signups? It filters interested users and helps you addressing them across channels and devices and as a plus is a trackable action.
  • It's all about CAC: It may sound simplistic, but if your completion rate is 40-50% lower, why don't you look for an acquisition channel that is 40-50% cheaper? If your targeting partner is able to find your mWeb users in apps, there is a high chance the CPM is significantly lower than in other channels.
We're curious where the journey is going to take us all, but we are a 100% sure that it is integrated across channels and devices. Thanks again to Criteo for some food for thought.