Android App Rank Boost Tip #2

Let me tell you a story of the launch of 2 apps.  And let’s see if you can guess the Google Play ranking outcome…

This is the true story of 2 functionally similar apps launched on the same day from the same developer account.  The initial test we were running was simple… if we promote the first app (let’s call it App A), but not the second app (App B), how much traffic can App B draft from the wider App A distribution.  We ended up learning a very different lesson, however.

I’ve learned a lot about Android app launches in the almost 2 years I’ve been doing apps.  So there’s a particular launch sequence we do to maximize our visibility and discoverability within Google Play.  The end result is that, typically, if we don’t hit page 1 of Google’s Top New Free list within a few days, we’ve done something wrong.

So that was one of our benchmarks for App A.  A page 1 Top New Free listing.  Because of the particular test we were running, we had no such expectations for App B.

So here’s how things went down…

Late in the day on May 24 we launched both App A and App B.  We also started an aggressive ad campaign for App A.  We ran ran the campaign for almost 3 days.  Here are the week 1 installs for App A:

  App A
  Daily Installs Cumulative Installs
Day 1 911 911
Day 2 28,045 28,956
Day 3 20,315 49,271
Day 4 10,446 59,717
Day 5 1103 60,820
Day 6 933 61,753
Day 7 944 62,697

A nice 7-day install total of 62,697, with almost all of them occurring during our 3-day push.

How did App B fair while drafting off the App A promotion?  Not bad.  Here are the organic install numbers for App B.  Granted, they’re nowhere near the App A installs… but a pretty good take, regardless.

  App B
  Daily Installs Cumulative Installs
Day 1 23 23
Day 2 326 349
Day 3 808 1,157
Day 4 1,609 2,766
Day 5 2,804 5,570
Day 6 2,530 8,100
Day 7 1,693 9,793

Not a bad haul.  9,793 installs with zero promotion and totally organic and/or incidental to our promoted App A.

Not surprisingly, App A hit the Top New Free category.  As a nice little bonus, so did App B.

We had apps on both page 1 and page 8 of Google’s Top New Free.  So far, not much of a surprise.

Are you ready for the plot twist in my little story?  Guess which app was on page 1, and which was on page 8…

Now, maybe you saw this coming because of how I set up the story.  But to say we were shocked when App B climbed to page 1 would be an understatement.  Especially when it so heavily outranked the far more “popular” App A.  We had to double-check to make sure we didn’t run paid traffic to the wrong app.

It made no sense at all that App A could have 6x the installs of App B and rank so poorly in comparison.  Especially with an identical launch date and identical market and demographics.  And it wasn’t just that it ranked lower than App B that was so surprising… it was the massive rank delta, given the actual behind-the-scenes install rates that we knew.

So what’s the rest of the story?  Pretty easy, actually.  And, knowing Google, pretty obvious in hindsight.

Google lives and dies by relevant search results.  It’s a religion to them.  Even on Android.

And App B appeared to Google to be far more relevant than App A.  Here’s why…

Not only did we run paid traffic to App A.  We were impatient and wanted maximum installs.  So we ran incentivized paid traffic to App A.

If you’ve never run incentivized traffic before, it’s a pretty simple concept.  Somebody, somewhere, is playing a game right now.  And they just ran out of tokens, or gold, or lives, or whatever.  Conveniently, that app publisher will give them more tokens, gold, lives, or whatever if the user installs App A (which would be my app).  It’s an incredibly effective way to get installs for an app (and for a publisher to monetize, which is another story for another day).


Those users didn’t really want my app.  They wanted tokens, gold, lives, and whatever.  So they install App A, get their reward, and uninstall App A.

The catch is, Google’s watching this whole behavioral cycle.  And here’s what they see…

User comes to Google Play and discovers App A.  Google assumes that the user believes App A is a good app and, therefore, installs App A.  User immediately uninstalls App A.  Rinse and repeat (60,000+ times, in our case).

And eventually Google thinks App A has terrible relevance, even though a ton of people are installing it.  In fact, Google seems to actively discourage its further discovery by placing it unnaturally low in the rankings.

Here’s the real picture of what happened to App A and App B…

  App A App B
  Daily Installs Daily Uninstalls Active Installs Daily Installs Daily Uninstalls Active Installs
Day 1 911 496 367 23 8 13
Day 2 28,045 19,198 8,436 326 137 174
Day 3 20,315 16,639 11,849 808 300 648
Day 4 10,446 9,284 12,955 1,609 542 1,622
Day 5 1,103 1,959 12,133 2,804 1,027 3,270
Day 6 933 1,272 11,817 2,530 1,121 4,573
Day 7 944 1,124 11,655 1,693 940 5,260

* I know the numbers don’t add up each day.  I’m not sure how they end up that way.  But these come straight from my developer portal.

So what follows is my interpretation of the results.  It should be noted that we actually confirmed our results with 2 more apps and experienced the same pattern.

Total installs (cumulative installs from the first charts) is a pure vanity metric.  Active installs is what matters to Google.  More specifically, your active install ratio.

Clearly Google values 9,793 installs that are 54% relevant (based on the overall active ratio) more than (much more, apparently) 62,697 installs that are only 19% relevant.

Here’s the good news… even as a smaller publisher you can beat bigger publishers who have broader distribution.  The key is relevance.  Not all installs are equal in Google’s eyes.  Fast uninstalls are not just discounted, but appear to be penalized.  Sticky installs = good user experience to Google = more relevance = higher ranking in Google Play.

You don’t need to blow the doors off your installs to rank well.  In my experience, it’s at least as important that your installs stick.  And I would lean towards more much more important.

Google only has so much data to determine whether you are giving your users a quality experience.  And your active install ratio is a huge leading indicator for Google, right or wrong.  Use it wisely.

Here are my takeaways from this…

  1. It’s disproportionately important to hyper-target your key demographic if you run paid campaigns at launch (when your app has no prior history with Google).
  2. Beware of incentivized traffic.  It can be great.  But it probably won’t be.  This has been proved time and again by our internal conversion rates, as well.
  3. Limit your app features to what you do well.  Especially at launch.  Just like hyper-targeting your advertising at launch, it’s disproportionately critical that you give your users exactly what they’re looking for and do what you say you can do.  You don’t want (and probably can’t afford) wishy-washy users, or users that came looking for a secondary feature of your app that isn’t the “wow” feature.  Simply put, when you launch, you need sticky users.
  4. Quality apps can beat big distribution.  Conversely, bad targeting or crappy apps can undermine big distribution and an otherwise well-planned launch.  Volume isn’t everything.

By the way, we ran that ad campaign for less than 3 days, in total.  Now, here we are 7 weeks later and App A still ranks 38 spots lower than App B for our primary keyword.  That’s a huge ranking price to pay for getting untargeted users at launch.  HUGE!

Laser URL Redux?

Do you still use Laser URL?  Or are you here looking to download it?  Read this first…

I wrote an “updated” Laser URL post over 5 years ago.  Right now, that’s easily the most visited page I have.  It’s not even close.

Now, part of that is because I’m just re-launching my blog and don’t exactly have steady readership anymore.  But most of that is because it still has a lot of people actively linking to it.  And it was a freaking awesome tool.

But there’s a problem.  Namely, Laser URL was created so long ago and the search engines have changed their formats so much that the software no longer works.  If I still used the tool in my business, I would have kept it updated.  But I don’t.  And I didn’t.

I do, however, get a lot of requests from readers for an updated version.  And I think it could be fun to create something really killer for you again.

But here’s where I need your help.  I probably don’t have enough readers yet to even make this worthwhile, but I’ll give it a shot…

My business is essentially entirely mobile-based at this point.  I don’t use Laser URL anymore.  And if I were going to create a brand new v2, I’d want it to be better than the original.

So I need your ideas and feedback for v2.  What would you like to see it do?  What could I improve (other than the broken search engines, of course).  Can you think of a mobile component I could add?

If you have answers (or questions) for me, leave a comment here.  I’m not expecting much response… but if I get enough (especially if there are some good ideas), I’ll work on it and see what I can do for you.

Here’s my commitment to you…

  1. If I build it, Laser URL will be free.
  2. If I build it, Laser URL will be awesome.
  3. If I build it, Laser URL will be open source.

Android App Rank Boost Tip #1

Quick post today with a very simple tip to boost your Android app ranking in the Google Play store.  I have a handful of these tips up my sleeve, and it surprises me how few app publishers seem to know them.  I’ll post them here every so often and see what kind of tips & tricks I might get back in return (hint).

The first trick is very simple… always translate your market listing for international countries where you want to rank higher.

It can be as simple as using Google translate to do the hard work for you.  The interesting thing is, that’s basically what Google does automatically behind the scenes.  But if you do it for them, you’ll get a ranking boost in the target language/country.  Google treats your translation (even if it’s the exact same) as more relevant than their automatic translation.

I’ve seen our own apps jump from the 2nd page to the number 1 position virtually overnight just by using this simple tip.

And very few developers seem to do this in a sustained manner.  It surprises me that for all my competitors try and copy my features and code, they rarely do these little things that matter as much as any piece of code in actually helping your potential users find your app.

If you haven’t done it already, take a few minutes right now and translate your Google Play listing using Google Translate.  Make sure and record your app ranking in the target country before you add the translation and a few days later.  You should notice a nice little bump.

You’re welcome.

Source: One of my developers discovered this accidentally while messing around with one of his apps in the Google Play market.  Kudos to Chris for experimenting and sharing.

Super Fast Mobile Redirects

Over the past few years I’ve been heavily involved in mobile.  It started with experiments in HTML5 video 4 years ago, and it’s grown to be my bread and butter.

One of the things I realized early on with any kind of mobile advertising is that fast mobile redirects matter.  And DNS latency really matters.  Both of those are things that on desktop aren’t a huge deal… it’s more important that the redirect just work than how fast it works.

But mobile internet time isn’t the same as desktop internet time.  If a desktop redirect takes 600ms on a fast, dedicated connection, that same redirect might double or triple (or more) over a slower, far less robust mobile connection.

And you don’t have to play the mobile game very long to realize that slow link resolution = lost eyeballs = lost revenue = inefficient ad spends.  If you’re running mobile ads, just look at your discrepancy between paid clicks and what registers on your analytics.  The breakage can be enormous.

2 years ago I started working on a fast new mobile redirect engine.  And it worked really well.  Several months ago I had the opportunity to rewrite it.  Version 2 is even better.  And it’s fast.  Really fast.

I won’t go into the technical details of how my mobile traffic director is implemented.  But I will share some of the stuff you need to be watching and looking at for optimum speed.  And, of course, everything that applies in mobile also applies to regular desktop redirects… just without the urgency.

First, let me give you an idea of the scale I’m working with.  Because this level of optimization might not be necessary if you’re running 100 redirects to a mobile offer.  But in my business I ran 1,546,261 mobile clicks through my redirector worldwide last Saturday (6/29).  And at that scale, details matter.

Also, it should be noted that my traffic director does quite a bit more than just redirect incoming links.  It handles geo-splitting automatically, so I can just run my network links to a single endpoint worldwide and handle the destination page dynamically.  It also allows me to do fairly complex weighted split tests.  Because it’s specifically built for mobile, it does device and platform detection.  I don’t currently use that in the redirect logic… but I do pass it on to my destination pages so they can be personalized, if required.  I can also dynamically add tags to the destination URL so I don’t have to modify incoming ad network links (that often require re-approval) just to change a campaign, for example.  Lastly, the traffic director generates an analytics data point containing all kinds of information regarding the click, the source, and the device.

So it’s doing a fair amount of work in the background.

My target is sub-200ms complete redirect negotiation worldwide.  And that includes DNS resolution (which ended up being the final piece to the puzzle).  In the US I actually average < 75ms.  It’s about 150ms in Europe.  And Asia is the slowest, clocking in at just over 200ms.

In my experience, if you want really fast mobile redirects, here are the keys:

  • Proximity.  Get your servers as close to your visitors as possible.  In our case we have 3 server clusters… one in central US (I’m considering moving this to 1 cluster on each coast), one in western Europe, and one in southeast Asia.  Each location has at least 2 servers behind a load balancer for improved robustness and uptime.  After a fair amount of testing, I’ve opted for more smaller servers over fewer bigger servers in each cluster.
  • Geo-DNS.  Proximate servers aren’t of much use if you don’t also have fast, geo-distributed DNS.  As I mentioned, this was the final piece of the puzzle for me.  Until I found a really good geo-DNS provider, I just couldn’t get the entire cold redirect transaction reliably under 200ms.  In my case, I now have geo-DNS with failover to a different datacenter.  That means my links stay active (albeit slower) even if an entire datacenter goes down.
  • A Records.  Ditch the CNames and use only A (IP address) DNS entries.  Frankly, this one surprised me.  Even after adding geo-DNS, we still had inconsistent redirect resolution times.  And most of the lost time was in the DNS lookup.  We switched to A records from CNames and everything fell into place.  I’m very open to CNames not being the actual problem and just a symptom.  What I know is that A records worked well, and CNames didn’t in our setup.  Done deal.  We only use A records now.
  • Measure Locally.  Monitor your redirect times around the world (or wherever you serve links).  You can’t just check them from your office and think they’re working right.  That was probably the biggest testing difference between v1 and v2 of my traffic director.  I assumed v1 was rocking worldwide… and I was wrong.  It kicked a** in the US… and sucked everywhere else.  Local monitoring is important.

The most surprising thing to me?  That it actually matters.  Improving our redirect speed led directly to a noticeable reduction in our ad network breakage.  So more of our paid clicks were seen.  Beyond that, it also improved our conversion rate because we had a lower rate of page abandonment and bouncing.

Was it a huge improvement?  No.  If you’ve got other areas where you can get double-digit movement in your conversion process, you should probably focus on those first.  If you’re down to dotting your I’s and crossing your T’s, you should take a look at your mobile redirect speeds.  They actually matter.

Of course, the biggest downside to all this is the cost.  Just to get a bare-bones service in place with no local redundancy would probably cost > $300/mo.  My setup is quite a bit more than that.  And that’s more than most smaller mobile marketers should be paying for a redirect service.  So it kind of creates a catch-22… you need to be profitably running at volume to do it right… but it’s hard to do it right when you don’t have enough volume/revenue to support the infrastructure.  Unfortunately, I don’t have an answer for that.

Links & Resources (all naked, no affiliate):

After much experimentation, I ended up choosing DNS Made Easy for my geo-DNS.  They’ve been great.  And much more wallet-friendly than other options.  I never have to worry about them and they just work.

I use Pingdom for my ongoing worldwide monitoring and sometimes for spot-checking link resolution time and flow.  I think they’re ok.  There are things I wish they did better… but they work.  And they send notifications straight to my phone when there are problems.

We originally used Amazon AWS for v1 of the traffic director.  After running side-by-side tests, we switched to Microsoft Azure for v2.  We’re pleased enough with Azure that we’ve transitioned everything but some CloudFront content off of AWS and onto Azure.  We have a *lot* of Azure servers now.  Other than a couple of really boneheaded outages on their part, I like them much better than Amazon.

P.S.  I’ve considered open-sourcing my traffic director.  Let me know if you’d be interested in that.  It won’t help at all in the ongoing expense of maintaining a traffic directing service, but it’s a good, bullet-proof, battle-tested solution that works.

C’est la vie

This is one of those posts that I’m pretty sure no one will read. But it’s one I have to write.

It’s been 3 1/2 years since I last posted here. A little longer since I made the most hauntingly bad business decision of my life. A little less since I walked away from the IM community brimming with disgust and anger.

An awful lot has happened in the intervening years. In most ways I’m far better off than I was back then. Business has rarely been better. My 20th wedding anniversary is one week from today. My oldest daughter is starting college in London, and my youngest is entering middle school. From the outside, life is good.

But I have fewer close friends. I don’t trust a lot of people anymore. I stopped helping, sharing, and providing value inside my professional circle (although I share significantly more inside my social circle). And I became even more of a social hermit than I was before, which is saying something.

Mostly, I can’t shake the events of the 6 months following my 40th birthday. I managed to destroy most of what I had spent the previous half-decade building. I ruined my reputation. And I let myself and a lot of other people down.

I think what is most agonizing about how everything went down is how many people think of me and treat me as if I’m a crook. That somehow my evil plan from the beginning was to get a bunch of internet marketers really pissed off at me so they could write and say fantastically crappy stuff about me and never trust me again. (Side note: if you can avoid it in life, don’t piss off internet marketers).

Of course, the truth is far less interesting than the world would have you believe.

In what was probably an act of extreme hubris, I made an astonishingly poor business decision. I made it worse when I chose a business model that accentuated my massive and numerable weaknesses, while not taking nearly enough advantage of my equally massive and numerable strengths. Fittingly, no good “greatest regret of my life” story would be complete without compounding the impact by failing loudly and in public. And when that business started to get off track, I handled it poorly.

By the way, if you don’t have any idea what I’m talking about here, you have a couple of options. One, walk away. I kind of don’t want you to know about this because I feel like I’ve been miscast as the villain in my own life story. That’s my preferred option… you walk away and don’t know this stuff about me.

But the option you’ll probably choose instead is to go ahead and type my name in the ever-present search bar on your browser. You’ll find that a lot of people think I’m Satan’s spawn, come to earth to steal their children and rob them of their life’s savings.

So go ahead and search and find out how bad I am. And if you still want to read more after doing that then come on back… I’ll wait.


Done? Good. After learning all that wonderful stuff about me, you just might be concerned that even as you’re reading I could be installing a super-secret trojan on your computer to raid your retirement and empty your kids’ trust funds.

Alas, I’m not.

I am, however, truly sorry for any hardship I caused anyone as a result of my poor decisions. I regret that I didn’t do better. I desperately want to exorcise those demons. I’ve given out 6-figures worth of refunds. I’ve apologized to a lot of people. And I learned a lot of lessons the (really) hard way.

Not that I expect anyone to feel sorry for me. That would be silly. I’m the one who made the mistakes, and the accountability is mine.

That said, there are some truly sick people out there who probably need to seek professional help for the joy they feel when they witness a public crash-and-burn failure. Ruthless, despicable, small-minded, petty people. If you don’t know what I mean, try failing in the public eye sometime and see what happens. The taunting, gloating, lies, and threats. It’s sickening. Truly.

If you do ever stick your neck out and have a public failure of the epic kind, look me up. I’ll buy you a drink (or three) and we can swap stories. Turns out there’s an entire subculture in the American business economy of successful people who have been dragged through the mud (sometimes for good reason, sometimes not) and yet come back to not only fight another day, but win repeatedly and often. I’ll welcome you to the club.

Look, those 6 months were too painful for me to forget. And the aftermath held me frustratingly in its grasp for most of the ensuing 2 years. And I hated it. And I hate that I created that in my life. And, at the end, it is what it is. As the title of this post says, “C’est la vie.” It’s time for me to move on. If you hate my guts, it’s probably time for you to move on, too. If you simply can’t, and feel like you still need a piece of me, then write me a really nasty, scathing, rage-filled email and get it out of your system. I’ll most likely delete the email unread. But if it makes you feel better, then go for it.

It’s time I embrace the new me. In my life I’ve succeeded beyond what I could have reasonably expected. In my life I’ve failed beyond what I thought could be tolerable. I’ve made genius decisions and I’ve made pathetically boneheaded mistakes. Ultimately, I am who I am. And I’m a better person through all of it.

After all that’s happened, there are some mistakes I’ll never make a second time…

You’ll never catch me coaching anyone professionally again. Ever. Even though I proceeded to have a better business than ever doing exactly what I taught (and I still think it was some of the best teaching you’ll ever get), being any kind of a coach is a terrible fit for me. And that much worse for the student.

And I seriously doubt I’ll ever play big in the affiliate space again. I just don’t like the people and attitude it tends to attract. It’s a dirty, slimy, greedy game. And, unfortunately, when you screw up playing the game you’ll instantly be branded as the worst of everything bad that’s associated with it. Sad. And true. And not worth it.

And there is at least one thing I miss that I’ll definitely start doing again…

I love learning cool new stuff. And I love sharing it. I loathe feeling like I can’t share it and can’t be me. I built my (first) online reputation sharing good knowledge, powerful tools, and boring stories about my life. It was good. And I liked doing it.

Sure, the other stuff will forever be part of my internet identity. But I can’t let that keep me from doing what I do. So I’m posting to this left-for-dead blog again. And I’d like to keep doing it. Flame me if you will. Excoriate my intentions and call me names again if you must. That’s just more of the same and it’s been done to death. I’m not immune to it. It hurts. But not as much as hiding from it does.

C’est la vie. I’m back. Quietly.