Java code to work with MillennialMedia, SMAATO and NexAge web advertising APIs

Dec 18, 2010 by

I wrote yesterday about my (mostly) negative experience working with these companies, but some of you might give it a try and maybe your results will be much better or maybe things have actually improved lately. In any case, the code here should get you up to speed covering most of the dirty work of working with these companies’ APIs.

I will post 4 classes here:

  • AdGrabber -  main abstract class to give all other specific grabbers structure and save some repeating code
  • MillenialAdGrabber - MillennialMedia specific grabber
  • NexAgeAdGrabber - right, NexAge specific grabber
  • SomaAdGrabber - the SMAATO ad grabber. Their ad platform is dubbed SOMA, hence the name

If you are using this code, please give an attribution when applicable with a link to this post.

read more

In App Advertising on BlackBerry with QuattroWireless, MillennialMedia, SMAATO and NexAge a bitter experience

Dec 16, 2010 by

Preface

At some point in the past I was trying to monetize free application on BlackBerry and since most of the advertising networks that actually work with BlackBerry don’t have an SDK, I had to work with their WEB APIs directly.

This did not work for me at all (with minor exception for Quattro Wireless). Maybe this was personal to me, I don’t know, probably not. The monetization through advertising on BlackBerry is unfortunately does not work. I am talking from a lot of experience supporting free applications with ads on Android and iOS.

I’ve spent a lot of time looking for advertising agencies working with BlackBerry and then signing up and then getting the necessary information from them and then working through their documentation to implement a custom web client to pull the info from their web APIs – all this to learn once again that the revenue I could get is a joke.

Quattro Wireless

Advertising with Quattro Wireless actually turned out to be the best BlackBerry advertising experience I had so far… As long as it lasted (not very long unfortunately).

Starting Sept. 30 1020 Quattro is iAd exclusive and stopped serving any ads to BlackBerry. Since I do not ever trust what I can get from advertising service, when the service stopped, the application was not impacted but other developers that were less careful (something you should not ever do though) might have had some problems.

NexAge

NexAge left me with the worst impression of all. First these guys at NexAge took a hell lot of my time with manual sign up and many  many phone calls I had to have with them to get anywhere. It looked very suspicious to me that they can’t implement an automatic sign up and to actually sign up for the service you had to talk to them over the phone. I should have known better at this point. Coupled with their awfully looking website, this fact should have stopped me from moving forward with them and saving a lot of my time and frustration. But since there were not many options at a time, I decided to try them out. The interesting part is that when I voiced my concerns about the manual sign-up to some higher up developer relations manager, he told me “We are the BMW of advertising, we give you a personalized and best service out there”… yeah… right…  After signing up with them and integrating their code (there were a few hiccups on the way but nothing deal breaking) I started to serve their advertisements and the results were – well… simply put horrible. When I talked to them they were not really helpful and they kept saying “we will investigate and will try to optimize”. I wonder if they are optimizing the ads manually as the sign-up. After couple weeks of my pilot with them, during which I wrote them and called them to complain about the ridiculousness of the revenue with not much results (they mostly simply ignored me) I shut them down and decided to forget about them and about the partial revenue I have generated in these couple weeks for the sake of my own mental health. I have to point out that they did have an SDK – a ridiculously large SDK, so I decided that I can not add an SDK which is almost as much as half of my whole application size, especially while I can implement the same thing with couple classes.

SMAATO

With SMAATO everything was much simpler, but the revenue was as bad if not worse as with NexAge. After trying them for some time and not seeing any improvement, I gave up on them.

MillennialMedia

With Millenial, it was more complicated. At some point I was simply furious with them and if there were any other options to advertise on BlackBerry, I would definitely avoid them, but since there aren’t I still work with them in a very limited capacity. I was so so sorry to learn that they are going to handle the technology side of RIM’s advertising service. The reason is simple – they are SUPER unorganized. And coupled with RIM, they just doubled the amount of mess. For example, they say you are ready to serve ads and you are fully operational and you publish your app and then you see some super weird stats and you ask them and they tell you some BS and then you wait a little more and then you ask again and then a few weeks later they say – “Ohh the ads you were serving are test ads”. To make things even worse – this happened to me more than once.

Summary

In summary, unfortunately, if you want to monetize your free application on BlackBerry – you better prepare yourself for the worst. I was hoping the official RIM advertising service will solve this problem, but unfortunately it didn’t. It’s a complete mess, as I mentioned and I don’t think they are going to sort this out any time soon. If you are a developer that knows of a better service – please let me know, I would appreciate it. Hopefully my experience also helps you to save some of your time. If you are eager to try anyway, I plan to post the custom integration code that I wrote here so that you (again) can save some time reusing this code.

read more

Related Posts

Tags

Share This

Foursquare’s use of MongoDB

Dec 15, 2010 by

I have been to a presentation by Harry Heyman – the first non founder employee of Foursquare. He presented on the Foursquare’s usage of MongoDB, a rapidly gaining popularity NoSQL database. Quickly – the idea behind NoSQL database that it is not based on a relational model as most traditional databases but rather on a document model.

Harry had many interesting things but the one thing that was especially interesting to me was that they basically run all the DB operations of FourSquare in RAM! Yes that’s right. They employ the extra large memory instances on EC2, running with 64GB or RAM and they shard whenever they start approaching certain limits of RAM.

The outages they had in early October were because they hit the memory limit and the databases started to page in and out the data from the hard drives to the memory and back and this quickly brought them down.

He mentioned that this is however not Mongo’s fault and this would have happened with any database they would have used. Which is interesting by itself because it means that the way the application is engineered – the requirements is that all the data that they operate has to be in RAM for the application to be fast enough. I bet there is a lot of smart engineers working at Foursquare and there has to be a good reason for that and in fact Harry mentioned that they basically have to have almost all the checkins available in memory due to the nature of the queries they have to perform on the data.  He also mentioned that when (this seemed more of a “when” rather than “if”) they move to dedicated servers with solid state drives, they should not have that limit anymore because then the hard drives (SSDs) in that case will be fast enough.

For me all this was very surprising and I am still a little puzzled about it and wonder whether there is/was no way of engineering the application so that they don’t have to keep pretty much all their data (about 5 million users and 160 million checkins at the moment), all in RAM.

Slides of the presentation

UPDATE (Dec 15 2010) a few related links:

Official blog from Foursquare

Interesting discussion at YCombinator hacker news

Some notes of Alex Popescu from NoSQL blog

UPDATE (Dec 17 2010) – 10gen posted the video of the meetup

MongoDB and Foursquare video


The foursquare and MongoDB logos are properties of their respected owners.

read more

Related Posts

Share This

Android – Can’t find my ADB

Dec 6, 2010 by

Just installed the new Android SDK – 2.3 and wondering where’s “ADB”? Don’t worry it’s there.

In there recent release of the Android 2.3 codenamed “Gingerbread” the SDK’s directory was a little restructured. In particular the ADB (Android debug bridge) the tool that is used to communicate with the Android emulator instances and connected device has been moved. Previously you could find it in the

path_to_your_Android_SDK_installation/tools

folder.

But since the Android 2.3 (or API 9) the /tools folder was renamed to /platform-tools folder, so if you are wondering why suddenly your >adb command does not work – this is the reason and updating the PATH should fix it.

read more

Share This