May 1, 2016
Over the past year, I’ve run some experiments in advertising for my iOS app, DanceMaster. At the beginning of this process, I knew absolutely nothing about online advertising. Along the way, I made a lot of mistakes, and I’m sure it is possible to execute advertising campaigns better than I have, but I’ve also learned a number of interesting things about the process that might be useful to other independent app developers who are considering marketing their app with online advertising.
This isn’t meant to be a comprehensive review of online advertising platforms. I approached this process as a beginner, and I tried to make the best choices for my app at each stage, but I didn’t fully explore all the tools that each platform offers.
I just want to say up front, most of my advertising experiments did not pay off. I did, however, learn a lot of lessons that could be applied to constructing future advertising campaigns that would have better results. This has turned out to be a pretty long article, and I’m going to go into detail about my experiences on several advertising platforms, but first I wanted to cover a few of the key lessons:
It is difficult to do online advertising if your average customer lifetime value is less than $20. Regardless of how you are paying for advertising, when you factor in your conversion rates to figure out how much it costs to acquire a customer, it gets pretty expensive. If an app purchase earns you less than the amount you pay to acquire that customer, that advertising channel isn’t worthwhile. The exact numbers might be different in your case, but you should track both how much it costs to acquire a customer and how much you expect each customer to be worth, and evaluate your campaigns accordingly.
Social Media advertising works best when you can easily target your ad displays to people who are likely to have an interest in your product. Demographic targeting is usually too broad to be effective. Targeting by job title or by a list of accounts that might be interesting to your potential customers is a much better option.
Advertising to the same target population declines in effectiveness over time. To keep a campaign working, you need to get your ads shown to new people who are highly likely to buy your product or convert. If you have very tight targeting, finding new people to target becomes especially important.
How Online Advertising Works
At the core, all online advertising follows a similar model. Advertising slots are essentially auctioned off as they come available. The winner of each slot is judged on some combination of how much they are willing to pay (combined with a guess about how likely they are to pay out based on past performance), along with some measure of the relevance of the ad. Of course, as an ad buyer, you don’t bid directly on these slots. Instead, you set some parameters around how your ad should bid, and then you need to trust the system to execute that bidding strategy fairly. Those parameters include a maximum bid and a maximum daily budget.
There are lots of different ways to bid on advertising slots. You can bid on views, on specific engagements (like clicking through your add), or, in some cases, on conversion (where someone actually buys your app). Events that occur closer to a conversion are likelier to be more expensive, but it will also be easier to calculate their expected value.
I ran a number of experiments with small-budget campaigns on Facebook, Google, and Twitter. I didn’t install any conversion tracking software, which requires adding libraries and code to the app itself, so I generally set up my campaigns to bid on clicking through the ad, either directly to the App Store, or to the website for the app. My initial sales volume during these tests was pretty low, so I actually do have a pretty good idea of how well each of the campaigns I ran converted.
Facebook’s ad system is very focused on reach. That is, all of their metrics and pricing tend to concentrate on how many people saw your ad, how many people followed your page, or how many people liked your post. Their call to action for advertising asks you to promote your content. If you are trying to build your presence on Facebook, this is probably great. It feels good to be able to make your post be seen by a large number of people. My goal, though, is to sell copies of my app, and a view of a post doesn’t translate directly into a purchase, or “conversion.”
I made a number of mistakes here, in part because these were the first ads I ran, and I hadn’t yet learned how to create an effective campaign. I started by targeting my ads based on demographics, and as I learned later, demographic targeting does not work well, especially for my app. The demographic groups are much broader than are useful for my targeting purposes, so the ads end up being shown to lots of people who have no interest in this type of app.
In the end, I wasn’t able to successfully translate money spent here into sales, but maybe I was working from a disadvantage— DanceMaster didn’t start with a large Facebook presence, and I don’t spend a lot of time cultivating a social media following for the app or posting things unrelated to the app itself.
In fact, my conversion rate was far lower on Facebook than the other advertising networks I tried. During my experiments with Facebook advertising, I wasn’t able to attribute a single sale to my Facebook ads.
In addition, I got the strong sense that the reach numbers were slightly inflated. For example, I ran one ad using my 30-second app preview video, and when I looked into the numbers, I found that Facebook counted the video as a view if the video played for more than a few seconds on the screen. Since videos would auto-play as they showed up on screen, this makes it very unlikely that most of those views were people who watched the whole video.
In any event, an app preview video constructed to the standards of the App Store doesn’t make a very good video ad on Facebook. For the App Store, app preview videos have to be mostly footage recorded directly in the app, and so they have the aspect ratio of an iOS device. These restrictions result in videos that don’t look very good in a more standard aspect ratio presentation. The window in which Facebook ad videos are played is also pretty small, so any details from your app difficult to see and unlikely to grab attention.
I should point out that the Facebook tools have improved since I ran my experimental campaigns there, and knowing what I know now about how to target and construct ads, I would probably do better than I did then. I’ll probably run this experiment again soon, but my initial experience here left me disappointed for a long time.
Google’s advertising system is extremely complex. There are lots of different options and different ways to configure the system. These options all interact with each other and with the system in very hard-to-predict ways. As a result, I initially spent most of a day getting a Google AdWords campaign up and running and getting it to actually run my ad in something approaching the way I wanted. Once it was running, I still had to come back periodically and examine what it was doing to make sure it was working as I expected.
In setting up my Google ads, I decided to initially direct the advertising at the website for the app, rather than pointing it directly at the App Store. This potentially meant that fewer people would convert because there’s another step in the process, but it also meant that I got better analytics information about the visitors that the ad delivered. My app site has Google Analytics installed, and the integration between Analytics and AdWords allows you to track behavioral differences from different campaigns and ads.
In fact, that Analytics integration came in very useful when the ads started running because the combination of AdWords’ default choices and my advertising text resulted in the system making some poor choices about how to display my ads, and I didn’t realize it until I started looking through the numbers.
Here’s where things got really tricky. Google’s standard AdWords ad doesn’t allow you to target specific mobile operating systems. DanceMaster only runs on iOS devices (above a particular version number). I don’t have an android version, but I can’t stop Google from showing ads to Android devices. I had written several different versions of my ad text. Some of them mentioned that it was an iOS app, and some did not. The ones that did not indicate iOS had a higher clickthrough rate. It turns out that Android users are just as interested as iOS users in an app like DanceMaster. But when those Android users arrived at my site, they realized that they couldn’t get the app and went away. The iOS specific ads prevented those Android users from clicking on the app in the first place. This resulted in a lower clickthrough rate on AdWords, but obviously a much higher conversion rate once they arrived at my site.
AdWords was making its decisions based on that clickthrough rate, not my own conversion rate, so the ads that didn’t mention the platform were being shown much more often. As a result, I was being billed for lots of clicks that had no chance of converting to a sale. And, because my budget was relatively low, those low value clicks were exhausting my budget and crowding out potentially more valuable clicks.
I was never able to get search term based advertising to break even in terms of cost vs. conversions. There aren’t that many people searching for things like my app, so I’m buying terms that seem adjacent to it, and the terms that do work well are very expensive. Some of the best search terms for me require bids of at least $1.50 or more per click to have an ad placed highly enough to be seen. With the conversion rates that I see after the ad click, my app would need to be priced around $50 for this to make economic sense for me.
A few things have changed since I initially ran this experiment. The App Store now has its own analytics, and although they aren’t nearly as useful as those on my website, they can be useful for understanding how your ads behave. In addition, Google recently introduced a specific type of ad for apps that draws information from your App Store entry and sends people directly to the App Store. These seem like they may work slightly better than the web search ads, but I think that may be because these ads allow me to only target people using a platform and OS version that the app actually supports. I’ve had one of these campaigns running for a while, but until a few weeks ago it had almost no activity. I’m not sure what caused the change yet, but the campaign seems to be performing much better now. It’s too soon to know how it is doing in terms of conversion, but I suspect that it is doing slightly better than the web search campaign.
I ran a few experiments with Twitter ads, and the first ones didn’t go very well. My initial campaign used demographic targeting, and (as I pointed out above) this type of targeting does not work very well. After I ran this first campaign, a Twitter representative almost immediately contacted me to ask if they could help optimize my campaign. When they asked if I could commit to spending $200 a month, I (truthfully) told them that I would spend that much if I earned that much in sales as a result of my advertising. One of the first things this rep told me was that the demographic targeting doesn’t work well for anyone. Instead of demographic targeting, it’s best to put together a list of twitter accounts whose followers you want to target. Twitter will then target users similar to those followers. It was pretty easy to put together a list of twitter accounts that might have followers interested in my app, and with this kind of targeting, my ads did much better.
Also, recognize that advertising becomes less effective over time as you target the same population. So, if you keep running ads over a small population, you should expect to see your clickthrough and conversion rates decline over time. I tried to counteract this by adding in new target accounts and dropping target accounts that weren’t performing very well.
I also found that setting an initial maximum bid was tricky, particularly when you don’t know how well the ad is going to perform. Twitter’s ad interface tries to give you an idea of how many people you will be able to reach with your targeting, budget, and bid settings, but it’s hard to know how accurate that will be. I generally started with a bid of $1.00 per app click and adjusted from there. I wanted to pick a number that was high enough that the ad would show enough times to be able to draw some conclusions about its performance, but low enough to be potentially valuable. As it turns out, that bid was a little high for the conversion rates I saw, so I would probably go with a lower bid in the future. The problem is that if your maximum bids are way too low, your ad might not get shown.
Aside from that trickiness, though, Twitter’s ad platform was relatively simple and easy to use, and it was straightforward to track an ongoing campaign and adjust the parameters to improve its performance.
Of the three advertising platforms I tried, Twitter was the most fun, and I felt like I got the most insight into how my ads were received. Financially, my Twitter ads did slightly better than my initial attempts at Google ads, and the campaigns that worked delivered the best value of any of the ad campaigns I ran, though they didn’t quite break even. With the conversion rates I saw and the maximum bid settings I was using, I would have had to charge about $20-$25 for my app to break even.
The most fun part about this experience, though, was seeing and interacting with the people who responded to the ads. Because Twitter ads are promoted tweets, you can see who likes and retweets your ads. I also saw people start talking about the app and recommending it to others as a direct response to the ads. A few people even contacted me directly with questions about the app. Even when the campaigns were not financially paying off, it was personally rewarding to see people engaging with and appreciating the product I built. None of the other platforms offered as much detailed personal insight into the types of people who were engaging with the ads. Maybe at a larger scale, this could get overwhelming, but at my scale, it was great, and even a useful source of product feedback.
Although none of these experiments could be described as wildly successful, I did learn a lot in the process, and I hope that my experiences can help other independent developers make better decisions about marketing their own apps. As for DanceMaster, advertising platforms and tools have improved since the time that I ran most of these experiments, and I’ve also changed the price of the app, so it might be worthwhile running some of these experiments again.