Cloud Four Blog

Technical notes, War stories and anecdotes

BMW MMS Ad Campaign Generates $45M in Revenue

We hear a lot of stories about the power of mobile advertising, in particular text messaging advertising and despite that fact, we’re still in awe of how BMW turned approximately $60k in MMS ads into $45M in revenue.

The ad campaign was for winter tires and targeted to Germans who had bought their cars during the summer months. Because it is nearly impossible to make it through the winter without snow tires in Germany, BMW knew they would have an interested audience.

The ad itself was very innovative as Tomi Ahonen describes:

So BMW designed an MMS campaign, where they customized the picture of the car to be the model of the car that the customer had, and the colour of the car, with the wheel rims that the customer had bought. Then BMW virtually fitted the suggested winter tyre for that car and wheel. And this image was to be sent to the customer.

…Because this was mobile, BMW had prepared the campaign, and waited for the exact right moment. The day the first snow started to fall in Germany, that was when the MMS messages went out.

And best of all, the MMS message included a link to come to BMW’s mobile website, to select alternate tyres (and wheel rims) to upload to the tyre simulator, so that the customer could experiment with other variations and see their prices and compare.

What a great advertising campaign. Timely. Personalized. And immediate via text messaging. Dave Winer once said that as advertising becomes more personalized and useful, that it stops becoming advertising and simply becomes information.

The results are astounding as shown in this breakdown by Ajit Jaokar:

Cost of winter tyres c. $700
Cost of tyres & rims c. $2500
Approximate average sale $1300

Total potential customers: 117k
30% response rate = 35,000 customersHence, 35,000 customers spending $1300 each = $45,500,000

Given that the cost of the campaign was approximately $60,000 – at German MMS rates, for each MMS sent, the average return on investment was 758 dollars.

$45 million dollars generated by a small amount of MMS advertising. Amazing.

Mobile is a Trillion Dollar Industry

Tomi Ahonen has another must read post detailing how mobile has become the latest industry to cross the trillion dollar mark.

With multi-billion dollar bailouts being discussed daily, it is hard to put a trillion dollar industry in perspective. As Tomi points out, this dwarfs the entertainment and publishing industries. It is an exclusive group that includes the automobile, food and weapons industries.

2008 also marks the first year that “browser-based content is now accessed by more people using a mobile phone than using a PC on the planet. There are 1.02 billion people who access the internet on a mobile phone versus 950 million personal computers connected to the internet.”

The whole article is worth a read, but I couldn’t agree more with his comments on mobile web sites:

If you have a consumer-oriented website, especially if you are a global brand – shouldn’t you now be taking steps to make sure your site is also suited for mobile phone based internet access? Isn’t it time to register for a dot-mobi domain for yourself (Bank of America had a million visitors to its mobile site), and to instruct your web designers to test and optimize your websites to serve also mobile phone access?

Exactly. Couldn’t have said it better myself.

First Look at PHP Speedy for WordPress 2.7

With the release of WordPress 2.7 we’ve begun upgrading our customer sites to use this new version.  As part of that effort, we needed to ensure that our hard won performance improvements were not adversely impacted.  For the most part, this meant taking the time to review the PHP Speedy and WP Super Cache plugins to ensure they were still working as expected. 

Leon Chevalier has released version 0.5.1 of his PHP Speedy WordPress Plugin. This version is compatible with WordPress 2.7, so we downloaded it and gave it a try.  We had a couple issues with this version, but in the end I think we came out okay.

The first issue we encountered was an apparent compatibility problem with the All in One SEO Pack plugin. With the SEO plugin installed, PHP Speedy simply would not work. It took us a while to find this one, so if you’re reading this I hope it saves you some time. Disabling the SEO plugin allowed us to proceed.

The next issue we encountered was something related to enabling GZIP compression for the CSS file served by PHP Speedy.  With our previous WordPress 2.6 installations we were able to successfully enable compression, but something’s amiss now.  We haven’t (yet) gotten to the bottom of this one, but disabling CSS compression allowed us to continue testing other aspects of the plugin.

Which brings me to some fun news.  The new version of PHP Speedy supports Data URIs, which provide a mechanism for embedding data items in a page.  In particular, CSS background images can be converted automatically to Data URIs.  Doing this increases the size of your CSS file, but decreases the number of unique files, and associated HTTP requests, for the page.  You may be better off using the CSS Sprite technique I mentioned in a previous performance post, but you may also want to give this option a try.

Despite a couple small glitches, we were able to get PHP Speedy up and running with our WordPress 2.7 sites in fairly short order.  This performance plugin continues to be an important tool in our WordPress performance kit.

193 Thousand Percent Performance Improvement–in 10 Seconds

Here at Cloud Four, we are always trying to make performance optimizations on customer Web sites and services. I noticed a custom WordPress plugin that I had written for a client was running a bit slower than I’d like today.

After just a quick bit of debug it was clear that the problem was an 850,000-row MySQL table. The plugin was making simple (read) queries to this table about a dozen times on each page load. This shouldn’t take so long!

I took a quick trip to the MySQL interpreter and added indexes to three columns. Some quick testing showed me that the instantaneous result (it took 10 seconds each to index the columns) netted an instant performance improvement of 193 thousand percent. That’s an improvement that will affect every visitor to this page in the future, and one I’m glad I made.

Adding indexes to a MySQL table is one of those basic-arsenal tools we use; it’s not ground-breaking nor particularly racy. But sometimes, in our valiant quests for speed and elegance, we can forget the simple tactics that make so much difference.