[Journey] Building an iOS & Android App Empire

@nakamura how's the performance of the MBP M1 pro 16 GB, is 16gb ram enough, do you you ever run out of ram with emulator running and doing other tasks at the same time...? I'm planning to buy a MBP M1 pro 16gb 512gb,
 
@nakamura how's the performance of the MBP M1 pro 16 GB, is 16gb ram enough, do you you ever run out of ram with emulator running and doing other tasks at the same time...? I'm planning to buy a MBP M1 pro 16gb 512gb,
It is perfectly fine for me. Right now I am using a MBP M1 Pro with 16GB. There is no problem at all. Everything is smooth when coding, editing videos and so on. I think I will keep this Macbook for the next 2 years and then upgrade to the latest model with M5 Pro or whatever chip they will have then. But so far, mine is amazing!



Update:

This could be interesting for most of you.

Recently I found that the number of downloads that Meta and Google Ads report in their dashboard is wildly wrong.

Here are some numbers and examples:

18. February:

Downloads reported on App Store Connect Analytics through App & Web refer: 78
Downloads/conversions showing on Google Ads: 35

19. February:


Downloads reported on App Store Connect Analytics through App & Web refer: 85
Downloads/conversions showing on Google Ads: 40

And these numbers from App Store Connect Analytics are correct, because these numbers were 0 (!) when I didn't publish Google Ads.

Also, on App Store Connect, you are able to actually see where your downloads exactly come from, which is extremely useful:

Screenshot 2025-02-21 at 11.48.34.png


Screenshot 2025-02-21 at 11.48.21.png

So, whenever you ads on Meta, Google Ads, or somewhere else: Be aware that for iOS apps the download numbers are wrongly reported. Only Apple/App Store Connect will show you the real number, because its their platform, their operating system and they have all the correct analytical data.
 
Amazon closes its appstore.
In case you have apps there or didnt know that
 
Amazon closes its appstore.
In case you have apps there or didnt know that
Yeah I have apps, but they are shit anyway. I didn't even bother. I didn't even check my Samsung Galaxy, Huawei App Gallery, etc. account for one year
 
Quick question ! How do you manage to get IOS downloads without paying too much for downloads ? I have experimented Search Ads advanced i got downloads but they cost roughly 4$/install. There is no guarantee that the downloads you get will pay so is there any other way around ?
 
Quick question ! How do you manage to get IOS downloads without paying too much for downloads ? I have experimented Search Ads advanced i got downloads but they cost roughly 4$/install. There is no guarantee that the downloads you get will pay so is there any other way around ?
Search Ads is expensive, especially Advanced. Try Basic if needed. Otherwise, try Google Ads or Meta Ads. Which one gives you a lower CPI really depends on your niche.

Update:

Currently, I have focused on one app to increase the conversion rate and what can I say? I am more than satisfied. I spent more than a week to improve the paywalls and the onboarding process. Also, I increased the price of the one-time purchase from $19.99 to $24.99.

Have a look at this:

Screenshot 2025-02-25 at 14.05.43.png

The ARPU (average revenue per user) increased by 30%. Yesterday my app had a few hours downtime because of server issues, so normally it would be even higher (you can see the arrow went down a lot yesterday because of that)

From tomorrow, I will increase the price from $24.99 to $29.99. Then lets see how it goes. I will keep increasing the price to see how far I can go, how much the people are willing to pay.
 
Great man! How many plans do you offer? Monthly, annual and lifetime in the paywall? Or just two options?

And do you install the Meta and Google SDK in your apps or not? It's a bit complicated to do and increases the size of your app considerably, right?
 
Great man! How many plans do you offer? Monthly, annual and lifetime in the paywall? Or just two options?

And do you install the Meta and Google SDK in your apps or not? It's a bit complicated to do and increases the size of your app considerably, right?
Weekly, Monthly, Annual, Lifetime. But mostly Weekly and Lifetime in the main paywall.

Yes, I integrate Firebase SDK and Meta/Facebook SDK
 
What website do you use to do your app ASO ? and have you tried tiktok ads ?
 
Any update for your Revenue this month
Will come soon
What website do you use to do your app ASO ? and have you tried tiktok ads ?
I use AppFollow mostly. Yes, tried TikTok ads, but I felt like my ad creatives were not so good, thats why I didn't spend much
 
What percentage of your revenue comes from app store vs play store?
99%. At this point I didn't upload any new Google Play app for two years. However, I plan to rebuild my most successful iOS apps for Android later in this year, its something I really wanna do, but it takes time. So I hope AI will get even better asap to make the process faster. Right now I totally focus on iOS app, my mind is full of of ideas for new apps.
 
99%. At this point I didn't upload any new Google Play app for two years. However, I plan to rebuild my most successful iOS apps for Android later in this year, its something I really wanna do, but it takes time. So I hope AI will get even better asap to make the process faster. Right now I totally focus on iOS app, my mind is full of of ideas for new apps.
the paid ads section in the new bookis it the same as the old one or very different?
 
the paid ads section in the new bookis it the same as the old one or very different?
New one is more about iOS. Old one is more about Android. In the new thread is a bundle where you can get both
 
Update (and this will be a long one):

The earnings increased around 10-20% because I pushed a big update for one of my best apps. Basically improved the paywall and onboarding experience. Things like changing the word from "Purchase" to "Get Started" really helps.

Also, I don't know why or how, but one of my apps suddenly, out of nowhere got into the top charts in Ukraine. Never advertised there, nothing at all. Suddenly I saw a huge spike in downloads and purchases.

Earnings:

Admob: $4100
IAP: $15320


also there are other income streams from Adnetworks such as Appodeal, Applovin, Unity and also Meta Ads. Primarily I am using Admob tho.

Total: Around $19600-19800

Expenses:

Paid Ads: $2100

- Apple Search Ads Basic: $1000
- Apple Search Ads Advanced: $600

- Google Ads: $500

Other expenses:

- API: $550
- Upwork: $70


So the breakdown is: $16980

Why Upwork? I hired two guys to make screenshots for one of my apps. I let them both create screenshots and then make an A/B test on which one converts better.

API expenses increased, because somehow someone took control of my API key within 6 hours spent $200. Luckily I have a spending limit on this API key, otherwise it would be much, much higher. I will get into this in more detail below.

In February I tired Apple Search Ads Advanced and found it to be quite expensive. Maybe I didn't optimize it well enough, no idea. I will try more this month.

I also use Apple Search Ads Basic and have put the monthly spending to $500 each for two apps. The costs for Apple Basic are around 30% lower per install than Apple Search Ads Advanced.

However, Apple Search Ads Basic gives almost no insights on where and how they get the users to install the app.

I only used Google Ads a bit in February. On App Store Connect I took a deep dive into analytics and found out the actual numbers of installs I receive from Google Ads is much higher than Google Ads reports.

No kidding, I will have to sit down one entire day to analyze all the data (or let ChatGPT do it) and find a strategy to get a better CPI, and so on.

________________________________________________________

About the API problem, and this is very important:


It is super important you NEVER hardcode your API key into your app. Hackers will simply decompile your app and steal your API key. Don't be a noob, don't do it.

Now you think, I could just store my API key somewhere else (like on a hosting) and retrieve it when the app starts or when I make an API call through my app. This is also a bad idea because these hackers have tools to monitor the network requests (or whatever they do) and they will "catch" your API key whenever you make this network/API request.

Here is what I did and what also fucked me up. My setup was as following:

- Google Secret Manager
- Firebase Functions
- Keychain Manager
- Firebase App Check

So I would put the API key on Google Secret Manager (can be accessed through Google Cloud), then I would use Firebase function to retrieve the Google Secret when my app starts. However, because I use Firebase App Check, ONLY real devices would be able to retrieve the Google Secret (no simulators, no web apps, etc.). Then, it would save the Google Secret(API) to Apple's keychain manager and keep it there.

It was like this:

App Starts -> checks if it is a real device (App Check) -> fetches Google Secret (API key inside) -> saves to Keychain Manager

I thought this was a safe approach...and it worked for a long time and I didn't have any problems, until a few days ago. Either there was a problem with Firebase functions (maybe outdated or leak?) or my setup was bad.

So I changed my setup now. I only make server to server requests to the API and one request in my iOS app to call the initial function. Example:

iOS function -> server function -> inside this server function I call another server function to the Google Secret.

Also, I added rate limiting. A user can only make a specific amounts of requests per minute per IP. Lets see how this will play out.

By the way, I did all of this simply with Claude 3.7.

Keep in mind, you only have to deal with this shit when your app gets a lot of exposure. Means, you only attract these bad people if you already get a lot of organic downloads. The more attention you get, the more you are being targeted. If no one knows your app exists, no one will come after you.

___________________________________________________________

Whats next?


Yesterday and the day before I spent almost all day creating creatives for Meta Ads and Google Ads. I will try out Meta Ads and test the creatives.

Right now, I am about to update most of my apps.

After this, I will create/update my companies websites to include all apps and make it more attractive. The reason why is as following: I will contact various companies like Nvidia, Microsoft, Tencent, Alibaba, and so on, to enroll in their startup program. Of course, I will keep you guys updated on this, and also on the outcome. I am not sure about the outcome tho. All of my apps, and so on are self-funded. I don't have any investors.

If you guys know startup programs, etc. please let me know and I will give it a shot.
 
Update (and this will be a long one):

The earnings increased around 10-20% because I pushed a big update for one of my best apps. Basically improved the paywall and onboarding experience. Things like changing the word from "Purchase" to "Get Started" really helps.

Also, I don't know why or how, but one of my apps suddenly, out of nowhere got into the top charts in Ukraine. Never advertised there, nothing at all. Suddenly I saw a huge spike in downloads and purchases.

Earnings:

Admob: $4100
IAP: $15320


also there are other income streams from Adnetworks such as Appodeal, Applovin, Unity and also Meta Ads. Primarily I am using Admob tho.

Total: Around $19600-19800

Expenses:

Paid Ads: $2100

- Apple Search Ads Basic: $1000
- Apple Search Ads Advanced: $600

- Google Ads: $500

Other expenses:

- API: $550
- Upwork: $70


So the breakdown is: $16980

Why Upwork? I hired two guys to make screenshots for one of my apps. I let them both create screenshots and then make an A/B test on which one converts better.

API expenses increased, because somehow someone took control of my API key within 6 hours spent $200. Luckily I have a spending limit on this API key, otherwise it would be much, much higher. I will get into this in more detail below.

In February I tired Apple Search Ads Advanced and found it to be quite expensive. Maybe I didn't optimize it well enough, no idea. I will try more this month.

I also use Apple Search Ads Basic and have put the monthly spending to $500 each for two apps. The costs for Apple Basic are around 30% lower per install than Apple Search Ads Advanced.

However, Apple Search Ads Basic gives almost no insights on where and how they get the users to install the app.

I only used Google Ads a bit in February. On App Store Connect I took a deep dive into analytics and found out the actual numbers of installs I receive from Google Ads is much higher than Google Ads reports.

No kidding, I will have to sit down one entire day to analyze all the data (or let ChatGPT do it) and find a strategy to get a better CPI, and so on.

________________________________________________________

About the API problem, and this is very important:


It is super important you NEVER hardcode your API key into your app. Hackers will simply decompile your app and steal your API key. Don't be a noob, don't do it.

Now you think, I could just store my API key somewhere else (like on a hosting) and retrieve it when the app starts or when I make an API call through my app. This is also a bad idea because these hackers have tools to monitor the network requests (or whatever they do) and they will "catch" your API key whenever you make this network/API request.

Here is what I did and what also fucked me up. My setup was as following:

- Google Secret Manager
- Firebase Functions
- Keychain Manager
- Firebase App Check

So I would put the API key on Google Secret Manager (can be accessed through Google Cloud), then I would use Firebase function to retrieve the Google Secret when my app starts. However, because I use Firebase App Check, ONLY real devices would be able to retrieve the Google Secret (no simulators, no web apps, etc.). Then, it would save the Google Secret(API) to Apple's keychain manager and keep it there.

It was like this:

App Starts -> checks if it is a real device (App Check) -> fetches Google Secret (API key inside) -> saves to Keychain Manager

I thought this was a safe approach...and it worked for a long time and I didn't have any problems, until a few days ago. Either there was a problem with Firebase functions (maybe outdated or leak?) or my setup was bad.

So I changed my setup now. I only make server to server requests to the API and one request in my iOS app to call the initial function. Example:

iOS function -> server function -> inside this server function I call another server function to the Google Secret.

Also, I added rate limiting. A user can only make a specific amounts of requests per minute per IP. Lets see how this will play out.

By the way, I did all of this simply with Claude 3.7.

Keep in mind, you only have to deal with this shit when your app gets a lot of exposure. Means, you only attract these bad people if you already get a lot of organic downloads. The more attention you get, the more you are being targeted. If no one knows your app exists, no one will come after you.

___________________________________________________________

Whats next?


Yesterday and the day before I spent almost all day creating creatives for Meta Ads and Google Ads. I will try out Meta Ads and test the creatives.

Right now, I am about to update most of my apps.

After this, I will create/update my companies websites to include all apps and make it more attractive. The reason why is as following: I will contact various companies like Nvidia, Microsoft, Tencent, Alibaba, and so on, to enroll in their startup program. Of course, I will keep you guys updated on this, and also on the outcome. I am not sure about the outcome tho. All of my apps, and so on are self-funded. I don't have any investors.

If you guys know startup programs, etc. please let me know and I will give it a shot.
Thankyou Sir
 
Back
Top