Have you ever lost a pile of cash? At Uploadcare we did, to the tune of $50K on Google Ads. But rather than wallow in buyers’ remorse (that’s almost the price of a Tesla, right?), we decided to share our pain and insights so that you won’t make the same mistakes.

The irresistible allure of paid traffic for mature products

Uploadcare is an established SaaS product, so we’ve been harvesting the low-hanging fruit from organic and direct traffic for a while now. If you’re in a similar situation, you’ve probably reached the same conclusion: running paid ads is the next logical growth step for customer acquisition. But there can be serious hiccups if you don’t get some key things right, especially if your product is a more complex B2B solution like ours.

What we knew before we launched our Google Ads

Since we’re out $50K, you might be thinking, “Oh, these guys just dove into this without doing enough planning.” That’s the cautionary part of this tale. We had done a fair bit of planning, but we made some key assumptions that came back to haunt us. Here’s where things stood before we launched the Google Ads campaign.

Solid inbound traffic and net negative churn, check

Thanks to developers’ trust in our core infrastructure and their recommendations, we’re fortunate to have a constant and growing inbound flow of leads and net negative churn, meaning the value of usage-driven upgrades outweighs the loss in revenue from subscription cancellations. Seems like a perfect use case for investing in Google Ads to bring more folks to our funnel, right?

A clear funnel with established conversion rates, check

Thanks to Kissmetrics analytics, we have clear visibility into our funnel, including baseline conversion rates for both signups and activations from direct traffic. Our product is a file handling API, so when building our digital funnel, we chose “uploading at least one file” to be our activation metric. Conversions for New Visitor -> Sign-Up and Sign-Up -> Activated were at 3.6% and 30.8%, respectively.

It’s worth noting that we test different hypotheses to improve conversions at every step of the funnel. Google Ads campaigns were explicitly aimed at getting more folks to visit our site. Then, there are experiments with value propositions and main page layout to improve the New Visitor -> Sign-Up conversion. The hypotheses related to enhancing the Sign-Up -> Activated conversion are about improving our onboarding flow. The last two are out of the scope of this article, but let us know in the comments if you’d like to learn more about formulating value propositions, laying out the front page, or improving onboarding.

A customer awareness ladder to guide keyword segmentation by purchase stage, check

Another thing that we built was an awareness ladder. We invested time in understanding where certain kinds of customers were on the ladder and what specific pain points they had. Based on that analysis, we built an extensive semantic core that included keywords and combinations for every step of the ladder and every customer type. Here is the snapshot of the ladder for the “File Upload PHP” keyword subset, spreadsheet.

A piece of an awareness ladder we used to structure the campaign

The table above represents the first two steps of the awareness ladder snapshot for “File Upload PHP.” Before getting to the next article section, note the two important things: we tried creating a landing page that would serve as jack-of-all-trades; we looked at the Sign-Up -> Activated conversion as one of our target metrics. Leaping ahead, that was a bad decision: it is a far-off metric to look at since it takes users way more time to activate within a product than click a banner or even sign up.

Lessons learned

Whether we’re talking about startups or PPC campaigns, execution really is everything. No brilliant idea or rock-solid plan is going to implement itself. So while our planning was A-OK, things fell apart due to a few key details. Here are some more lessons we learned…

Lesson #1: Test and trim keywords sets before hiring an agency to scale things

We decided to work with an SEM agency to simultaneously launch a whole bunch of Google Ad campaigns. That proved to be costly since agencies typically start with your extended keyword set and optimize the budget over time by narrowing things down and excluding inefficient keywords from the campaigns. Instead, we should have taken a test-and-learn approach internally with small budgets to weed out inefficient keywords before handing things off to an agency.

Don't forget: we looked at users signing up and activating before making a final decision on this or that campaign quality. Every hour spent waiting for folks to sign up and activate meant losing money on expensive clicks.

Lesson #2: Focus on page quality and CTR when doing paid tests

Two ideal testing metrics for paid campaigns are landing page quality and clickthrough rate (CTR). Why? Optimizing your Quality Score lowers your cost per click (CPC) and cost per conversion, and CTR is the most important component of Quality Score. Not to mention that measuring CTR and landing page quality is way faster than waiting for conversions to happen within your product.

This approach means you need to create that on-page content first because you can't really test landing page quality any other way. Sure, you could run paid tests on the quality of your competitors’ pages to see what works before you create your own. But you’ll still need to run tests on your own landing pages to optimize for CTR on your domain, because Quality Score factors in your historical Google Ads performance, among other things.

Once you establish baseline page quality scores for your content, you can further optimize your landing pages by testing a few different content hypotheses to see what will boost the Quality Score. Once you’re happy with the quality and CTR metrics, you’re ready to ramp up your spend.

Lesson #3: Stick to keywords that you have landing pages and content for

From the get-go, we should have axed keywords for which we had no landing pages or content, since “orphan” keywords that don’t have a home in your page content won’t yield great CTRs.

Moreso, you should have at least a single landing page for every other step of your awareness ladder. We have already told you about our jack-of-all-trades landing: even though we thought it had content for everybody, it was best suited to the third level of our ladder; see the spreadsheet. We got it when we figured that cost-per-lead was ten times below the baseline for a specific subset of keywords.

Segment your extended keyword set according to the actual content you already have. Some of those existing pages can serve as landing pages, depending on how optimized they are for conversion.

Set aside keyword groups that aren’t well represented on your site. For example, although our solution is a good fit for mobile platforms, there was no dedicated landing page content to demonstrate this to site visitors. Until we have that in place, mobile-oriented keywords are best put on the back burner.

Lesson #4: Don’t assume organic conversion rate will hold true for paid

Remember those conversion rates from earlier? For paid options, one would assume they would be equal to, or better than, non-paid traffic because people show intent when they click on an ad, right? Well, that did not turn out to be the case, not even close. Conversation rates from paid campaigns were significantly lower than the baseline.

The reason? Our old nemesis, Quality Score. Specifically, low landing page quality for existing campaigns. Even with a decent clickthrough rate, poor page quality meant a cost-per-click of about $0.97 and a customer acquisition cost way above one-third of customer lifetime value.

In other words, the suboptimal conversion rate was scaling the quality failure: regardless of how much we would spend, we’d only get losses in return. And because the paid conversion rates were so far off our baseline rates, we wasted even more time and money on making decisions about the quality of inbound traffic for the campaign.

Lesson #5: Analytics will save (some of) your bacon

As bad as things were, they could have been much worse. Without analytics in place, we wouldn't have had a clue about what campaign leads did on our site and which elements they interacted with.

Naturally, you’ll want to be sure your analytics are fully optimized with reporting configured to suit your needs before you throw paid traffic into the mix. If you don’t spot something with organic traffic, it’s just a missed opportunity. With paid, the first thing you may notice is your spend spiking, at which point the damage is already done.

Lesson #6: Revisit your awareness ladder often to validate and update it

As we got deeper into our campaign, it became clear that our awareness ladder was structured wrong. Here are the two main issues:

The keyword groupings we associated with each step were irrelevant because they weren’t in line with how people would perform their searches. We figured we had to shift our keywords sets one step down (the example awareness ladder in this article already comes with the fix). I.e., folks are already aware of the problems and search for a solution in form of a library or service. So, there are two branches of competition: “library vs. DIY” and “library vs. library.”

Content. We believed that a single landing page could work well for different steps of the ladder. That’s fundamentally wrong, and our tests (see below) showed the landing page better suits the L3 of Awareness Ladder.

In short, any awareness ladder is a dynamic concept that you’ll want to revisit and optimize based on campaign insights, or even restructure completely from time to time.

$50K of lessons learned, summarized for you

Let’s recap our lessons learned:

  • Narrow down your extended keyword set and focus on the keyword groups you have polished content and landing pages for, especially when you have a complex product.
  • Use an awareness ladder to inform keyword segmentation by purchase stage but revisit it often to validate and adjust.
  • Do not use the same landing pages for different steps of your awareness ladder.
  • Do not wait for leads to become paid users to decide on the quality of paid ads campaigns: focus on quick metrics and tailor experiments to one step of your funnel at a time.
  • Take a test-and-learn approach with small budgets to quickly fine-tune campaigns, focusing on page quality and clickthrough rates.
  • Run tests to optimize page content, which will reduce your cost per click.
  • Once you find your winner, you’re ready to go all-in. Now’s the time to pass it off to an agency to scale things up, if you are contracting out campaign management.

In the end, we dialed down our spend and did a series of quick paid tests, which helped us boost ad results to three times our baseline conversion rate. Specifically, we figured our content works best for the L3 of the Awareness Ladder. The landing page was better structured to help folks that were already aware of the problem and existing solutions and would look for a ready-made plugin (i.e. “image upload plugin” or “jQuery image upload”). Take a look at the Search Ads examples below.

After optimizing for Quality Score and CTR/CPC, we scaled things back up again and started looking at other steps of our funnel. Next time we feel like burning some cash, we probably should just throw a big party and invite all our Twitter followers. (No, seriously, that could actually work…)

Hopefully, our marketing blunder can be your educational victory. What have you learned from our failed marketing project? Have you had your own failed marketing project to learn from? What could indie hackers as a community learn from these cautionary tales? Jot down a comment below and let the community hear what’s on your mind!

Anton Elfimov is a Data Analyst at Uploadcare, a file-system-as-a-service that does uploads, storage, and media processing for Web and mobile apps, so you can ship products faster and scale them painlessly. (Your mom says you should try it; she’s worried you’re working too much.)