How to Monetize Your Flutter App: Ads, In-App Purchases, and Subscriptions

Sdílet
Vložit
  • čas přidán 27. 08. 2024

Komentáře • 113

  • @fatpen9731
    @fatpen9731 Před 9 měsíci +9

    Thank you so much for giving this for free to the community, you will save a lot of time for so many devs. I hope you start making more Flutter content

    • @1ManStartup
      @1ManStartup  Před 9 měsíci +2

      More flutter content will be coming soon!

  • @RahulPradipPatil
    @RahulPradipPatil Před 9 měsíci +9

    This is Pure Gold :)
    Thank you so much..

  • @speakup8721
    @speakup8721 Před 11 dny

    This tutorial saved me. Super loaded. I wish i can subscribe a thousand times. God bless you sir

  • @NoOne-vz2pb
    @NoOne-vz2pb Před 8 měsíci +3

    Ah, man..can't thank you enough. Well made, in depth tutorial for BOTH ios and android..thank you, thank you

    • @1ManStartup
      @1ManStartup  Před 8 měsíci +1

      You're welcome, glad you're finding it useful!

  • @rasmustchristensen
    @rasmustchristensen Před 9 měsíci +3

    Thank you for making this available

  • @ergi5664
    @ergi5664 Před 9 měsíci

    My fav flutter dev 😇,Greetings from Albania

  • @zeroomprods
    @zeroomprods Před 9 měsíci

    Thanks dude. You match my vibe probably I would start working on my previous abandoned project ABCD Game. I learnt lots from your previous playlist I appreciate you putting this playlist on youtube.

    • @1ManStartup
      @1ManStartup  Před 8 měsíci +1

      Nice I remember your game, hopefully this can help you make some $$ from it!

  • @alexl150
    @alexl150 Před 9 měsíci

    First of all this is some great stuff, this is exactly what I needed.
    Second, I haven't tried on a simulator, but build for Mac and you can complete in app purchases instead of loading onto a physical phone.

    • @1ManStartup
      @1ManStartup  Před 9 měsíci

      Good to hear, that will be useful for others testing.

  • @uberjoe-08
    @uberjoe-08 Před 7 měsíci

    this is the best video on youtube , thank you so much

  • @mechul419
    @mechul419 Před 8 měsíci

    I did not watch yet but I will use these informations today. Thank you !

  • @ialh1
    @ialh1 Před 3 měsíci

    Thank you. it is very useful.

  • @Sobitandra
    @Sobitandra Před 7 měsíci

    You are really doing a great thing.
    Thanks for such content.

  • @nikhilkukreja8498
    @nikhilkukreja8498 Před 9 měsíci +1

    Thank you so much ❤

  • @carloscampos7709
    @carloscampos7709 Před 8 měsíci

    Great tutorial! Thanks a lot

  • @berkay.ertugrul
    @berkay.ertugrul Před 9 měsíci

    what a great content, tnx a lot 🙌

  • @Inandoutpk
    @Inandoutpk Před 6 měsíci

    Thank you so much, Sir ❤❤❤

  • @ialh1
    @ialh1 Před 3 měsíci +1

    Thanks!

  • @sergiosandoval3821
    @sergiosandoval3821 Před 3 měsíci

    Thank you, is awesome!!!!

  • @how.to.learn.English
    @how.to.learn.English Před 6 měsíci

    Thank you!

  • @RamdanCode
    @RamdanCode Před 7 měsíci

    "Thank you so much for this incredibly insightful tutorial! 🚀 Your step-by-step guide on monetizing Flutter apps with ads, in-app purchases, and subscriptions is a game-changer. The clarity in your explanations and the practical examples make the learning process smooth and enjoyable. 🌟 I appreciate the effort you put into breaking down the complexities, truly catering to both beginners and those looking to enhance their skills. Your expertise shines through, and I'm excited to implement these strategies in my Flutter projects. Kudos to you and your fantastic channel! 👏🎉 #FlutterMonetizationMastery"

  • @manojperumarath7570
    @manojperumarath7570 Před 2 měsíci

    Since we are not passing user id in flutter code, how does backend script knows the user id of the current subscribing user?

    • @1ManStartup
      @1ManStartup  Před 2 měsíci

      That should all be explained starting at 6:16:48

  • @arunkashyap3527
    @arunkashyap3527 Před 4 měsíci

    Hello sir i am showing banner ad in my app in the bottomnavigation bar but in my app there is a drawer which have items and when user clicks on that then it navigates the user to specific tab view in home screen and in home i am showing banner ad in bottom navigation bar but it shows a errror like adwidget is already in state

    • @1ManStartup
      @1ManStartup  Před 3 měsíci

      It sounds like you are trying to load a banner ad when one is already loaded?

  • @IshaManiTripathi
    @IshaManiTripathi Před 8 měsíci +1

    Hey, Actually in my apple developer account, in In App Purchases, I have only 2 options Consumable and Non-Consumable but you have Auto renewable and non renewable subscriptions, why so? Please help.

    • @1ManStartup
      @1ManStartup  Před 8 měsíci +2

      App Store Connect has been updated and now there is In-App Purchases tab for all non subscription purchases (which you are referring to). Now subscriptions, both auto and non renewable are in the tab Subscriptions.
      Other than the separate tab the rest seems to be about the same.

  • @hamedabbasi955
    @hamedabbasi955 Před 3 měsíci

    I can not return the previously purchased subscription in ios

    • @1ManStartup
      @1ManStartup  Před 3 měsíci

      Make sure you have setup the purchases in App Store Connect and make sure the app is linked to the app store connect correctly.
      Are you able to make purchases in the first place?
      Do you see any specific errors?

  • @prandev490
    @prandev490 Před 7 měsíci

    Thank you! Flutter Jesus.

  • @IshaManiTripathi
    @IshaManiTripathi Před 5 měsíci

    Hii, actually I have updated the cost of a subscription in app store, and in my debug built it shows the updated amount but when I run the live app from app store it shows the previous amount of the subscription in the pop up which comes from apple but in app it shows the updated amount and also when I pay the updated amount is deducted from my account but the pop up from apple which has subscribe button shows the previous amount only.. why is it happening?

    • @1ManStartup
      @1ManStartup  Před 5 měsíci

      I'm not sure, that doesn't make sense. If your pulling the price from apple and it's showing correctly in some areas but not all, I'd check to make sure you're not hard coding the price. Alternatively, if you just updated it maybe there is a small delay in Apple updating the price, but that seems less likely.

  • @numicorn_app
    @numicorn_app Před 7 měsíci

    Hello sir, I have made the storekit settings, but it keeps sending me to the payment receiving screen, I keep making payments again.

    • @1ManStartup
      @1ManStartup  Před 7 měsíci +1

      So you are seeing the paywall & are able to make the payment for the subscription? If that's the case, and you're then still seeing the paywall, either you aren't updating your database (firebase in the video) with the new subscription, or you aren't listening/ checking the subscription status in the app

    • @numicorn_app
      @numicorn_app Před 7 měsíci

      Thank you, once I launched the app with Xcode the payment process issue was resolved. How can I check whether monthly subscription users are making regular payments every month?@@1ManStartup

  • @user-cz5cy8ud8m
    @user-cz5cy8ud8m Před 5 měsíci

    Hello! I'm really thankful for your lecture! At the 4:07:53 mark, it shows me "There are no upgrades at this time," even though I've definitely updated it on App Store Connect (I've already released the app before). Is there any point that I might have missed? It does say "Drafts"...

    • @1ManStartup
      @1ManStartup  Před 5 měsíci

      Have you tried testing on a physical device? What is saying "Drafts". The no upgrades is meant to show if the product ids you define in the app can't be found in the stores.

    • @user-cz5cy8ud8m
      @user-cz5cy8ud8m Před 5 měsíci

      @@1ManStartup I just got it! thank you! could I ask you? do you think it's worth using Revenuecat? I don't know if I will decide which one. thank you!

  • @tuyennguyen-bi3dn
    @tuyennguyen-bi3dn Před 7 měsíci

    thank for the great video. when I buy a consumer product, Does Apple send notification to my server?

    • @1ManStartup
      @1ManStartup  Před 7 měsíci

      Yes, the setup for that is covered in part 4

  • @user-bt5mw6yj8x
    @user-bt5mw6yj8x Před 5 měsíci

    hi im getting xcode environment instead of sandbox why so please help

    • @1ManStartup
      @1ManStartup  Před 5 měsíci

      Have you setup Store kit I think that's what your referring to 4:16:58

  • @Martial_Monkam
    @Martial_Monkam Před 6 měsíci

    Hello I am coding an application and I have to submit the user to a subscription, my question is how to check the status of the user when he logs in and direct him to a free user screen otherwise see a screen of premuim user.

    • @1ManStartup
      @1ManStartup  Před 6 měsíci

      The video shows basically how you can do this except instead of showing a different screen it's showing a different widget.
      But if your keeping track of the user's subscription status on your backend database then you'd simply check that value when the user logs in and show the different screen based on that value.

    • @Martial_Monkam
      @Martial_Monkam Před 6 měsíci

      I'm using Firebase in backend my question is how to see or get the subscription status of a user when they log in.

  • @yap9660
    @yap9660 Před 2 měsíci

    would it possible to have dynamic pricing for the in-app purchases? As I have a service which it has different pricing depending on the selection of the user

    • @1ManStartup
      @1ManStartup  Před 2 měsíci

      Yes this should be possible, I haven't set this up myself but the first thought that comes to mind is to have several different products which have the different prices. For example premium_99 premium_299 - then you can filter out the products based on the business logic around which price you want to show.
      Likely there are better ways, this is just a first thought.

    • @yap9660
      @yap9660 Před měsícem

      @@1ManStartup Thank you for your reply.
      Considering that I have multiple selection. For example I have multiple categories:
      1) 0 - 100 km
      2) 1day to 100 days
      Selection 1 and 2 are highly dependent, based on the distance and the duration of the selection, we will have dynamic pricing. This mean I will need to create more product on the playstore.
      I have tried to use 3 product, base-product, distance, and duration, and increment the count of the quantity when offering to user. But apparently the packages only allow to select one product at a time. This is causing some trouble.

    • @1ManStartup
      @1ManStartup  Před měsícem

      @@yap9660 my thinking would still be to create a product for each specific potential outcome. Then maybe you have 10 product ids, in the app's logic the user will make selections which always narrow it down to one id.

    • @1ManStartup
      @1ManStartup  Před měsícem

      Or simplify the pricing structure, if it's a subscription charging monthly or yearly is more typical than letting the user select an amount of days.

    • @yap9660
      @yap9660 Před měsícem

      @@1ManStartup Thanks you for your recommendation. It is very helpful

  • @user-zp9mz7sj9r
    @user-zp9mz7sj9r Před 7 měsíci

    hi brother that's every thing is just incredible thanks a-lot great effort but i have question in IOS i implemented everything works fine on testing with storekit. but now i uploaded my app on test flight and products are not coming. I think the issue is might be agreement and bank details. After accepting and adding that the products will come on test flight? please let me correct if any other thing require for that?

    • @1ManStartup
      @1ManStartup  Před 7 měsíci

      Yes the agreements and banking are most likely your issue, I know the agreement needs to be accepted to have the In app purchases setup completely.

  • @echofloripa
    @echofloripa Před 8 měsíci

    I noticed that the Google mobile ads package on the video is from 2021, so my questions is if how much of this is still valid for admob and also for flutter.

    • @1ManStartup
      @1ManStartup  Před 8 měsíci +1

      There are some differences, you can view the change log here. The video uses version 0.13.4 pub.dev/packages/google_mobile_ads/changelog
      This is still the package I would recommend using today to add Google ads to an app.

    • @echofloripa
      @echofloripa Před 8 měsíci

      @@1ManStartup sure, it's the official Google package for admob I guess.

  • @IshaManiTripathi
    @IshaManiTripathi Před 7 měsíci

    Hii, can you please tell me in the developer account of app store connect where I can see the total no of subscription transaction being processed each month and related details? I have gone through some answers but I can't find that sales and trends screen and other sub folders

    • @1ManStartup
      @1ManStartup  Před 7 měsíci

      In App Store Connect you can see the subscriptions under state in the Subscriptions trends tab. appstoreconnect.apple.com/trends/states
      There is also the Summary and Retention with subscription specific info

  • @jackanderson300
    @jackanderson300 Před 5 měsíci

    Sir Thanks for this cool video,Need one suggestion
    In my app their is consumable products .When app uninstall it cant be restore.So how to manage this with our server?
    like once user buy consumable product then we will update that with our server and when user install app again and do login then we will get that consumable product using user_id.
    Is it correct way for consumable product?Please help.

    • @1ManStartup
      @1ManStartup  Před 5 měsíci

      Yes that's the way to do it, which is what's shown in the video

  • @afnan9108
    @afnan9108 Před 9 měsíci

    storekit_duplicate_product_object, There is a pending transaction for the same product identifier
    What is the reason for this error

    • @1ManStartup
      @1ManStartup  Před 8 měsíci

      It could be that you're trying to create 2 products with the same product id. The product Ids have to be unique. When/ where are you seeing the error?

    • @afnan9108
      @afnan9108 Před 8 měsíci

      android works fine but in ios when i make restrore purchase my purchases gets looped and if i make a purchase again i get duplicate error@@1ManStartup

    • @1ManStartup
      @1ManStartup  Před 8 měsíci

      @afnan9108 Sorry for the delay I didn't get notified about this comment. Are you having a similar issue to what's happening around 4:50:00 in the video?

  • @user-di9uc1ee3h
    @user-di9uc1ee3h Před 8 měsíci

    hey, what about his error could not verify the purchase because of error GaxiosError: Your request is invalid for this subscription purchase.? Help please

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      status 400 bad state

    • @1ManStartup
      @1ManStartup  Před 8 měsíci

      This probably means the request data your sending is incorrect. What is throwing the error? Might be as simple as your auth tokens are expired.

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      @@1ManStartup
      message: 'Your request is invalid for this subscription purchase.',
      domain: 'androidpublisher',
      reason: 'subscriptionInvalidArgument'
      status 400. I tried with real device and simulator both.

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      @@1ManStartup at Gaxios._request (/workspace/node_modules/gaxios/build/src/gaxios.js:129:23)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async JWT.requestAsync (/workspace/node_modules/google-auth-library/build/src/auth/oauth2client.js:368:18)
      async GooglePlayPurchaseHandler.handleSubscription (/workspace/lib/google-play.purchase-handler.js:76:30)
      async /workspace/lib/google-play.purchase-handler.js:59:21 {

  • @Inandoutpk
    @Inandoutpk Před 6 měsíci

    Thanks Again Sir, Can you answer my question please, So I’m building an app and the app data is stored locally in sqflite for which I didn’t needed a remote db.
    But now as I need to implement IAP to implement premium vs free access to the app in which I need to hide some functionalities for free user.
    For that I see that I need to connect app with Firebase and use annunymous auth . For keeping track of free and paid user.
    My question is here for my app functionality internet is not necessary but no as I’m dependednt on Firebase for checking IAP purchases to decide if user is free or paid.
    Is that soo? Or can Implement some mechanism to check for free vs paid user without internet by storing user payement status locally ??? Please guide me
    (purchase is NON-CONSUMABLE)

    • @1ManStartup
      @1ManStartup  Před 6 měsíci

      Firstly, it will not be possible to make an in-app purchase without internet. So you app will need an internet connection to make successful purchases.
      However, you don't necessarily need to use firebase or even a backend for that matter. You can instead rely on the "restore purchase" feature.
      If you went that route, it'll be harder to confirm that a user actually purchased the product because you wouldn't have a backend to confirm the purchases. But if you don't really care about that then you could have them make the purchase on device & save a status locally. Then later if they redownload the app or use a different device they can use the restore purchase feature from google/apple which you would then need to handle the update locally.
      I wouldn't really recommend this, but it's an option. Alternatively, you can also look at RevenueCat which could handle the backend/ purchase confirmation for you.

    • @Inandoutpk
      @Inandoutpk Před 6 měsíci

      @@1ManStartup
      Firstly thank you so much for replying Sir, It means a lot !!! ❤️
      And I think I’ll go without using Firebase and any remote db as when a user make purchase I’ll store the flag locally and will retriev it to give access to him for paid features
      And when he changes devices he can then use restore which will again saves his paid flag in locally.I think it’s better for now.
      AndI wanted to know is this matter really serious to confirm purchases for this app. As it’s not that much big app. Just small app with some audio content like 20 files with 2,3 test that user takes.

    • @1ManStartup
      @1ManStartup  Před 6 měsíci

      @@Inandoutpk Yes that's a good idea, you can always switch to the remote db later if you decided to, and basically use your local one as an offline cache.
      The matter isn't too serious, the worst thing that'll happen is someone can set their version of the app to have the premium feature without paying for it. It's kind of unlikely people will do this, but just know that an on device database can always be changed by the user if they know how. BUT 99.9% won't know how.

    • @Inandoutpk
      @Inandoutpk Před 6 měsíci

      @@1ManStartup yeah, that’s why I have used Clean Architecture because I know the client will later ask for Remote db for storing user data,later
      They just don’t want that now.
      And thanks for your knowledgeable answers.
      I’m turning on notifications for this channel now. :))

  • @mohfatkurrozi4069
    @mohfatkurrozi4069 Před 3 měsíci

    Please update with new videos

    • @1ManStartup
      @1ManStartup  Před 3 měsíci

      I don't have plans to make an updated series, if you have specific issues comment and I or someone maybe able to help

    • @mohfatkurrozi4069
      @mohfatkurrozi4069 Před 3 měsíci

      on listenUpdatePurchased on vlaue serverVerification is base64 or any?

  • @user-di9uc1ee3h
    @user-di9uc1ee3h Před 8 měsíci

    Thanks for hating nodejs and otherjss early :D

    • @1ManStartup
      @1ManStartup  Před 8 měsíci

      🤣

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      @@1ManStartup My functions does not change or create anything on firestore database please help

    • @1ManStartup
      @1ManStartup  Před 8 měsíci

      @@user-di9uc1ee3h Which functions? what part of the video are you at? Have you looked at the linked code in the description as a reference?

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      @@1ManStartup I did all functions and verify is working but others are not working. I think problem is that I did not use provider to read?

    • @user-di9uc1ee3h
      @user-di9uc1ee3h Před 8 měsíci

      @@1ManStartup
      I/zygote ( 4534): Do partial code cache collection, code=122KB, data=90KB
      I/zygote ( 4534): After code cache collection, code=122KB, data=90KB
      I/zygote ( 4534): Increasing code cache capacity to 512KB
      I/flutter ( 4534): Called verify purchase with following result Instance of 'HttpsCallableResult'
      I/flutter ( 4534): Purchase marked complete
      but does not create my collection