Adalo Resources
Sign Up for Adalo
Adalo Resources
Adalo Resources
  • 🚀Getting Started
  • 🎨Design
    • Designing Your App
      • Definitions and Terms
      • Creating an App
      • Using the Screen Size Switcher
      • Building with Sections
      • Alignment Tools
      • Using the Layout Tab
        • Screen Size Visibility
        • Sticky While Scrolling
        • Shared Layout Settings
        • Custom Layout Settings
      • Grouping Components
      • Responsive Navigation
        • Responsive Side Navigation
          • Side Navigation
          • Title
          • Menu Style
          • Menu Items
          • Bottom Button
          • Profile Section
        • Responsive Top Navigation
          • Navigation Bar
          • Title
          • Menu Items
          • Additional Navigation
          • Profile Image
      • Responsive Design Best Practices
    • Branding
      • Colors
      • Fonts
    • Create Component States
    • Preview Your App
    • Design Versions
    • Additional Design Resources
    • Migrating Legacy Apps
    • Legacy Builder
      • Create Component Containers
      • Positioning Components
      • Arranging and Grouping Components
      • Preview your App (Legacy Builder)
  • 🎬Actions
    • Action Basics
    • Links
    • Change Data
    • Notifications
      • Request Notification Permission in Your App
      • Trigger Push Notifications
      • Testing Notifications
      • Troubleshooting Notifications
        • Notifications Not Working on Android
        • Notifications Not Working on iOS
        • Notifications Not Working on PWA
    • Conditional Actions
    • Permissions
    • App Authentication
  • 🛠️Screens and Components
    • Screens
    • Deep Linking
      • Setup Deep Linking
      • Deep Linking With Data
      • Deep Linking Share Action
      • Deep Linking Redirection & Fallbacks
      • FAQs and Troubleshooting
    • Screen Navigation
    • Component Basics
    • Magic Text
      • Logged-In User vs. Current User
      • How to Format Dates and Numbers
      • Sums, Counts, Averages, Min and Max
      • How to Create a Custom Math Formula
        • Complex Calculations
    • Conditions and Filtering
      • Filtering in Adalo
      • Using Conditions in Adalo
    • Changing a Component's Visibility
    • Lists
      • Sorting and Filtering Lists
      • Creating Custom Lists
      • Lists of Lists
    • Buttons
    • Toggles
    • Forms
    • Simple Components
      • Image Component
      • Text Input
      • Webview Component
        • Troubleshooting Webview
          • Webview URL not loading in Adalo App
          • Webview crashing in Native App
    • Table Component
    • Video Component
    • Marketplace Components
      • How to Add Components from the Marketplace
      • Digital Purchases for In-App Purchases
      • Sign in with Google
      • Sign in with Apple
      • Maps
      • Bar Charts and Line Graphs
      • Pie Chart
      • Google Admob
        • Troubleshooting Admob
          • Ads Not Displaying in Native
      • Calendar
      • Progress Bar
      • Star Rating
      • Stopwatch
      • Slider
      • Lottie Files
      • YouTube
      • Audio Player
        • Troubleshooting Audio Player
          • Apple App Rejection: UIBackgroundModes key
      • Deck Swiper
      • Markdown Renderer
      • Signature
      • Stripe
        • Stripe Payment
        • Stripe Subscription
        • Stripe Connect Marketplace
          • Set up your Stripe Account for Stripe Connect
          • Allow Merchants to Connect their Stripe Account to your App
          • Stripe Connect
          • Stripe Marketplace Payment
        • Configuring Stripe Test Mode
        • Stripe Custom Actions
          • Get Stripe Subscription Data
          • Get Stripe Customer Data using Email Address
        • Legacy Stripe Components (Deprecated)
          • Marketplace Payments
            • Set up your Stripe Account for Stripe Connect
            • Allow Merchants to Connect their Stripe Account to your App
            • Configure Consumer Payment to go to Merchants' Accounts
          • One-time Card Payments
          • Subscription Payments
  • 🧱Feature Templates
    • Browse, Purchase, and Manage Classes
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Category List Screen
      • Classes List Screen
      • Class Details Screen
      • Purchase Screen
      • Congrats Screen
      • Admin Manage Clinics Screen
      • Admin Transactions Screen
      • Admin Create Clinic & Admin Edit Clinic Screens
    • Browse, Purchase, and Manage Events
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Browse Classes
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Category List Screen
      • Classes List Screen
      • Classes Details Screen
    • Classes Admin Dashboard
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Admin Manage Clinics Screen
      • Admin Transactions Screen
      • Admin Create Clinic & Admin Edit Clinic Screen
    • User Chat
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Conversations List Screen
      • Chat Screen
      • New Chat Modal Screen
    • Forum
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Group Messaging
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Messaging Screen
      • Edit Message Modal Screen & Edit Channel Modal Screen
      • Search Messages Screen & Channels Screen
    • Account Settings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Account Settings Screen
      • Success Modal Screen & Delete Account Confirmation Screen
    • Appointment Booking
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Coaches Screen
      • Time Slots Screen
      • Book Appointment Screen
      • Coach Admin Screen
      • Edit Session Screen
    • Assign Tasks
      • Overview — Screens, Database, Layout Settings, Use Cases
      • My Tasks Screen, Team Tasks Screen, Completed Screen
      • Task Detail Screen
      • Edit Task Screen
    • Agree and Sign
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Terms Screen
      • Agree & Sign Modal Screen
      • Signatures Admin Screen
    • Announcements & Notifications
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Notifications Screen
      • Notify All & Notify One Screens
    • User Profile & Account Settings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Setup Step 1 Screen
      • Setup Step 2 Screen
      • My Profile Screen
      • Additional Screens
    • Browse Users
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Browse Members & Profile Screen
    • Browse Dates
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Time Slots & Workout Screens
    • Browse Home Listings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Listings Screen
      • Listing Detail Screen
      • Modal Image Gallery Screen
    • Image Carousel
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Screens
    • Image Gallery Modal
      • Overview — Screens, Database, Layout Settings, Use Cases
    • User Admin Dashboard
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Workout Assignment
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Social Media Feed
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Store with Shopping Cart
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Inventory Management
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Video Gallery & Upload
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Restaurant Ordering
      • Overview — Screens, Database, Layout Settings, Use Cases
  • 🗃️Database
    • Database Property Types
    • Relationships
      • One-to-Many vs. Many-to-One
      • Many-to-Many
    • The User Collection
    • Collection Permissions
    • Importing Records from a CSV File
    • Download your Collection as a CSV File
    • Location
      • Getting Your Google API Key
      • Estimating Google API Usage
      • The Location Property Type
      • Location in Forms and Inputs
      • Location Magic Text and Formatting
      • Getting the User's Location
      • Latitude, Longitude, and Special Formulas
      • Comparing Locations
      • Troubleshooting Location Features
  • 🪄Settings
    • Copying vs Cloning your App
      • How to Copy and/or Delete an App
      • Cloning Apps and Making Apps Cloneable
  • 🚀Performance
    • Builder Performance Tips
    • Optimize App Performance
      • Image Optimization
      • Five Tips for Improving Your Adalo App Performance
  • ✍️Publishing Apps
    • Publishing to the Web
      • Publish to Adalo Subdomain
      • Publish to Custom Domain
      • Troubleshooting Domain Setup
        • Custom Domain is Not Secure
        • Domain Could Not be Verified
        • Error: Not Found
    • Publishing to the Google Play Store
      • Create Your Google Developer Account
      • Create your Firebase Project
      • Register Android App & Download Config File
      • Generate & Download Private Key
      • Get your Build file
      • Create New Google Play Listing
      • Upload your Build file to Google Play Listing
      • Finalize Listing and Release App
      • Troubleshooting Android Release
        • Google Play rejected the app due to data safety issues
        • Error: Android App Signed with Wrong Key.
        • Error: Version Code 'xxx' has already been used. Try another Version code.
        • Error: Package Name already exists in Google Play.
        • Error: Upload a valid app bundle.
        • Error: Existing Users Can't Upgrade to New App Bundles.
    • Publishing to the Apple App Store
      • Create Your Apple Developer Account
      • Setup Annual Payment for your Apple Developer Account
      • Create Your Apple Bundle ID
      • Create Your Adalo ‘App-Specific Password’
      • Start your Build in Adalo
      • Add Users to Your App Store Connect Team
      • Add Users to Testflight
      • Creating Screenshots for the App Store
      • Privacy and App Tracking Transparency
      • Troubleshooting iOS
        • Build Error: You have reached the maximum number of certificates
        • Build Error: You have already reached the maximum allowed number of keys for this service
        • Build Error: Distribution certificate has expired
        • Build Error: Asset Validation Failed - Invalid App Store Icon
        • App Rejected: Add Permission Text to Your iOS Build
        • Delivery warning during the app submission process: ITMS-90899
        • iOS Build Not Showing in Testflight
        • Apple Two-Factor Authentication Error
    • Publishing to the Web (Legacy Apps)
    • Uploading .APK (Legacy)
    • Publishing FAQs
    • Troubleshooting
      • Build Stuck in Queue
  • ▶️Videos
    • Getting Started
    • Full Walkthrough
    • Working with Data
    • Designing your Database
    • Custom Lists
    • Changing Component Visibility
    • Forms
    • Ordering & Payments
    • Math & Custom Formulas
    • Chat
  • 👩‍🏫Tutorials
    • How to Use Keyboard Shortcuts
    • How to Embed Video or Audio (YouTube, Vimeo, SoundCloud)
    • How to Share a Database Between Apps
    • How to Create an Empty State
    • How to Create a Search Bar
    • How to make a list your users can filter
    • How to Create a Modal/Popup Window
    • How to create a "Favorite" button (Legacy Builder)
    • How to add an Image to an App Bar
    • How to send Scheduled Push Notifications
    • Start Maps Navigation in Your Adalo Apps Using Google Maps, Apple Maps, or Waze
    • Generating Map Previews in Your Adalo App Using the Google Static Maps API
    • Special Links: Email, Text (SMS), and Phone
    • How to have a Dropdown Menu in a Form
    • How to Setup a Shopping Cart with Payments
    • How to set up a Public Profile screen for Users
    • How to Allow Users to Follow Others
    • How to have a Form Automatically Set a Relationship
    • How to add Chat to your App
    • How to Create Multi-Sided Apps
    • How to Add an "Add to Calendar" Button for Events
    • Forwarding Domain to Root Address
    • How to Create Temporary User Avatars
    • How to Set Up a Social Media List
    • How to Play Your Spotify Podcast in Adalo’s Audio Player
  • 🧩Integrations
    • The Adalo API
      • Collections API
      • Send Push Notifications via API
    • Xano
      • Setup Your Xano Workspace
      • Connect Xano with Private Swagger
      • Connect Xano to an Adalo App
      • User Signup, Login, Authentication
      • Google Sign In with Xano Database
      • Other Collections
      • Working with Data Types in Adalo and Xano
      • Counting Records with Xano
      • Lists and Pagination
      • Xano Response
      • Xano Tips and Tricks
      • Troubleshooting
    • Accessing your Record ID
    • Custom Actions
      • ✨Power Your App with ChatGPT
    • External Collections with APIs
      • Magic Text in External Collections
    • Airtable
      • Connecting to Airtable
      • Adding/Deleting Properties
      • Displaying Images
      • Working with Lists
        • Images In Lists
        • Filtering Airtable Lists
        • Magic Texts in Lists
        • Limiting the Number of List Items
        • Sorting Airtable Lists
      • Working with Forms
        • Airtable Dropdown fields & Validation
      • Working with Attachments, Images and Airtable relationship Fields
      • Relationships & Airtable Collections
      • Debugging
    • DreamFactory
    • Zapier
    • Make (Formerly Integromat)
      • Create a PDF from a record in Adalo
      • Notification in Slack when a new user registers in your Adalo app
      • Send verification email to new sign ups
      • Send a verification SMS to new sign ups
      • Send a file to Google Drive from Adalo
      • Send new files from a Google Drive folder to an Adalo collection
      • Use Google Vision for OCR an image and store the text results in an Adalo record
    • IAPHUB
    • Mixpanel
    • Troubleshooting the Adalo API
      • List inside of a List not loading
      • Error Codes
  • ⚙️Adalo Account
    • Account
      • Updating Email and Password
      • Enabling Developer Mode
    • Team Members
      • Add Team Members to Your Adalo App
    • Apps
    • Usage and Billing
      • Billing, Invoices, and Payments
      • App Actions Dashboard
    • Domains
      • Resetting SSL
  • ❓FAQs
    • General Questions
    • What can Adalo do?
    • Adalo Pricing: FAQs
    • Adalo Account: FAQs
    • Adalo Subscription Add-Ons
    • Working with an Adalo Freelancer
    • Adalo Experts
    • Adalo Affiliate Program
    • Adalo Pricing: Legacy Accounts
  • 🤔Troubleshooting
  • 📚Additional Resources
    • Adalo App Academy
      • Introduction to Apps
      • Strategy and Business
      • Design
      • Build
      • Launch & Iterate
      • Freelancers & Agencies
      • All Courses
    • App Development Cost Calculator
    • Hire an Adalo Expert
    • Adalo Forum
  • 📖Glossary
Powered by GitBook
On this page

Was this helpful?

  1. Screens and Components
  2. Marketplace Components

Digital Purchases for In-App Purchases

Follow along with this help document to set up your Single Use In-App Purchases component: Digital Purchases.

Skill Level: Expert

Adding The Digital Purchase component to your Adalo App

Introduction

One of the common ways to monetize your app is with one a time in-app purchase of digital products. Think of buying in game coins to upgrade your base in Space Fight Titans XL (not a real game), upgrading from a free app to a non-subscription premium app, or buying a pass to the online bootcamp that you’ve been wanting to join!

These are all one-time purchases of digital products, and are exactly what the Adalo Digital Purchase component is built for.

A few things to understand before setting up this component.

  1. Our component does not currently work with coupon codes.

  2. Your database needs a few things to function:

    1. A Collection of “Products”

      • These can be events, activities, coaching sessions, etc. They just have to be associated with the item being paid for.

        • Or a unique product ID if you are only selling one product.

        • If you have a large volume of products to add, You can export the collection from Adalo, modify the .csv to meet the upload guidelines for Android. Apple requires you to add them one at a time.

    2. Product IDs

      • Google and Apple recommend something similar to using your package name/BundleID and one or two words from the item i.e. com.spacefighttitansxl.powerup.1, but ultimately it can be anything that follows these restrictions.

        • Must start with a number or lowercase letter, and can contain numbers (0-9), lowercase letters (a-z), underscores (_), and periods (.)

          • 148 characters or less

The Adalo Digital Purchase component can be installed to your Adalo account from the App Marketplace.

  1. Click the plus button in the left toolbar in your Adalo Builder

  2. Scroll down and click the Explore Marketplace button

  3. In the Marketplace, scroll to find the Adalo Digital Purchase component and click to Install

  4. Drag the Digital Purchase component to your App’s purchase screen.

    1. The component has all of the style customization of the standard Adalo Button component.

Set-up Digital Purchase component button

  1. Android and iOS Product IDs - These are the unique identifiers for the product being purchased. Google and Apple have their own recommendation for the format, but it can be anything unique to that item. You can use the same Product ID for both platforms.

  2. Select this property from your Collection via Magic Text, or add a specific Product ID here.

  3. Button - Change the text, icon, font, color, and style of the button to match your app’s style.

Treat Purchases as Restorations

  1. The App Store and Play store require a way to restore previous purchases from your users to a new device. Even though in Adalo, all of this information is tied to their account, and stored on our servers, this Action is still required to exist in your app.

  2. The Button can be changed to read “Restore” and this is accepted by Apple and Google, as it will recognize if you have purchased the product in the past.

    1. Simply create a Collection for Purchases.

    2. Add the IAP Button for the purchases and rename to “Restore”.

    3. Add an Action to update the User to include the Purchased Product.

    4. If they have, it will return successful and you set your actions, if errored, it means the user has not purchased this in the past.

  3. You can have this button located anywhere, but we recommend adding in to a user settings screen. If you are selling multiple products with a dynamic Product ID, you can make a list of the products with this button in the list, and a user can then restore their purchases.

  4. Use Visibility rules to make these visible to only applicable Users.

Actions - The Digital Purchase component has three Actions for handling different outcomes from the Payment Modal. Add actions for each of these to unique screens, giving the User feedback about what happened.

Successful - The purchase went through

  • Update the Record in your database

  • Add the User to the purchased item.

    • You can update a field on the User Record or add a Relationship from the Product/Purchase to the User. Ultimately, you will need to decide how to connect the purchases to Users in your Database.

Error - The purchase could not be completed because it was declined or there was a server side error.

  • You can save the error codes in an Error Log Collection and use a Create or Update Action to access these codes via Magic Text.

Canceled - The user canceled the purchase.

  • Actions that should perform in the event the purchase is cancelled by the User.

Web

  1. In-App Purchases only work for apps downloaded from the Apple App Store or Google Play Store. This component is hidden on web by default but you can choose to show the component and have a web-only action to link to a Stripe payment screen.

Now build your Android SDK and push an iOS Testflight build in Adalo and continue to Developer Settings!

Your app will go through additional reviews when you have this component installed. We recommend adding this near the end of your development cycle and near deployment to reduce the time required to test the rest of your app.

Android - Setting up Digital In-App Purchases

  1. In your Play Store Console, Select your app.

  2. Upload your NEW BUILD with the Digital Purchase component set up to an Internal or Beta Release Track. **This must be done before you can set up any products for you app**

  3. Select the “In-App Purchases” from the left side menu under “Monetize>Products”

  4. This will take you through the steps of setting up your App for receiving payments if you have not already done this.

  5. All Products have to be tied to a Pricing Template. Pricing templates allow you to reuse pricing across multiple products and apps without having to keep the currencies exchanges and details updated for each one.

    1. Create a pricing template in your Google Play Console Account Settings. Not in the app specific settings

  1. Name your Pricing template something descriptive and set the price.

  2. Select if the price includes tax.

Hit Save.

Now create your In-App Products under the app specific settings>Monetize>Products>In-App Products

Complete the Product Details. Product ID is the property you set up with the Digital Purchase component.

  1. Provide some details for the product.

  2. Select the appropriate Pricing Template that you have created.

  3. Select “Activate” for the product

  4. Repeat 9-17 for each product, or format a .CSV to upload for a large list.

    1. Your app may require some additional review time before you can download and test the internal test track app from the playstore.

  5. Now download the internal test flight app and test the component!

  6. Proceed to publish as usual once tested.

iOS - Setting up Digital In-App Purchases

  1. Navigate to your App in App Store Connect, in the left side menu select In-App Purchase>Manage.

  2. These products will be available to be added to all apps in your account.

  3. Select the (+) button to add a new In-App Product

  1. Select the type of product you are adding.

    1. ***Auto- Renewing Subscription type is not yet supported

  1. Complete the Product details

  1. Product ID is the property you set up with the Digital Purchase component.

  2. Reference Name is something to identify the product in your dashboard

  3. Pricing - You select the price tier for your product. Check these before finalizing your price for your products in the collection.

  4. App Store Information will be displayed in the App Store Listing under “In-App Purchases” information section

  5. App store promotional - is optional. You can skip this for now

  6. Save

  7. Repeat steps 3-6 for each digital product you will be selling in your app.

  8. Select the “Agreements, Tax, and Banking” section to get set up. This must be completed before you can test or accept In-App Purchases with your app. It takes up to 24 hours to be approved.

  1. Now you can test your Digital Purchases in TestFlight. Purchases in TestFlight builds are FREE, but if they are successful in TestFlight, they will work in the App store.

  2. When you have thoroughly tested your app, you can submit the build for release to the App store. There are a couple additional steps when adding IAP for the first time.

  3. Select the In-App Purchases associated with this app.

  4. Select the newly Tested build with the Digital Purchase component in the Build section. Note, you must submit a NEW build. An existing live build cannot be used when publishing the app.

  1. Follow your typical publishing process for releasing to the App Store.

  2. You now have a monetized with Digital Purchases App in the App Store!

Testing Subscriptions in Android Apps

If you make test purchases in your app using the same email as your Google Developer account, you will not be charged for the purchase. If you would like others to test this functionality as well, you must add users as Licensed Testers for your app. These can be people already within your test tracks or they can be people outside your test tracks.

Enabling License Testers

  1. Add users emails that you would like to test the subscriptions features by inputting their emails separated by commas, then hitting enter to add them. Note that these emails need to be Gmail accounts but can be Google Workspace emails (i.e. custom domains connected to Google Workspace.

  2. Be sure to select LICENSED from the dropdown so the applications in your developer account know that purchases by this email are licensed and should not be charged for the test subscription.

  3. Click Save Changes in the bottom right, then click Save in the popup. Note that these settings apply to all apps in your developer account.

Help

PreviousHow to Add Components from the MarketplaceNextSign in with Google

Last updated 9 months ago

Was this helpful?

Review information- You need to upload a screenshot of the purchase page for this specific product. Our recommended resolution is 1242 x 2688 or 640 x 1136 but all sizes are accepted.

You need to set up your Apple Developer Account to accept payments. This is done here

Navigate to the App Store tab at the top of the page, and scroll down to In-App Purchases

User purchases in test tracks result in actual charges to user accounts unless the user is also a licensed tester. The testers email must match the one that they will be using to make purchases. For more help on setting up test tracks, see .

From the main dashboard of your , click the License Testing option from the Setup dropdown in the left-hand menu.

If you need additional help with this article, you can always ask in our ! Be sure to paste the link to this article in your post as well!

🛠️
these
https://appstoreconnect.apple.com
Publishing to Google
Google Play Console
community forum