How This Brand Went From $14,347/month to $110,523/mo in 107 Days with Google Ads
I’ve worked with +10 different brands during this last year of 2023.
This one was one the most exciting accounts I’ve had the pleasure to work with this year. Everything’s a lot easier when you’re marketing a good product with a good team.
With that said, I started working with this account mid-October 2023.
This is what the account looked like by the end of October.
October 2023 Results
Just 3 months later, we had scaled this account to more than $110,000 in revenue per month while…
Results 107 days later
Increasing ROAS from 214% to 296%
Lowering CPA from $31.24 to $20.23
All while simultaneously reducing the number of conversions from branded search terms from 49% to 31%.
Curious to learn how we did it?
In this case study, I’ll walk you through the step-by-step process behind this account’s journey from $14,347/month to $110,523/mo.
Account Audit: What Are We Working With?
When I start working with any new e-commerce account, I begin by auditing the account to understand what we’re working with.
Here’s what we’re looking at in this initial audit.
Conversion tracking
Audiences
Product feed
Product performance
Account structure
Then, based on our findings, we’ll plan the next steps for the account.
Building the account’s foundations.
Optimizing existing and new campaigns.
Scaling the account.
Let’s get to it.
Conversion Tracking
If there’s one thing that needs to be done absolutely right, that’s conversion tracking.
There are a few things we need to cover to make sure everything is working properly.
Are conversions triggering when they’re supposed to?
Are enhanced conversions being recorded?
Are the main conversions properly set to ‘Primary’?
After a brief analysis, we uncovered a few issues.
There were two ‘Purchase’ tags installed. In other words, some conversions were duplicated.
None of the conversion tags had enhanced conversions enabled.
Basically, this happened because these tags were installed via Google Tag Manager using two different accounts.
Since this website was built on Shopify, we:
Migrated conversion tracking to Shopify’s native integration.
Were able to easily enable enhanced conversions.
Audiences: More Than Just Retargeting
One of the most common mistakes business owners make is that they underestimate the power of audiences in Google Ads.
Mostly, because they assume their only purpose is to use them as remarketing audiences.
But there’s more.
The first thing we did was connect Klaviyo to the Google Ads account and sync an audience to auto-populate every day with all our customers.
These can be used in Performance Max campaigns as audience signals.
These can be used to provide signals for campaigns using smart bidding strategies to optimize performance.
So you don’t want to miss out on these.
The next thing was to make sure the Google Tag was properly installed and ensured we were able to run dynamic remarketing ads.
In short, we needed to make sure our Google Tag was capturing dynamic event parameters to power our dynamic remarketing campaigns.
To do so, you can go to “Tools & Settings” > “Audience Manager” > “Your Data Sources” > “Google Ads tag”.
Once we migrated our tags to Shopify instead of Google Tag Manager, we started capturing these parameters clearly.
Product Feed: The Foundation of E-Commerce Accounts
The product feed is arguably the most important thing you want to get right in any e-commerce campaign on Google Ads.
Since Shopping and Performance Max campaigns rely heavily on the feed’s data for multiple purposes, optimizing the feed goes a very long way in making sure we get the best possible results.
As I audited the account, I uncovered multiple issues.
This brand was using two different (paid) feed management tools simultaneously. This caused a series of issues including:
The product titles were poorly optimized with no structure at all. The brand simply included the product’s name but left out important attributes such as size, material, or even the brand name.
The brand was using no custom labels to organize their feed.
Lastly, even though some of the brand’s top-sellers were on sale, these promotions weren’t reflected in the feed.
This was low-hanging fruit we were able to fix quickly to turn the account’s performance around. In less than a week, we:
Removed one of the feed management tools, saving the brand some money in the process.
Fixed all disapproved products.
Created 3 different custom labels.*
Optimized product titles by following a simple structure: [product name] - [size] + [material] + [custom label 1] + [brand name]
Added ‘sale_price’ attribute to the feed in order to show the ‘sale’ tag in our product ads.
*we’ll cover the different custom labels in the next chapter “product performance”.
With these simple changes, I was sure we could improve performance for our Standard Shopping and Performance Max campaigns.
Product Performance: The 80/20 Rule
From my almost 10 years of experience, I’ve realized that for most brands, 80% of the sales often come from 20% of the products.
So the next step in our audit was to uncover which products usually sold the most and if our budget allocation was working in our favor to push these products.
Here’s what we found.
There was one product category that was responsible for almost 50% of the sales. It also only accounted for about 20% of the Google Ads account’s spend.
One specific product collection was responsible for 30% of the sales at a very profitable rate.
Everything else was pretty even.
So to fix this, we knew we had to:
Aggressively push more budget to the top-selling product category.
Create different custom label:
With these custom labels, we could now easily see performance for the different collections, selling rates, and price ranges, and allocate budget accordingly.
Account Structure: Laying the Foundations
Once we had a well-structured feed and had taken care of the basic account settings, it was time to get our hands dirty.
So we started laying the foundations for our first campaigns – what I call the core campaigns in any e-commerce account
In short, these 3 simple campaigns will ensure we’re targeting all three different stages of our buyer funnel: cold traffic, warm traffic, and hot traffic.
A standard shopping campaign targeting all products in our feed, except our top-selling category.
A Performance Maxcampaign targeting the top-selling product category exclusively (using the custom labels we created earlier)
A search campaign targeting branded keywords.
Standard Shopping
Even though more than +60% of today’s campaigns on Google are Performance Max, I still believe Standard Shopping plays an important role in e-commerce accounts.
They’re better at new customer acquisition.
They provide more data when it comes to search terms.
They don’t focus as much on remarketing.
They can work really well together with Performance Max.
So the first step was launching a shopping campaign targeting all different products, broken down by category into their own respective ad groups.
For new accounts, I tend to launch this campaign alone to collect some data and find our top-performers before moving them to a new Performance Max campaign.
However, in this case, we already knew what our top-performing category was so we were able to immediately move it into its’ own Performance Max campaign.
Performance Max: Top-Sellers
As mentioned before, there was one particular product category that accounted for 50% of this brand’s total sales.
However, only around 15% to 20% of the budget in the account was allocated to these products.
This was a huge mistake – and one I see very often in a lot of accounts.
So we launched a Performance Max campaign targeting this product category exclusively. This would allow us to:
Increase conversion rates by focusing on proven winners.
Lower cost per conversion.
Increase ROAS.
Target users across the entire funnel stage.
I’d argue this simple change was one of the big factors for this account’s improvement in performance.
Search: Branded Keywords
This client operates in a very competitive niche.
There are at least 7 competitors selling very similar products and, most often, it turns into a race to the bottom where each competitor will try running bigger promotions to capture new customers.
So more than capitalizing on existing brand search terms, we wanted to protect our brand keywords.
So we launched a simple search campaign to do exactly that.
Optimising Campaigns: Step-By-Step
Launching the campaigns was just the first step. Then, we needed to optimize them.
There were 5 main areas we focused on:
Improving bids
Adding negative keywords
Excluding poor performing products
Optimizing assets (copy, images, etc)
Optimizing asset groups (Performance Max)
Bid Strategies for E-Commerce
Since this account already had some data, it was easy to start improving our bidding strategy.
Basically, we want to make sure each campaign has enough data for Google’s algorithm to work as well as possible.
Once we have at least close to 25-50 conversions in the last 30 days in the same campaign, we’ll try moving it to target ROAS. In this case, we knew from previous data that our best-selling category converted at around 300% ROAS. So we:
Set a target ROAS at around 250% to make sure our campaign wasn’t restricted by bids.
Gradually increased bids over the coming weeks until we got to around 320% target ROAS.
We applied the same logic for all other campaigns.
Adding Negative Keywords
Another one of the most common mistakes I see brand owners make is wasting (a lot) of time with negative keywords.
They’ll usually go into their campaigns, look at the search terms report, and manually select which keywords to add as negatives. Oftentimes, they’ll add negative keywords one by one – even for long tail keywords.
The solution to avoid wasting time with this task?
Shared negative keyword lists.
Here are some of the lists we created:
Brand
Always Exclude
Competitors
Careers
Adult
Deals
DSA
Education
Websites
Travel & Real Estate
Other
Some of these keywords you can add without even looking at the search terms report because you’ll never want to rank for search terms that include these keywords. For example, “free”, “hiring”, “quiz”, “cartoons”, and so on.
Excluding Poor Performing Products
Once the campaigns have accrued enough data, the next step is to figure out which products are profitable and which ones aren’t.
This is easy to do either by:
Accessing the ‘Listing Groups’ tab in each Performance Max campaign.
Accessing the ‘Product Groups’ tab in Standard Shopping campaigns.
These two products are significantly under-performing compared to other products so it might make sense to exclude them
Typically, I’ll look for products that have spent at least 3x-5x our target CPA. If they didn’t perform above our targets, we’ll exclude them.
Note: at a later stage, we may want to consider adding these products to a separate standard shopping ‘catch-all’ campaign with a with target ROAS.
Optimizing Performance Max Assets
Very often, I see advertisers adopt a “set it and forget it” approach to Performance Max.
But just because it’s a more automated campaign type, it doesn’t mean we shouldn’t be updating assets and improving the campaign in any way we can.
One of these ways is to rotate assets such as images, headlines, or descriptions that aren’t performing well. Even though Performance Max doesn’t share a lot of data, we can still see which assets have the best performance (according to Google).
So we’ll remove anything that’s labelled as ‘poor’ and add new assets consistently over time.
Optimizing Asset Groups
Last but not least, we’ll focus on optimizing existing asset groups.
We did this this in multiple different ways.
Test feed-only vs full-build asset groups.
Create different asset groups for audience segments that are performing well.
Create different asset groups for different sub-categories (search terms).
Add new videos and images.
Feed-Only vs Full-Build
One of the first tests we ran to improve performance was to test feed-only asset groups against full-build asset groups.
In short, we removed all assets from the asset group except the product feed. Images, videos, and copy were all removed.
In one of our first tests, feed-only asset groups significantly outperformed full-build asset groups.
Different asset groups for good-performing audience segments
Another simple way to improve performance is to find an audience segment that’s performing well and creating a dedicated asset group (with relevant images, copy, videos) to that particular audience.
It’s an easy way to improve performance.
In this particular case, we could see that ‘Interior Design & Decorating Services’ was converting relatively well and was a unique audience for our product. So we created new assets to target these users.
Search Term Sub-Categories
Another similar way to improve performance is to look at the search terms the Performance Max campaigns are targeting.
If there are any sub-categories that are relevant but seem like they could have their own dedicated asset group, then it may be a good idea to isolate these.
In this case, since the campaign was already specifically focused on one single product, there was nothing we needed to do here.
Add New Images & Videos
Based on the results above, we could easily spot a few trends and different audiences that we could easily build some new assets for and target these users almost exclusively.
And that’s exactly what we did.
As you can see in the image below, this led to a big increase in results.
Scaling the Account: Going From $14,000 to $110,000
Then, the last step needed was to scale the account.
There were several steps we took in order to scale the account.
Scale horizontally by entering new markets.
Scale horizontally by adding new campaigns.
Scale vertically by increasing spend gradually.
Scale Horizontally: New Markets
The campaigns we had initially launched were targeting the US exclusively.
A simple way to scale would be to replicate our most successful campaigns into new markets such as Canada and the United Kingdom.
We started with branded campaigns and slowly expanded to Performance Max campaigns.
Scale Horizontally: New Campaigns
We launched two new campaigns to target keywords higher up in the funnel and expand our search term coverage.
Dynamic search ads (DSA): this would target all of our product collections and focus on keywords we might’ve otherwise missed.
Non-brand exact match keywords: focusing exclusively on our top-performers.
Launched new Performance Max targeting different product categories and collections that were performing well.
The latter would reach an average +300% ROAS within a few weeks and became crucial to scale the account.
Scale Vertically
Lastly, we raised our best-performing campaigns’ budget by 15%-20% every 3-4 days consistently over time.
Remember, slow and steady wins the race. We didn’t want to increase our budgets too quick as this would potentially hurt our performance, so we were careful while scaling.