Introducing bidding sub-system

Woman hand showing an euro coinAdDuplex is all about helping indie developers promote their great apps and games for free. In order to be able to do that we are using part of that exchange inventory for paid campaigns and support the free service this way. This means that paid campaigns was always more of a support function of the main service and we tried to provide it in a minimum viable way that is of value to advertisers, but doesn’t distract us from the main focus – the cross promotion network.

Having said that, over the years we’ve introduced additional features (various targeting options) and statistics provided to advertisers. But the core principal was stuck in 2011 – campaigns were sold in preset fixed price packages. This meant that advertisers willing to spend more and get a bigger chunk of the traffic in popular demographics weren’t able to do so, and advertisers with focus on less lucrative areas were essentially overpaying for space that not many other advertisers wanted.

So the time has come to change that…

Bidding based campaigns on AdDuplex

From now on you will be able to specify how much you are willing to pay for a user with particular characteristics and we will take care that you pay up to that rate (usually less) for this campaign.

The system still works on the CPM basis (cost per thousand impressions) and you will be able to get campaigns running for as low as $0.10 CPM.

Setting up bidding campaigns

In order to enable that, we’ve introduced a new block called “Budget” at the bottom of each campaign’s details page.


As you can see the daily budget moved down there and a bid field was added alongside it. We also provide a bid suggestion based on your currently selected targeting. The suggestion algorithm is a little bit rudimentary at this point and will improve over time, but it should get you a quick way to determine what it would take to get a high probability of getting your ads displayed to your target audience.

Keep in mind that your bid is the maximum you are willing to pay. In reality we will charge only as much as needed to outbid your “competitors” for the same space. So, in reality you will most likely pay less than you bid.

Stats for bidding campaigns

To track your spending we’ve added a new chart to the budget stats to demonstrate your average bid for that day.

Here’s a screenshot from one of our real beta testers who had a campaign under both old (static) and new (bidding based) systems.


As you can see, after the switch he was able to utilize almost all of his allocated daily budget while paying 3-4x less for each impression.

What’s going to happen with my account?

Hopefully I’ve convinced you that this model is better for everyone, but you can’t see any of this when you visit our Client Area.

In case you never had any campaigns with AdDuplex you will be automatically converted to the new system and you can start taking advantage of the new system right away.

On the other hand, if you have some funds in your account we didn’t want to force you into the new world right away. If you prefer to continue doing things the “old way” you will be able to use up all of your current credits until the end of 2015. All accounts will be automatically converted on January 1st, 2016. Additionally you won’t be able to add extra funds to the non-bidding enabled account.

But to be honest we tried really hard to make converting a no-brainer for everyone. So I’m struggling to find a reasonable scenario when continuing with the old system would make more sense.

Additionally, to sweeten the deal for early adopters we will double (or even more) the credits in your account if you convert before July 7th, 2015. And, naturally, early adopters will have an opportunity to take advantage of lower CPMs due to lower competition in the early days and weeks of the rollout.

How do I start?

To convert your “old school” account to the bidding system go to:

Buy ads –> Billing –> Add credits

and you will be presented with the conversion page explaining the details of the process. The “meat” of that page explains what’s going to happen to funds in your account.


The logic is this – we take the “base CPM” for your account, which is the list price of impressions that you have in your account. This means that if you’ve purchased impressions with some sort of discount in the past, you will still get the funds converted as if you bought them at full price (effectively preserving your discount). Additionally we will apply an early adopter bonus if you don’t wait too long.

By the way, you can definitely visit that page even if you don’t plan to convert right away. Nothing will happen until you press the “Convert now” button.

After you click on the “Convert now” button, your currently running campaigns will be stopped, outstanding fees for them calculated and deducted from your balance. Bids for your campaigns will be preset to the “base CPM” value you can see above. (You will be able to adjust the bid for each campaign based on your preferences.) Then we will convert your remaining balance based on the rate above and reactivate your campaigns the next day (UTC time).


Start today and win!

As noted above, by switching early you will will get 2x more credits than those who wait, and you will compete for the same users with smaller number of other advertisers effectively guaranteeing a lower winning bid.

So what are you waiting for? Switch now!

Creating an image ad that meets the file size requirements

As a developer you may not have spent a lot of time thinking about the size (not the dimensions) of the images you use in your app. However, when it comes to sending images over a network the number of bytes that are transmitted affects the time it takes to transfer the data that makes up the image and the cost of sending that data over a network. For this reason we limit the size of images that can be used for ads. For banner ads the limit is 25KB and for interstitial ads the limit is 256KB.
partial screenshot of ad configuration screen that shows the file size limit
We get a number of questions about how to create images within these limits so I’m going to show you how. I’ll provided an example of creating a banner ad that fits within the size limit but the same principles apply to interstitial ads too.
Why is this an issue?
In an image that 768 pixels wide and 128 pixels tall that’s 98,304 pixels in total. If using a bitmap format, such as PNG, that requires a separate byte for the Red, Green and Blue value of each pixel we need 294,912 bytes. When including the additional required information and file headers we can end up with an image over 300KB in size. (It’d be even more if we needed to store alpha values too but fortunately image ads don’t need any transparency.)

To prove this point, here’s an image where every pixel is a different color. (If interested, it was created with this code.) The size of this PNG image is 302KB.
PNG image where every pixel has a different RGB value
Different image formats store the image information differently and can result in different file sizes. Here’s the same image saved as a JPEG.
JPEG image where every pixel has a different RGB value
This image is just 30.9KB (almost a tenth of the size). There is more that can be done to affect the size of an image though and that’s what I’ll demonstrate now.
Here’s a banner ad, for a fictitious game, that we’ll use for the demonstration.
Monkey in tree with app title text "Monkey puzzle"
As it stands the image is 231KB and so much larger than we can use.

Before we consider changing the format let’s look at what can be done to decrease the size of the PNG.

I’m going to do this with the excellent free tool Paint.NET. If you’re not familiar with this application it is free image and photo editing software for PCs that run Windows. You can download it from

When we save a PNG file from Paint.NET there are some options available.
Paint.NET PNG save dialog with "Auto-detect" level selected for Bit depth
Here you can see the default settings that were used to create the original image above.
The fact that this dialog shows a preview of the image and the size of the file that will be produced is very useful.
As we change the Bit Depth you’ll notice the file size changes.
Paint.NET PNG save dialog with "32bit" level selected for Bit depth
Dropping to 32 bits increases the file’s size to 257.3KB.
Paint.NET PNG save dialog with "24bit" level selected for Bit depth
At a bit depth of 24 we see the file size of 231 KB and so can infer that this is the automatic value that was selected.
Paint.NET PNG save dialog with "8bit" level selected for Bit depth
At 8 bit we see the file size drop to 54.6KB but this is at the cost of image quality. You’ll notice that the blurred leaves around the text aren’t as smooth.
Paint.NET PNG save dialog with "8bit" level selected for Bit depth plus dithering and transparency set to zero
If we then take the settings to their absolute lowest and set the dithering and transparency threshold all the way down to zero the size of the file only gets down to 41.2KB and what were intended to be blurred leaves in the background no longer look like the original due to the inability to have the number of different colors in the file to create this effect.

As we can’t create a version of the desired image as a PNG that fits within the imposed size limit we need to consider other options.

Only JPEG and PNG files are supported for ads so that limit makes our decision of what other format to use easy for us.

If we weren’t limited in this way the selection of a format only becomes slightly more complicated. As a very simple way of determining which to use, PNGs are better for line based drawings and JPEGs are better when using photos or gradients. As you might expect a question on the differences between image formats has been asked on StackOverflow and there’s a very good summary of the differences in one of the answers.

As a JPEG of the highest quality, the file size is 90.1KB
Paint.NET JPEG save dialog with 100% quality level selected
Paint.NET provides a single setting when saving a JPEG file but it’s a very powerful setting. By adjusting the quality of the image that is output we can create a file that is usable within the imposed restriction.
In this case we need to lower the quality to just 74% to get what we need.
Paint.NET JPEG save dialog with 74% quality level selected
This image also preserves adequately smooth blurring of the leaf background which was the effect I was trying to achieve.
Paint.NET isn’t the only option for controlling the size of saved images. Gimp is another free to that also allows control over the output file. In fact it provides even more options than Paint.NET to control the output. The difference between the two applications is that Paint.NET shows the preview in the same window as the setting, while GIMP updates the image in the original window.
GIMP JPEG export dialog
Whichever program you use to create your banner and interstitial images there are two final tips I’d like to share.
  1. Make the image size as small as possible without impacting quality. This will allow the image/ad to load faster and therefore be potentially seen by more people.
  2. Test your image on an actual device to make sure it still looks as good on a small screen as it does on the monitor you upload it on.

I hope this helps you when preparing the images you use for your ads but if you still have any questions please get in touch via

Ads in Mobile Apps and Games 101. Free eBook.

797x435Everybody knows what a mobile ad is and how does it look like. But for an indie app and game developer that might be not enough while choosing the right monetization method and trying to reach their users’ hearts. Therefore, recently we published a book “Ads in Mobile Apps and Games 101” based on experience we’ve gained working with those thousands of mobile apps and games.

In book you’ll find the main terms used in mobile advertising industry, get to know how to set goals and measure the effectiveness of your ad campaigns. And we’ll try to answer the question why you should definitely consider advertising as a monetization model for your mobile apps and games.

You will find a free PDF version here.

Developer Economics Survey. 2015 Developer Skills Census


Our friends from VisionMobile are running a Developers Economic survey that you should definitely submit.

We’ve used some data from their earlier surveys quite a few times and we find it really interesting and useful. It helps you get a better view of developer ecosystem as it’s the largest, most global app developer research & engagement program out there.

This survey will be closed on 11th of June so we encourage you to submit right now and be sure not to miss the deadline.

As always, key findings from this research will be available as a free research report by the end of July. Moreover respondents to the survey can also claim cool prizes like Lumia 930 or an Oculus Rift DK2!

In its 9th edition, the research program tracks developer sentiment across platforms, revenues, apps, tools, APIs, segments and regions. More importantly, Developer Economics delivers accurate and original information to developers and enterprises alike, by distilling data from VisionMobile’s semi-annual survey. Metrics include monetization for mobile and cloud, IoT popularity, desktop app positioning – and many more. With its most ambitious Developer Economics survey to date, VisionMobile invites developers to participate in a 10-minute survey and gain access to the same pool of knowledge that helps enterprises such as Intel, Google, and Amazon understand how the developer ecosystem evolves.

The more responses are in, the more accurate results we’ll all get. Submit Developer Economics research now and get your voice heard.

You’ll find the survey here.

AdDuplex Windows Phone Device Statistics Report for May, 2015

This month see the trends for the last few months continuing to play out. The Lumia 520 continues to remain the post popular device but it still losing market share while the 630 and 535 are gaining.

We see a surprising increase in the number of devices already running Windows 10.

Plus we look at Mexico, UK, Finland, Spain, Russia, India and Australia.

Marketing and Monetization Interview Series #13. Getting to the top.


Back in January we’ve celebrated AdDuplex’ 4th Birthday and ran this festive contest where Mini Golf Club was selected as one of the winners.

Mini Golf Club is a physics based mini golf simulator for Windows Phone 8 and Windows 8. It is also one of the most successful games created by Zoltán Gubics.

Zoltán started developing and publishing games during his studies. And after graduation he became an entrepreneur and founded Obumo Games. In this interview Zoltán shares personal experience and lessons learned while getting his Windows Phone and Windows games to the top.

Could you tell us more about yourself? What is your background? Is app and game development your full time job?

I live in Budapest, Hungary. I studied software engineering at Budapest University of Technology and Economics and graduated two years ago. During my studies, I focused on Microsoft technologies mainly and that’s how I got involved in Windows 8 application development. I’ve been interested in game development since the start of my studies, so I developed my first game for Windows 8 called Offroad Racing. Luckily, Offroad Racing has become very popular in the Windows Store and that was the point when my hobby became my daily job. I’ve been developing games ever since as an independent developer using Unity game engine.

I usually work alone, however I have had some help from a friend at the beginning.

In your opinion what are the reasons that Mini Golf Club is loved by users?

minigolf3I think players love Mini Golf Club because of its casual yet challenging gameplay and wide variety of levels. Most of the levels can be completed in several ways, which makes players think about new solutions. Currently, there are 170+ levels and the collection is growing month by month. They can also create their own levels in the editor and send in their creations by email. The best of player-made levels are added to the collection every month as an update. They get all features for free, because I decided to monetize my game primarily with ads instead of IAPs and it turned out well for me.

Which of your own games do you like the most? Why?

battledroidsPersonally I like Battle Droids the most. The game is a recreation of the popular Bomberman game for Windows and Windows Phone. It’s a player versus player multiplayer game for up to 4 players and it has an action packed gameplay that requires some skills against other player. The multiplayer features are also cross-platform, so player from Windows Phone devices can play against Windows 8 users. It’s my third published game and I haven’t really got much experience back then and the game didn’t get much attention in the stores.

You have published 7 apps already. So you should have noticed what works best while setting up marketing and advertising strategies. Could you share some of your insights?

Sure. I usually set up my advertising campaigns for the launch date. I also use AdDuplex cross-promotion network and house ads in all of my games to boost user acquisition. I have a website and Facebook page which I keep updating at least weekly, so I can utilize my existing fan base at a new release. Blogging and newsletters can also be efficient tools to keeping your existing players engaged. Reaching out to review sites is important too. At a new release I try to focus most of my resources for the first 1-4 weeks and generate as much exposure as possible.

What is the biggest struggle that you find in acquiring new users for Windows Phone and Windows games?

The biggest struggle I found in user acquisition was localization. Publishing your game in English only is not enough anymore. You can reach only 20% or less of the potential users if you ignore other languages. My advice to other developers would be to localize at least your store content and game. Of course the more content you localize the more chance you have to acquire users. This includes your advertising campaigns too. A localized app or game has higher chance of being reviewed by local review sites too.

Can we expect any new apps or games of yours to be released in near future? If yes, are you going to try any new marketing strategies?

Yes, I plan to release at least 2 new games in 2015 which are currently in development. One of them is 2D casual game and the other is a 3D resource management game. I’ll publish more details about the games later, so if you’re interested in stay tuned at Obumo Games Facebook page.

I’m really excited about AdDuplex Interstitial ads and I’ll definitely try it out. Furthermore, Microsoft announced Video ads for Windows 10 last week at BUILD which opens up lots of possibilities for developers.

Thank you Zoltán for sharing your experience. It will be really interesting to hear how did it go with your new games!

AdDuplex Windows Phone Device Statistics Report for April, 2015

Globally, this month has seen a continuation of the trend for a drop in market share for the Lumia 520 but it still remaining the most popular device. The Lumia 630 also continues to gain market share as the second most popular device.

This month we take a first in-depth look at the market share of some of the smaller OEMs. Plus we look at Argentina, the big EU5 (France, Germany, Italy, Spain, Great Britain), Poland, Indonesia and India.

And, finally, we’ve seen a sign of a new Microsoft flagship!

Data Source

This report is based on data collected from 5,429 Windows Phone apps running AdDuplex SDK v.2. The raw data analyzed was collected over the day of April 17th, 2015 (UTC time) unless otherwise stated.

Let your app be promoted at BUILD!

WP_20140401_007AdDuplex is hitting the road again and during the period of April 29th – May 1st, 2015 we will be in San Francisco. For the second year in a row we will be exhibiting in the biggest Windows Developer conference BUILD. And we’d love to meet you there!

We are very excited to get this chance to meet many of you in person to share our ideas and discuss the possibilities of growing your apps and games together or just to say hi!

You want your app to be promoted at BUILD?

Great! We’ll have it at our stand. So if you are attending BUILD and use AdDuplex be sure to contact us at with the following information:

  • your app name
  • link to Store
  • one sentence description of your app
  • what value do you get from using AdDuplex
  • and your personal contact info so anybody can reach you at BUILD. (will be displayed publicly)

Send this information before 22nd of April and we will have your app showcased* at our stand during the conference!

And if you are still thinking to integrate AdDuplex this might the best time to do it!

Come meet us and together we’ll find the most suitable ways how to get more exposure for your apps and games with AdDuplex. Moreover we have prepared some goodies for developers who will visit us at our stand #213. So be sure not to pass by!

See you at BUILD!


*We reserve the right not to showcase your app if it doesn’t meet our subjective criteria.

A ticket to BUILD 2015 goes to…

AdDuplex winners_560
Recently we ran a contest to win a ticket to BUILD, the biggest conference for Windows developers, that will take place in San Francisco, April 29 – May 1, 2015. Now we are ready to announce the winner!

To enter this competition we asked you to:

  • share your experience while using AdDuplex
  • tell us why you are the one who will get the most advantage from this great conference.

Gladly we got so many warm and motivated emails starting with students and ending with major game developing companies. But on the other hand this made it very hard to decide who should get the ticket. When we got the first email from a prominent Microsoft MVP we thought that it wouldn’t be a good BUILD if this person is not there. But then we’ve got a few more from other well known MVPs and it became apparent that this couldn’t be the criteria. So we decided to look at it from another angle – select someone who provided the best argument on how they and their app(s) would benefit from attending the conference.

So, without further due, we are more than happy to announce that the winner of this contest is Joe Fernandez! Congratulations!

AdDuplex is all about helping developers get as much users as possible. Therefore we believe that BUILD 2015 is a great place for Joe to expand his knowledge and in his own words:

“… would be a huge boost for the development of Pik. Apart from learning about the latest Windows development technologies, we cannot think of a better place to promote our new app Pik… I am sure attending Build can help Pik reach success much faster and connect with the right people.”

Thank you all for sharing your testimonials, opinions and experiences while using AdDuplex! We are working for your success.

How-to integrate AdDuplex interstitial ads into a Unity game

We are seeing more and more Unity games joining our cross promotion network. Some of them are housing AdDuplex banners and some are already benefiting from the newly introduced interstitial ads.

Interstitial ads are best applicable to games, since they occupy the whole screen and are usually displayed during natural pauses in app’s flow. It is quite a trivial task to include AdDuplex Interstitial ads into a game that is created using Mono Game, XAML or some other tool that depend on a straightforward Windows Phone page manipulation in Visual Studio (or Microsoft Blend for that matter). For Unity3D developers it might not be as simple.

Below is a guide describing one of the ways to do this. It consists of two steps: configuring the Unity project and configuring the Visual Studio solution created by it.

Configuring the Unity project

  1. Register your Windows Phone app in AdDuplex system and write down your Ad unit ID and App key.
  2. In Unity create a specific C# script and name it Interop.cs. It’s purpose is to provide a public event handlers that can be used to communicate with the actual XAML code-behind.
  3. To load and show interstitial ad in Unity script call Interop.ShowInterstitial().
  4. To pre-load interstitial ad in Unity call Interop.LoadInsterstitial(). This is not required, since Interop.ShowInterstitial() can also download an ad, but it can be used to shorten loading times.
  5. Subscribe to Interop.OnInterstitialClosed event to know when the user closes the ad. Be careful for what you do in the callback, because a lot of Unity engine functionality is non thread safe.
  6. Build the Unity project (SHIFT + CTRL + B) into a Windows Phone 8 project

Configuring the build in Visual Studio

  1. Find and open the generated Visual Studio Solution
  2. Go to Tools -> NuGet Package Manager -> Package Manager Console (or Tools -> Library Package Manager -> Package Manager Console when in Visual Studio 2012 or below)
  3. Run the following command in the console to install AdDuplex dependencies: Install-Package AdDuplexWP8 (If you are building to Windows Phone XAML 8.1 (Universal) package please refer to Windows Phone 8.1 XAML AdDuplex Interstitial Ad Installation and Usage and change the namespaces accordingly.
  4. Add the following line to the Application_Launching (or OnLaunched if you are on Windows Phone 8.1 XAML Universal build) method in the App.xaml.cs file. Don’t forget to use your real AppKey!
  5. Open the MainPage.xaml.cs file and create a member of InterstitialAd type.
  6. Locate the constructor method public MainPage() and add some code to subscribe to Interop events.
  7. Finally add code to manage the interstitials according to Interop commands and initialize the ad control. Don’t forget to fill in your AdUnitId here.

This is it. You can now build and test the project. Here is a sample project for Unity 5 that waits for a user tap to show an ad – GitHub AdDuplexUnity sample.

If you have ideas on improving this guide or need some help just drop a comment below or contact us via