I was completely wrong about repeat purchases
When I started building, I assumed store owners were failing because their products just weren’t good enough. I figured if the item was worth buying, the customer would just come back to the URL on their own. I was wrong.
Last week, I spoke with a founder in the wellness space who is doing $80,000 a month. She told me she spends roughly $22,000 of that on acquisition alone.
That is twenty-five percent of her revenue sent straight to ad platforms. She is not building a business, she is just paying rent for the privilege of keeping her store open.
The cycle of paid acquisition
Most brands operate in a cycle that feels like progress but is actually just maintenance. You pay Facebook to show an ad. The user clicks and lands on your mobile site.
They browse a bit, maybe add a serum or a hoodie to the cart, then bounce because a text message came in. Your ad spend is gone.
You then pay for a retargeting ad to bring that same person back. It is a slow, expensive grind that keeps you stuck at a specific revenue ceiling.
Why mobile sites fail the repeat buyer
Your mobile website is built for discovery, not loyalty. It is a public square where everyone is shouting for attention.
Browsers are slow, they forget your login, and they don’t have a persistent home on a customer’s device. You are relying on email open rates that hover around twenty percent.
If you aren’t in the pocket of your customer, you are competing with every other notification in their feed. It is a losing battle.
The before and after of customer ownership
Imagine the difference in how you interact with a customer based on where they live on the phone. The delta in conversion between a web visitor and an app user is often three to five times higher.
Before you shift, you are a browser tab. After you shift, you are a destination.
MetricMobile WebsiteNative AppLoading SpeedVariableInstantCustomer AccessBrowsers/AdsDirectRetentionLow/Email-basedHigh/Push-basedCost per VisitPaid/VariableZero
The math of the rent trap
Let us look at a standard fashion store moving from fifty thousand monthly visitors to fifty-five thousand. If you rely on mobile search, your cost to acquire those extra five thousand people is fixed.
You are paying a toll booth operator every time you want to grow. You have no direct line to the people who already paid you last month.
This creates a business that is fragile. If the ad algorithm changes or costs spike, your profit vanishes overnight.
Building your own asset
Owning your traffic means you can send a message at zero cost. When you have a new drop, you don’t need a Facebook campaign to inform your best customers.
You just send a notification. This isn’t about hype, it’s about basic utility for the user.
An app keeps your brand icon on their home screen permanently. You stop fighting for relevance and start existing in their daily life.
-
You stop bidding against competitors for your own customers.
-
Your push notifications see open rates far above email.
-
The customer stays logged in forever, removing friction.
-
You gain data accuracy that cookies no longer provide.
-
You build an asset that increases your overall company valuation.
The truth about the transition
I am not saying you should turn off your ads tomorrow. That would be financial suicide for most growing brands.
I am suggesting that you stop viewing the app as a marketing cost. View it as a way to lower your dependency on the rent you pay to external platforms.
Every customer you move to an app is a customer you no longer have to pay to re-acquire. That is the only real growth path left in this market.
The most expensive customer is the one you have to buy a second time through an ad network.
Takeaway
Stop looking at your mobile conversion rate in isolation and start looking at how much you spend to keep that conversion alive. Go to your Shopify dashboard today and check the percentage of sessions that come from repeat users on mobile vs desktop. If your repeat mobile traffic is lower than your repeat desktop traffic, you have a leaky bucket you need to fix.